NAT'L INST. OF STAND & TECH R I.C

AlllOS M7t.ll7

NISI

PUBLICATIONS

NisrUnited States Department of Commerce

Technology Administration

National Institute of Standards and Technology

NIST Technical Note 1399

Report No. 32

Ultrasonic Instrumentation to

Measure Hoop Stress in

Cast-Steel Railroad Wheel Rims

Raymond E. Schramm

QC

too

U5753

NO. 1599

1998

NIST Technical Note 1399

Report No. 32

Ultrasonic Instrumentation to

Measure Hoop Stress in

Cast-Steel Railroad Wheel Rims

Raymond E. Schramm

Materials Reliability Division

Materials Science and Engineering Laboratory

National Institute of Standards and Technology

325 Broadway

Boulder, Colorado 80303

Prepared for

U.S. Department of Transportation

Federal Railroad Administration

Office of Research and Development

Washington, DC 20590

March 1998

U.S. DEPARTMENT OF COMMERCE, William M. Daley, Secretary

TECHNOLOGY ADMINISTRATION, Gary R. Bachula, Acting Under Secretary for Technology

NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY, Raynnond G. Kammer, Director
National Institute of Standards and Technology Technical Note

Natl. Inst. Stand. Technol., Tech. Note 1399, 52 pages (March 1998)

CODEN:NTNOEF

U.S. GOVERNMENT PRINTING OFFICE

WASHINGTON: 1998

For sale by the Superintendent of Documents, U.S. Government Printing Office, Washington, DC 20402-9325
CONTENTS

page

EXECUTIVE SUMMARY iv

1. INTRODUCTION 2

2. CONTRACT HISTORY 2

3. EXPERIMENTAL PROCEDURES 5

4. SUMMARY OF PRIOR WORK 8

5. INSTRUMENTATION DEVELOPMENT 10

5.1 EMAT and Case 10

5.2 Electronics 16

6. SOFTWARE 18

7. OPERATION 19

8. CONCLUSIONS 20

9. REFERENCES 21

APPENDICES

I. Commercial Systems Available or in Development 22

II. Commercial Equipment Used in this Instrument 23

III. External Box: Relay, Preamp, and Cable 24

IV. Pulser/Receiver Operational Parameters 27

V. Software Listings 27

Software Outline 28

SHOP.BAS 29

DETAIL.BAS 34

FILE.BAS 39

FILEB.BAS 42

Batch Files 44

VL Sample Output 45

VII. Possible Future Modifications 46

ui
EXECUTIVE SUMMARY

Objective: • Measure residual stress in the rims of railroad wheels.

Method: • Acoustoelasticity, or the change in sound velocity with stress.

Problems: • Very small (-0.01%) stress-induced change in velocity. • Change in velocity from metallurgical texture. • Errors from surface condition and acoustic coupling

Solutions: • EMATs (electromagnetic-acoustic transducers) to eliminate timing errors due to

couplant variations. Precise tuning of a single cycle in the acoustic signal. Compare

circumferential and radial polarizations to calculate the stress differential. • Measure texture effect in multiple stress-relieved rim blocks. Subtract average value

from wheel measurements.

Instrumentation (Current Configuration): • Small personal computer with two plug-in cards (commercial). • External box (pre-amplifier and polarization switch) with EMAT probe.

Verification History: • Multiple measurements on test wheels at manufacturer's test facility, some compared

against destructive tests done by saw-cutting.

Estimated Quality of measurements: • Accuracy « ±51 MPa (±8 ksi) - mostly due to texture variations. • Precision ~ ±28 MPa (±4 ksi) - mostly due to timing accuracy. • Total stress error « ±60 MPa (±9 ksi) - this is probably conservative

Status: • System hardware and software assembled. • Ready for field testing.

IV
Ultrasonic Instrumentation to Measure Hoop Stress

in Cast-Steel Railroad Wheel Rims

Raymond E. Schramm

Materials Reliability Division

Materials Science and Engineering Laboratory

National Institute of Standards and Technology

Boulder, Colorado 80303-3328

This is Report Number 32 in a series covering research done by the National

Institute ofStandards and Technology for the Federal Railroad Administration.

We report on a project by the Materials Reliability Division to develop and test an ultrasonic instrument package for measuring residual stress in the rims of

railroad wheels. Stress, residual or applied, has an acoustoelastic effect.

Measuring acoustic birefringence (the small change in velocity with direction of

polarization) is a method for nondestructive evaluation (NDE) of stress. We

have previously shown the viability of this approach for inspecting the rims of

cast-steel railroad wheels. While the effect ofmetallurgical texture will preclude

measurements of high accuracy, this uhrasonic method should be useful as a

screening tool to find those wheels that have potentially dangerous tensile

stresses. The current effort has been to develop instrumentation for use in the

field. The factors considered were size and compactness, ease of use, and

automation. In the present unit, most of the electronics are commercial, off-theshelf items. There are two computer plug-in boards (pulser/receiver and ADC)

in a "lunchbox" computer. The probe is an electromagnetic acoustic transducer

(EMAT) in a case designed to fit the front rim face (frf) with the necessary

precision. A software program collects digital signal information and analyzes

it without operator intervention. In its present form, this package should be able

to collect enough statistically significant information for determining stress in

less than 30 seconds.

Key words: EMAT; instrumentation; nondestructive testing; railroad wheel;

residual stress; ultrasonic

Current address: IntellTech, Inc. 9814 Lane St. Thornton, Colorado 80221-8030

1
1. INTRODUCTION

New wheel designs and extensive quality control by manufacturers have lessened the effects of

thermal abuse in railroad wheels. Yet, there remains considerable concern about this problem

in the U.S. and abroad. A former FRA rule required condemning a wheel if a discoloration

band of 100 mm (4 inches) or more appeared in the wheel plate [1]. Destructive measurements

questioned the reliability of this simple test [2]. However, lacking any other method of

examining wheels for possible tensile stresses that could lead to wheel failure, this "4 inch rule"

continues in practice. Theconsequences ofwheel failure, though rare, are considerable in terms

of personal, environmental, and economic consequences. Good economy requires replacing

wheels when necessary, but only then.

To date, the only method to yield quantitative information in a manner useful in a shop

enviroimient is the careful measurement of the velocity of ultrasonic signals. Several

research/commercial concerns (see Appendix I for a list) have worked on development and

practical implementation of this technique. In each case, the basic physics is the same; the

technique and equipment vary. The approach in this work was that the system should be

1. Automatic, for maximum utility in a working shop;

2. Simple, not requiring any particular training in ultrasonics or manipulation of probes;

3. Quantitative, able to differentiate compressive, near neutral, and tensile stresses;

4. Reliable, minimizing false positives or negatives;

5. Fast, measurement times <1 min; and

6. Immediate, measuring wheels mounted in trucks and on rail cars.

2. CONTRACT HISTORY

Our work to develop ultrasonic nondestructive evaluation methods for railroad wheels began

in 1985. While the original emphasis was on roll-by detection of tread cracks, this changed to

the development of a tool for the measurement of residual hoop stress in the rims. Under the

current contract the goal was to develop instrumentation useful in a wheel shop environment.

This work was done under an eighteen-month research contract with the Federal Railroad
Administration (FRA), Reimbursable Agreement No. DTFR53-96-X-00021 with an effective

date of May 1, 1996 to November 1, 1997.

Several reports in this series from the National Institute of Standards and Technology have

dealt with wheel inspection:

1. R.E. Schramm and A.V. Clark, Jr., "Report No. 18 - Ultrasonic Railroad Wheel

Inspection Using EMATs," NISTIR 88-3906, December 1988.

2. R.E. Schramm, A.V. Clark, Jr., D. V. Mitrakovic, Y. Cohen, P.J. Shull, and S.R.

Schaps, "Report No. 22 - Tread Crack Detection in Railroad Wheels: An Ultrasonic

System Using EMATs," NISTIR 3967, May 1991.

3. R.E. Schramm, A.V. Clark, Jr., D.V. Mitrakovid, S.R. Schaps, and T.J. McGuire,

"Report No. 23 - Residual Stress Detection in Railroad Wheels: An Ultrasonic System

Using EMATs," NISTIR 3968, May 1 99 1

4. R.E. Schramm, J. Szel^zek, and A.V. Clark, Jr., "Report No. 28 - Residual Stress in

Induction-Heated Railroad Wheels: Ultrasonic and Saw Cut Measurements," NISTIR

5038, May 1995.

5. R.E. Schramm, J. Szel^zek, and A.V. Clark, Jr., "Report No. 30 - DynamometerInduced Residual Stress in Railroad Wheels: Ultrasonic and Saw Cut Measurements,"

NISTIR 5043, March 1996.

Several reports based on the rim-stress part of this work have also appeared in outside

publications:

1. A.V. Clark, Jr., H. Fukuoka, D.V. Mitrakovic, and J.C. Moulder, "Characterization

of Residual Stress and Texture in Cast Steel Railroad Wheels," Ultrasonics, Vol. 24,

September 1986, pp. 281-288.

2. R.E. Schramm, A.V. Clark, Jr., and T.J. McGuire, "Ultrasonic Measurement of

Residual Stress in Railroad Wheel Rims," in Tenth International Wheelset Congress,

Institution of Engineers, Australia, 11 National Circuit, Barton, ACT, pp. 151-155

(1992).

3. R.E. Schramm, A.V. Clark, and J. Szel^zek, "Ultrasonic Measurement of Residual

Stress in Cast Steel Railroad Wheels," in Determining Material Characterization:
Residual Stress andIntegrity with NDE, PVP-Vol. 276, NDE-Vol. 12, The American

Society of Mechanical Engineers, NY, pp. 157-162 (1994).

4. R.E. Schramm, A.V. Clark, and J. Szel^zek, "Safety Assessment of Railroad Wheels by

Residual Stress Measurements," in Nondestructive Evaluation ofAging Railroads,

Donald E. Gray, Daniel Stone, eds., Proc. SPIE 2458, pp. 97-108 (1995).

5. R.E. Schramm, J. Szel^zek, and A.V. Clark, Jr., "Ultrasonic Measurement of Residual

Stress in the Rims ofInductively Heated Railroad Wheels." Materials Evaluation, Vol.

54, August 1996, pp. 929-934. (The American Society for Nondestructive Testing

awarded this their "Outstanding Paper Award for 1996.")

In the several years of this stress-measurement project, there were various phases in the work.

1Development of a transducer and electronics for use on the rim of a cast-steel railroad

wheel.

2. Collection of initial specimens and test of feasibility.

3. Electronic and mechanical modifications necessary for system development.

4. Extensive testing on special rimblocks and specimen wheels.

5. Development of instrumentation (subject of this report).

With the present compact, ruggedized, and automated system, the next step is the collection of

extensive field data to defme usage parameters (accuracy, reliability, texture variations, etc.).

Many people over the years have influenced and contributed to this program in significant

ways. A partial list includes:

Monique Stewart, Don Gray, Clair Orth, Cliff Gannett; FRA, Washington, D.C.

Van Clark (who started this program), Steve Schaps, Todd McGuire; NIST, Boulder,

Colorado.

Greg Garcia, Joe Kristan, Bob Florom, Dan Stone, Britto Rajkumar; TTC/AAR, Pueblo,

Colorado.

Rich Pilon, John Oliver, Mike Gallagher; Griffm Wheel Co., Chicago, IL.
Jacek Szel^zek, Julian Deputat; Institute of Fundamental Technological Research of the

Polish Academy of Sciences (IPPT-PAN), Warsaw, Poland,

Dragan Mitrakovid; Faculty of Technology and Metallurgy, University of Belgrade,

Belgrade, Yugoslavia.

OscarOrringer; Volpe National Transportation Systems Center, Cambridge, Massachusetts.

Ansgar Wilbrand, Eckhardt Schneider; Institut fiir zerstorungsfreie Priifverfahren (l2fP),

Saarbriicken, Germany.

Of course, many others should be added to this list.

3. EXPERIMENTAL PROCEDURES

The measurement parameter is acoustic birefringence, or the relative change in sound velocity

measured in two orthogonal polarizations. Forwheel rimmeasurements, the two directions are the radial (r) and hoop (6) directions [3-6]. The 2 MHz signals are shear horizontal (SH) waves

traveling through the rim thickness (Figure 1).

Flange

Tread

Polarization

Directions

Ultrasonic

Transducer

Front Rim Face ^v ^^x «• . ^x^Ny^ ^\ Signal

Inner Edge

-^^ \ ^^^^

Figure 1 . The ultrasonic transducer on the front rim face generates shear-horizontal waves

polarized along the radial and hoop directions [3-6]. The arrival time ofan echo

from the back rim face is a measure of the velocity.
Two measurements are necessary to calculate the birefringence,

where

B = birefringence,

Vg = velocity with hoop polarization,

V, = velocity with radial polarization, and

V = average of V^ and V^.

Since the travel distance for the echo from the back rim face is the same for both polarizations,

we can calculate B from the arrival times, tg, t^, and their average, T.

t

The stress calculation from birefringence is

where

B = birefringence measured in the sample,

Bq = average birefringence due to metallurgical texture—^measured on several

stress-relieved rim blocks,

C^ = stress-acoustic constant—a material parameterreasonably consistent for

ferritic steels (literature value = -7.8 x 10"**/MPa) [5], and

t'e t'r = stress difference in the two polarization directions—generally, a^ is small

and negligible.

Since the signal has traveled through the thickness ofthe rim, the measured stress is the average over this distance.
Metallurgical texture means that the crystallographic orientation of grains is not uniform and

random. In cast steel wheels, there are long dendritic grains that grew from the surface as well as smaller, more irregular grains near the center (Figure 2).

The texture effect on the birefringence, B,,, can be of the same order ofmagnitude as the stress

effect. Therefore, it is necessary to have a reasonable idea ofits value. There is also the question

of how constant that value is from wheel to wheel, batch to batch, year to year, etc. Over a

limited range of heat-treated rimblocks representing several years of one manufacturer's

production, the measured B^ was sufficiently constant for reasonable estimates ofrim stress [7]. This parameter remains the largest source of uncertainty.

front rim face (ftf) transducer

ofmatefial

inliTogtted by

ultnsonicbtain

^N)ack rim face (brf)

Figure 2. Schematic of the cross section of a cast-steel wheel rim [7]. The outer grains are

dendritic and normal to the surface. In the interior, the grains are mostly small

with random orientation.
The ultrasonic transducer used here is an EMAT. A high-current pulse through a coil induces

an eddy current in nearby rim face. This interacts with an external magnetic field to generate

an ultrasonic signal at 2 MHz. Two coils stacked at right angles to each other make it possible

to generate two polarizations without rotating the EMAT (see section 5.1).

Compare with standard piezoelectric transducers:

EMAT No fluid couplant

Weak signal

Piezoelectric Needs fluid or rubber couplant

Strong signal

4. SUMMARY OF PRIOR WORK

All measurements thus far have been on cast steel wheels, 36 in (0.91 m), class C; these are in

common use in the U.S.

The transducer aperture is about 10 mm square. Because of the rim's complex geometry and

the distribution of the grain structure (texture), there is a large gradient in the birefringence

with radial position on the front rim face. The inside edge of this face is a useful index point

since it is sharper than the outside edge and sees no wear. We chose to locate the center of the

EMAT at 14 mm from this edge since the gradient was relatively flat in this vicinity [5].

Tests included three series of measurements:

1To measure the size and variability of the texture effect, we tested 1 stress-relieved rim

blocks cut from wheels removed from service. They covered several years of

manufacture and several production plants. Weestimate [5] the average B^ = -2. 1 x 10 , with a spread AB(, ~ ±4 x 10"

2. The first series ofwhole-wheel measurements used new wheels that had received varying

amounts of damage from induction heating. The ultrasonic measurements clearly

showed the eff'ects [5, 6, 8, 9].

3

The final measurements were on a series of new wheels thermally damaged on a unique

dynamometer at the manufacturer's test facility. The data show an ability to sort wheels

with no, moderate, or severe damage (Figure 3) [7].

8
(0 Q.

200

150-

100

S 50-

Ui

CO

COo 0- o

f^ -50

9 -100

x:

-150

-200

EMAT measurements

(frf)

As-Man. 34 KW pxw |60kW 63 kW 67 kW 75 kW 63 KW

1 "I shoe conditioning wearout

20

10

-10

--20

(A

tA

(0

55

(AM

0}C

C3) O

Figure 3 . Ultrasonic measurements (average and spread around the circumference) ofrim

stress in wheels damaged on a dynamometer [7]. There was no significant

damage below 62 kW, moderate damage at 67 kW to 75 kW, and considerable

damage in a final wheel at 63 kW (different test scenario). This last wheel

exploded during sawcutting.

The manufacturer did destructive measurements by sawcutting of selected wheels for

quantitative verification of the NDE tests. Wewere very fortunate during a large part ofthese tests to have the cooperation ofthe Institute

of Fundamental Technological Research of the Polish Academy of Sciences in Warsaw,

Poland. Dr. Jacek Szel^zek of that laboratory duplicated many of these measurements using

their piezoelectric-based instrument.

Timing capability (>5ns precision) andmechanical positioning would allow determining stress to ±28 MPa (±4 ksi). The texture, however, contributes an uncertainty of about ±51 MPa

(±8 ksi). Statistically combining these, we estimate our total stress error as ±60 MPa (±9 ksi).

This leads to high confidence in finding compression or tension in a wheel rim.
5. E^STRUMENTATION DEVELOPMENT

The goal of this program was to develop a package that was compact, highly automated, and

rugged enough for use in a shop environment. For greatest utility, most of the electronics are commercial, off-the-shelf (COTS). The photographs in Figure 4 and the block diagram of Fig

5. give an overview.

5.1 EMAT and Case

The photographs in Figure 6 show the transducer assembly. Figure 7 illustrates the essential

elements of the EMAT. The magnet is a block (52 mm x 26 mm x 31 mm) of Nd-Fe-B with a nominal energy product of 0.28 MJ/m^ (35 MGOe). A pole piece of mild steel concentrates

the field to the 10 mm square active area [3-6].

The ability to generate ultrasonic signals with orthogonal polarizations is the result ofstacking

two identical pairs of coils at right angles. Each pair has two counterwound "racetrack" coils

(inductance L). The straight portion of each coil is about 10mm to 12 mm long. Winding 35

turns of 36 AWG enameled wire gives a coil half-width of 5mm to 6 mm; when the two coils are aUgned and connected properly, there is an aperture about 10 mm square under the pole

tip where the rf current is flowing in the same direction.The DC resistance of the pair is about

4.1 Q.

For maximum current flow, each pair of EMAT coils has a series capacitor (C). With the

proper capacitor (in this case, 330 pF, mica), the LC circuit resonated at the 2 MHz operating

frequency (Figure 8). For mechanical protection for the coils, they are encased in y4-mm thick

sheets of fiberglass-epoxy. To allow ready replacement of the coil package in the event of

damage, there are three plug-in pins (common ground between the two coil pairs) to match

sockets in the aluminum case. It is possible to switch coil packages in seconds.

The cable to the EMAT contains individually shielded twisted pairs. The rugged connectors

have threaded shells that keep the connections clean.

The aluminum case (Figure 9) serves several functions: rf shielding, mechanical support, and

the electrical connections, housing for the tuning capacitors and connections to the coils, and

gripping/holding for the user. The most critical function, however, is the mechanical positioning

of the EMAT. Two "ears" on the case locate the index point (inside edge of the front rim face)

and center the active aperture at 14 mm from the inner edge of the front rim face. The EMAT

magnet provides strong attraction to the wheel, but four additional disc magnets in the case

assure that the whole package is self supporting even when the test wheel is vertical.

10
Figure 4. Rim stress measurement system:

a. "Lunchbox" computer with two plug-in cards. A small external box of

electronics connects the 2 m long cable to the EMAT.

b. Transducer in position on the front rim face.

11
"Lunchbox"

Personal

Computer

I

"TT

vj Optional

; Printer

N to -S C

A/D

8 bit, 40 MHz

0}O)

(0c

a>

Pulser/Receiver

(2 MHz)

COc

2>

«

3

a

o

"53 a>

Pre-Amp

&

Switch

±jt

Plug-In Cards

All Equipment

Commercial, Off-the-Shelf

T (COTS)

1 Project-Specific

Equipment

/TT?

P cable (2 m)

Dual

EMAT

Figure 5. System elements, showing signal connections. The computer and plug-in cards

are commercial items.

12
- Assembled

3 EMAT

Figure 6. EMAT package:

a. Assembled, b. Opened.

13
panes'^® —-7 colls

Figure 7. Schematic ofthe EMATthat generates orthogonally polarized shear horizontal

(SH) waves on the front surface of the wheel rim [3-6].

180

o>

0)

iiT -J

CD<

UJCO<X

0.

-180

1 1

1 • 1 1 1 1 1

-

j:.::::^

<

1 1 —

1

1 1 1 1 1 i

'

- 400 a

- 200

N

UJO

Z

g

UJ

Q.

FREQUENCY (MHz)

Figure 8. Sample of phase/impedance on an EMAT coil. Transducer in position on a

rimblock; series capacitor = 330 pF; measured from the end of the transducer

cable. At 2 MHz, Z - 60 Q to 70 fl and 6 < ±10^

14
Ad EMAT CASE

Closed

Open

Figure 9. Schematic of aluminum case for the EMAT. There are two main sections with

an attached handle. Internal recesses hold (1) magnet and pole piece, and (2)

tuning capacitors and electrical connections. External recesses hold (1) coil

package, (2) cable connector, and (3) four form-holding magnets.

15
5.2 Electronics

The platform for all the electronics is a "lunchbox" personal computer operating at 100 MHz.

This is a compact system able to hold two full-length plug-in cards:

1. A pulser/receiver delivering a gated pulse of sufficient power to the EMAT, and an

amplifier for the received signal.

2. AnADC(analog-to-digital converter) operating at sufficient speed to digitize the signal

for timing calculations in a computer program.

A list of the commercial equipment used in the current form is in Appendix II.

The pulser/receiver used here seemed to be the only one commercially available configured as a standard plug-in card. While a custom modification that would approximately double the

available power at 2 MHz is available, the standard card can still deliver a gated pulse of

sufficient power into the present EMAT. Figure 1 shows a typical measurement ofthe voltage

and current at the coil. These data give the peak-to-peak values ofvoltage and current (Vpp and

Ipp), and the phase angle (6). It is then possible to calculate the root-mean-square power:

_v,pp COS0,

TIME {^JS)

Figure 10. Typical voltage and current in an EMATcoil: eight cycles at 2 MHz. Tuning was

done with a 330 pF series capacitor and the transducer was on a rim block.

Operational phase angle came from these measurements.

16
Typical values measured on four coils (two stacked pairs) were:

V„„ = 1130 V to 1330 V,

Ipp = 1.4 A to 3.2 A,

e = 18* to 38% and

P_, = 225 W to 375 W.

While the coils are nominally identical, there is a difference between top and bottom coils due

to differences in coupling to the steel; some of the spread is also due to the hand construction

of the coils and package. Figure 1 1 shows a typical acoustic signal.

For digitizing the acoustic signal, fast rates and many digits are desirable. For this appUcation,

we foimd it was sufficient (section 6) to use eight bits at a sampUng rate of 40 MHz; such

capability is readily available now at moderate prices.

A small case external to the computer contained a specially-built preamp (Appendix III) that

wefound necessary to condition the signal before the main amplifier on the pulser/receiver. The

case also contained a relay controlled by the RS-232 bus to switch between the two orthogonal

EMAT coils. A 2 m long cable connected this case to the EMAT.

+0.8

(0

M

3

O

U

<

-0.8

main bang 1st echo

IH. i

, ilil'ii: . «ii.«t

i!| lit no

. en . I MM I Mil.

null I' I

I '< I I i: I

2nd echo

111 - • I ';blM I '

I 1

/;•

t.illllUll V I • III If

I) l: I. am;

ilHIl Hill wf I

. •

ll

luil I ' mil n

100

Time (fjs)

200

Figure 1 1 . Raw acoustic signal, 2 MHzshear wave through the rim thickness. The first and

second echoes are visible.

17
6. SOFTWARE

The pulser/receiver board comes with a program used to establish operational parameters (see

Appendix IV). This system runs that program to establish the gated pulse amplification for the

EMAT and then starts the package written for the rim stress. This applications package

incorporates some software that came with the ADC to transfer data from the digitizer to the

PC RAM.

The software language is BASIC. An outline and listings appear in Appendix V. Two

capabilities here make operation possible:

a. Relay control (Appendix III) makes it possible to switch between coils and eliminate

any mechanical rotation during a measurement; and

b. The ability to use digital signal data to measure timing with high precision without

operator judgment or intervention.

As noted above, the ADC runs at only 40 MHz. At this rate, there is a trigger uncertainty of

25 ns. While this value alone would be unacceptable, the repeatability of the signal makes

averaging a realistic possibility. As currently written, the software averages 36 signals for each

polarization for each of 10 measurement sets, for a total of 360 signals. Statistically, this

reduces the jitter to 25 ns/\/360 = 1.3 ns, a satisfactory limit. The speed of the microprocessor

makes it possible to collect this many waveforms in an acceptable time (<30 s).

The basic timing algorithm is to find the maximum of the first echo collected by the ADC. The

program then looks for the two data points above and the two points below signal zero. It fits a straight line through these four points and calculates the zero crossing (Figure 12); this is taken to be the arrival time [10]. The search in all subsequent signals in a given measurement

set is in the same time vicinity (for both polarizations). This prevents any cycle skipping, and

is possible since no possible stress would shift the time by an amount as large as the cycle period

of 500 ns. The range of measured times seen in Appendix VI shows that the standard deviation

does approach the statistical possibility of 1.3 ns.

There are two variations (Appendix V) of the software. The basic operations are the same, but

the presentations differ:

1 . Shop version (SHOP.BAS). In each of 10 measurements, the number of signals averaged

is fixed at 36, and the report on the screen contains only the final stress calculations

rounded to the nearest 5 MPa or 1 ksi. The most significant calculations are the average

of the ten measurements and the standard deviation; maximum and minimum values

also help judge the quality of the test. A colored flag shows red

18
+0.8

C

O)

CO

COa

o

o

<

-0.8

digitized points

(25 ns intervals)

T

maximum

1st echo

average of 36 signals

X points fitted to straight line -

J I 91 92

Time (//s)

93

Figure 12. Expanded signal after 36 averages. The program fits a straight line to the four

points immediately above and below the zero crossing. The intercept with the

signed zero is the arrival time [10].

(tension) or green (compression). A yellow caution flag appears if the spread between

the maximum and minimum is greater that a preset limit (currently 35 MPa or 5 ksi).

Detail version (DETAIL.BAS). The number of signals averaged is variable, and the

report on the screen gives the measured times and calculated birefringences, as well as

the stress.

7. OPERATION

As presently set up, the computer executes some batch files (Appendix V) at power-up. The

pulser/receiver software requires a Q (quit) and O (okay) entry. The shop version of the data

program then begins. Two lines are available for identification (e.g., operator, specimen)—or

are skipped with an ENTER. When the transducer is in place, type S (as instructed by the

bottom line) to begin the 10 sets ofmeasurements (blue flag appears). When the measurements

and calculations are complete (<30 s), the bottom line offers four options: paper hardcopy (P),

continue to next specimen (M), record data on diskette (F), or exit the program (X).

19
The software has some built-in parameters:

Bq = -2.1 X 10"* (average value from heat-treated rimblocks),

C^ = -7.8 X 10"' MPa',

Number of signal averages for each measurement pair = 36,

Number of measurement pairs = 10,

Red flag for tension (stress > 0),

Green flag for compression (stress < 0), and

Yellow flag for measurement spread > 35 MPa (5 ksi).

Two different programs read the data recorded on a diskette. FILE presents the data as does

SHOP (stresses only), while FILEB gives all the detail of DETAIL (includes times and

birefringence). These recorded versions note the values of B^ and C^ used to calculate the stress.

At the C:\ prompt, the following batch programs are individually available:

PULSER — pulser/receiver control program,

SHOP — shop version of data collection (SHOP.BAS),

DETAIL — detailed version of data collection (DETAIL.BAS),

FILE — read diskette data and display as in shop version, and

FILEB — read diskette and display as in detail version.

While not fully tested, portable operation may be possible under power from a car/truck

battery. Commonly available power inverters (s:500 W) generate 120 VAC from 12 VDC. The

power, however, is quasi-sinusoidal; the stacked square waves have high-frequency components

that may reach the ADC and distort the acoustic signal transferred to the computer. A large

isolation transformer between inverter and computer seems to smooth out the 60 Hz power for

satisfactory operation.

Additional improvements are always possible. Appendix VII lists a few of these.

8. CONCLUSIONS

In the present form, this ultrasonic instrumentation for stress measurement is

1. compact,

2. assembled of largely commercial electronics,

3. highly automatic, little training necessary,

4. easy to use, and

5. quantitative within useful uncertainties.

20
Two possible uses of this ultrasonic stress measurement system include:

1

.

Quality control at the wheel factory. This instrument has the precision to monitor stress changes in wheel rim stress to within <±28 MPa. Because of the speed and ease of

measurement, nondestructive evaluation of the entire production becomes possible.

Currently a significant fraction of production undergoes destructive testing.

2. Screening tool in a shop environment to evaluate in-service condition during routine

maintenance and inspection. Accuracy restrictions imposed by possible texture

variations increase possible error to <±60 MPa. With a realistic cutoff for tolerable

stress, this would lead to quantitative and reliable decisions on wheel status. While

insuring the removal of potentially dangerous wheels, testing would avoid the

unnecessary condemnation of still-useful wheels. The economic incentive is strong.

We thank the Federal Railroad Administration for funding this research and our contract

monitor, Monique Stewart. The Association of American Railroads, Transportation

Technology Centerin Pueblo, Colorado, has provided us with information and insights, as well as rimblock specimens; we are particularly grateful to Greg Garcia, Robert Florom, and Dan

Stone. GrifTm Wheel Co. and Richard A. Pilon were invaluable in providing many test wheels,

much data, and dynamometer facilities. Jacek Szel^zek and Julian Deputat of the Institute of

Fundamental Technological Research of the Polish Academy of Sciences were valuable

collaborators. At NIST, Steve Schaps designed the preamplifier and Mike Gallagher machined

the aluminum EMAT case.

9. REFERENCES

1. Federal Railroad Administration, U.S. Dept. of Transportation, Code of Federal

Regulations 49 CFR, 65, §215.03(h), 1985.

2. Office ofResearch and Development ofthe Association of American Railroads, Wheel

Failure Mechanisms ofRailroad Cars, Report TFR 53-82-C-00282, 1986.

21
3. R.E. Schramm, A.V. Clark, Jr., D.V. Mitrakovic, S.R. Schaps, and T.J. McGuire,

"Report No. 23 - Residual Stress Detection in Railroad Wheels: An Ultrasonic System

Using EMATs," NISTIR 3968, May 1991.

4. R.E. Schramm, A.V. Clark, Jr., and T.J. McGuire, "Ultrasonic Measurement of

Residual Stress in Railroad Wheel Rims," in Tenth International Wheelset Congress,

Institution of Engineers, Austraha, 11 National Circuit, Barton, ACT, pp. 151-155

(1992).

5. R.E. Schramm, J. Szel^zek, and A.V. Clark, Jr., "Report No. 28 - Residual Stress in

Induction-Heated Railroad Wheels: Ultrasonic and Saw Cut Measurements," NISTIR

5038, May 1995.

6. R.E. Schramm, J. Szel^zek, and A.V. Clark, Jr., "Ultrasonic Measurement ofResidual

Stress in the Rims ofInductively Heated Railroad Wheels." Materials Evaluation, Vol.

54, August 1996, pp. 929-934.

7. R.E. Schramm, J. Szel^zek, and A.V. Clark, Jr., "Report No. 30 - DynamometerInduced Residual Stress in Railroad Wheels: Ultrasonic and Saw Cut Measurements,"

NISTIR 5043, March 1996.

8. R.E. Schramm, A.V. Clark, and J. Szel^zek, "Ultrasonic Measurement of Residual

Stress in Cast Steel Railroad Wheels," in Determining Material Characterization:

Residual Stress andIntegrity with NDE, PVP-Vol. 276, NDE-Vol. 12, The American

Society of Mechanical Engineers, NY, pp. 157-162 (1994).

9. R.E. Schramm, A.V. Clark, and J. Szel^zek, "Safety Assessment ofRailroad Wheels by

Residual Stress Measurements," in Nondestructive Evaluation ofAging Raitoads,

Donald E. Gray, Daniel Stone, eds., Proc. SPIE 2458, pp. 97-108 (1995).

10. P. A. Fuchs, A.V. Clark, M.G. Lozev, U. Halabe, P. Klinkhachom, S. Petro, and H.

GangaRao, "Ultrasonic Instrumentation for Measuring Applied Stress on Bridges,"

submitted to loumal for Nondestructive Testing, November 1997.

APPENDIX I: Commercial Systems Available or in Development

We are aware of three ultrasonic systems currently available on the commercial market. While

the principle of operation is the same, there are differences in implementation.

22
1

.

DEBRO from the Institute of Fundamental Technological Research, Polish Academy

of Sciences, Warsaw, Poland. • Based on piezoelectric transducers requiring fluid couplants. • Small, compact, can use batteries for portable operation.

2. Institut fiir zerstorungsfreie Priifverfahren (IzfP), Saarbriicken, Germany. • Based on EMATs. • Very large, with electromechanical operations for very detailed

inspections/analyses.

3. CISE SpA, Milan, Italy • Based on EMATs. • Recently released, no further information.

The NIST/FRA system, for comparison: • Based on EMATs. • Compact, but not currently operating on batteries. • Reliable screening (stress is compressive or tensile) in about 30 s.

Within the last few months, two companies have notified us that they have started preliminary

development ofEMAT systems intended for stress measurements in railroad wheel rims. Their

work stems, at least in part, from the NIST program.

1

.

International Electronic Machines Corporation

60 Fourth Ave.

Albany, NY 12202-1924

2. Sonic Force Company

30 Adrian Ct.

Buriingame, CA 94010

APPENDIX II: Commercial Equipment Used in this Instrument

The identification of companies, products, or tradenames in no way implies endorsement or approval by NIST; these are included in this report only for complete documentation of

apparatus wefound adequate or useful. Other products may exist which are equally acceptable.

23
Three commercial products make up the bulk of the electronics in this ultrasonic package.

1. Personal Computer, 100 MHz, Pentium-type:

Virtually any PC can serve as a platform. The only requirements are the availabiUty of

two, full-length plug-in slots and a power supply with a minimum capacity of 250 W.

A faster CPU will result in shorter measurement time, but, after 100 MHz, the main

limit is probably the transfer time from the ADC to the main RAM.

2. The software used here explicitly incorporates the WAAG II ADC, 40 MHz, 8 bit:

Markenrich Corp.

1812 Flower Ave.

Duarte, CA 91010

Several digitizers with sampling rates of 50 or 100 MHz are now on the market. The

WAAG III at 50 MHz has superseded the WAAG II.

3To the best ofour knowledge, the only integrated pulser/receiver currently available on

a single PC plug-in card is the Matec TBI 000, 450 W (p-p) power, 70 dB gain:

Matec Instrumentation, Inc. 56 Hudson St. Northborough, MA 01532

While this integration is not necessary, it does allow the stress-measurement system to

reside in a consolidated box.

APPENDIX III: External Box: Relay, Preamp, and Cable

The RS-232 connectors (D-subminiature) are 25-pin at the computer and 9-pin at the external

box. Jumpers connect three pins, and two pins provide the drive for the coil switching relay.

While we found a relay that will operate directly from the bus, it would be better to have a

driver for the relay. The following schematic shows the connections and a proposed driver.

24
RS-232

Computer Pin Box Pin

(DB25)

20

6

4

(DB9)

4

6

8

Hg-Wetted Reed Relay*

500 V, 5 A

12 V coll

jumpered

External Box

in<|preamp

out

EMAT

top coil

(radial)

bottom coll

(circumferential)

outi

In I

Ipulserj^

^ irec^v^rl ; p|ug.|n Qgrd

trigger

out

In ^{aId] Plug-In Card

e.g.. CP Clare. HGWM51 1 1 1P00

A possible relay driver:

RS-232

+12 V

relay

The following schematic is the preamplifier in the external box. We estimate the gain to be

55 dB to 60 dB. Note that Rl - R4 with Dl and D2 constitute a diode limiter that protects the

preamp from the very large gated signal that powers the EMAT. Preamp power comes fi-om

the computer. R1 3 and R14 are current-lhniting resistors to protect the power supply. L2 helps

protect against ground-loop noise.

25
EMAT PREAMPLIFIER

(2 MHz)

In O

V = 5-12 voHs

out

PARTS LIST

R1- R4 100 Q. 1%. 1/8 W. metal film CI 33 pF

R5 6.8 k, 1%. 1/8 W. metal film C2 56 pF

R6 10 Q, 1%, 1/8 W, metal film C3- C4 0.1 jif

R7 5.11 k. 1%, 1/8 W, metal film C5- C6 1 jif. 50 V

R8 4.75 k, 1%, 1/8 W, metal film D1- D2 1N4148

R9 47.5 k. 1% L1 100 jiH

R10 -R11 100 Q. 1% L2 22 mH

R12 49.9 Q. 1%, 1/8 W metal film IC1 AD797

R13 -R14 100 Q, 1 W, carbon IC2 CLC425

26
The 2 m long EMAT cable contains six pairs of 24 AWG wire, with a foil shield around each

pair; an external wire braid and then a polymer braid covers the cable. The connectors at each

end have a heavy aluminum case with a screw-on shell to ensure stable, enclosed contacts. Since

this was stUl a research project, the box contains parallel feeds through BNC connectors and

a DPDT switch to reverse the connections to the two EMAT coils.

APPENDIX rV: Pulser/Receiver Operational Parameters

To operate the pulser/receiver board, a menu of parameters available. Those used here are: Rep Rate

Receiver Gain

Frequency

Trigger

Width

Vsel

X/R

Rectify

HPF

LPF

10 ms (repetition rate =100 Hz)

25 dB (adjustable dB to 70 dB)

2 MHz (20 MHz maximum)

+Int

4 p,s (8 cycles/pulse)

High (also can switch to low or zero voltage)

Tx ("through transmission" normally for pitch-catch)

None (look at rf signal)

1 MHz (high pass filter)

2.25 MHz (low pass filter)

Unless changed during startup, these parameters remain fixed.

APPENDIX V: Software Listings

The software written for this program is in BASIC and will run in QBASIC or GWBASIC;

when it is run in the latter, use the Id switch (see batch files below) to activate double precision

capability necessary for the statistical calculations.

Table 1 . Software Summary

Directory Contents Purpose

STRESS SHOP, DETAIL, FILE, FILEB

(all as .BAS and .TXT)

TBI 000 Matec software

BATCH SHOP, DETAIL, FILE, FILEB

(all as .BAT)

Data collection and display programs

Pulser/receiver operation and control

Call software (directory in PATH

statement ofAUTOEXEC.BAT)

27
Software Outline

1. Enter identification (or just ENTER twice for blank lines)

A. Work-session parameters (e.g., operator name, location, etc.)

B. Specimen parameters (e.g., wheel ID, rim location, etc.)

2. Switch relay to radial polarization

A. Digitize first round-trip echo at 40 MHz (25 ns/point)

B. Transfer 512 points to computer RAM (85 ijs to 97.8 /us)

C. Repeat signal capture (A and B) 36 times

D. Calculate average of the 36 signals

3. Signal timing

A. Find signal maximum (N.B., do this for only the first echo captured, then use

this same time point for all subsequent signals. This assures measuring the same

cycle on each echo, i.e., prevents cycle skipping.)

B. Find the first zero crossing before the maximum from A

C. Fit (least squares) a straight line to the two points above and the two points

below this zero crossing

D. The intercept of this line with the zero ordinate is the time

4. Switch relay to hoop polarization, repeat 2 and 3

5. Calculate stress A. B from the relative time change between polarizations

B. Bq and C^ material constants

6. Report stress (MPa and ksi) on computer screen

7. Repeat 2 through 6, 10 times

8. Statistics calculated from the 10 sets of measurements

A. Average and standard deviation

B. Data spread (maximum and minimum)

9. Options

A. Printer copy of screen display

B. Floppy disk copy of raw data (can be used to display stresses any time later)

C. Go to next measurement (l.B.)

D. Exit program and conclude session

28
SHOP.BAS -- BASIC listing of the program that displays only the calculated stress.p 1 of 5

SHOP 12/8/97 Mon Ray S.

automatic switching between coils - connects to COM2

calculate echo arrival times for radial & circxim. polarizations

time by straight line extrapolation - cf. Paul Fuchs (4 points)

average AV signals - 10 tests - colored flags

calculate stress only (default BO & CA)

also calculate avg. & std. dev.

(Load interpreter as GWBASIC/D to get doxible precision for std. dev.)

2 MHz signals digitized 8 40 MS/s (WAAG) 512 pts start § 85 us (OS ns)

§ 25 ns/pt, this is 12.8 us (thickness range edsout 136-156 mm)

find index of max for 1st sig - same for 2nd sig & subsequent 10 tests

options for printer and floppy disk file (use FILE or FILEB to read) ****************** Program Constants *********************

# of signals captured for average

# of points for straight line fit (could be 2)

alarm leve (red square) for stress report

conversion, ksi to MPa max stress spread (yellow square) in MPa (=>5ksi)

texture birefringence (in 10^-4)

stress acoustic constant (in lO^-6/MPa)

# of data sets collected

digital offset in ns = start of data

digitizing time in ns for 40 MS/s A/D

*******************************

100

110

120

130

140

150

160

170

180 ' 190 ' 200 ' 205 ' 210 ' 500 REM

510 ' 520 AV=36

530 LF=4

540 ALARM=0

550 KSI=6. 894757

560 WIDE=5*KSI

570 BF=-2.1

580 CF=-7.8

590 DS=10

600 OS=85000!

610 DT=25

620 ' 700 REM *****************

710 ' 720 SCREEN 8

730 COLOR 7,1

750 DIM Y%(512)

760 FOR 1=1 TO 2 ' cycle coil relay 2 times

770 OPEN •'COM2:" FOR RANDOM AS #3: ' switch to radial

780 FOR J=l TO 60000! :NEXT J ' delay

790 CLOSE #3: ' switch to circumferential

800 FOR J=l TO 60000! :NEXT J ' delay

810 NEXT I 820 GOSUB 4000 ' set up WAAG

830 CLS : PRINT "Information for EVERY data set (e.g., operator)

840 IF ID$ = "" THEN 890

850 CLS : PRINT ID$ : PRINT : PRINT : PRINT "Use SAME identification or type in a NEW one? (Type S or N)

860 Z$ = INPUT$(1): IF Z$ = "S" OR Z$ = "s" THEN 1020

870 IF Z$ = "N" OR Z$ = "n" THEN 890

880 GOTO 860

890 CLS : PRINT "Identification for THIS data set (DATE$ & TIME$ added) —"; UT ID$

900 ' 1000 REM

1010 ' 1020 CLS

1030 PRINT ID$;

1040 LOCATE 3,1

1050 PRINT "Test

1060 PRINT "Num

1070 F$ = "###

1080 PRINT : L =

Set Up

change screen

white on blue

INPUT 0P$

INP

*************** print heading

-"; 0P$; •

Start Test ****************************

DATE$; " "; TIME$

Stress"

MPa ksi"

+#### +###"

ID = 1 1090 SM1# = 0: SM2# = 0: SE1# = 0: SE2# =

1100 GOSUB 10000: PRINT " Type S to start data collection.

1110 Z$ = INPUT$(1)

29
p. 2 of5

1120 IF Z$ = "S" OR Z$ = "S" THEN 1140

1130 GOTO 1110

1140 GOSUB 10000: PRINT "Now collecting" ;DS; "sets of data.";

1150 GOSUB 9600 ' turn on blue flag

1160 P0L=1:0PEN "COM2:" FOR RANDOM AS #3: ' switch to radial

1170 GOSUB 4200: R = T:TR(ID)=R+OS ' READ RADIAL TIME

1180 POL=2:CLOSE #3: ' switch to circumferential

1190 GOSUB 4200: C = T:TC(ID)=C+OS ' READ CIRCUM TIME

1200 GOSUB 1250: LOCATE L,l: PRINT USING F$; ID; 5*CINT(SM/5) ; SE: L = L + 1 1210 Tl(ID) = R + OS: T2(ID) = C + OS: Sl(ID) = SM: S2(ID) = SE: ID = ID + 1 1220 SM1# = SM1# + SM: SM2# = SM2# + SM ^ 2: SE1# = SE1# + SE: SE2#

* 2 1230 IF ID = DS+1 THEN 2200: ' average & statistics

1240 GOTO 1160

1250 ' 2000 REM *************** Calculations

2010 ' 2020 BO = BF * 10 '^ -4: ' Birefringence due to texture

2030CA=CF*10^-6: ' Stress acoustic constant in 1/MPa

2040 B = (R - C) / (OS+(R + C) / 2): ' Measured birefringence

2050 SM = (B - BO) / CA: ' Stress in MPa

2060 SE = SM / KSI: ' Stress in ksi

2070 IF ID > 1 THEN 2090

2080 SMAX = SM: SMIN = SM: RETURN

2090 IF SM > SMAX THEN SMAX = SM

2100 IF SM < SMIN THEN SMIN = SM

2110 RETURN

2120 ' *********** AVERAGE &

SE2# + SE

Stress, Max, Min **********

2200 REM

2210 ' 2220 ID = ID - 1: 2230 SM1#

2240 SE1#

2250 F$ =

STATISTICS ***********************

IF ID < 2 THEN 2360

= SM1# / ID: SM2# = SQR((SM2# - ID * SM1#

= SE1# / ID: SE2# = SQR((SE2# - ID * SE1#

"\ \ +#### +###"

2) / (ID - D)

2) / (ID - D)

2260 LOCATE L + 1,1: PRINT USING F$; "Avg"; 5*CINT(SMl#/5) ; SE1#

2270 F$ = "\ \ ###

2280 PRINT USING F$; "S.D."

2290 F$ = "\ \ +####

2300 PRINT USING F$; "Max";

2310 PRINT USING F$; "Min";

2320 IF SM1#>=ALARM GOTO 2340

2330 GOSUB 9700: GOTO 2350

2340 GOSUB 9800

###"

5*CINT(SM2#/5) ; SE2#: PRINT

5*CINT(SMAX/5); SMAX / KSI

5*CINT(SMIN/5) ; SMIN / KSI

test for bad stress

green flag

red flag

yellow flag

": F$ = F$ + F$ + F$: PRINT F$;

2350 IF SMAX-SMIN>WIDE THEN GOSUB 9900

2360 'LOCATE 22: F$ = " PRINT F$

2370 GOSUB 10000: PRINT "PRINT this screen (P) , MORE data (M) , SAVE to floppy (S

), or EXIT program (X)?";

2380 Z$ = INPUT$(1)

2390 IF Z$ = "X" OR Z$ = "x" THEN SYSTEM

2400 IF Z$ = "M" OR Z$ = "m" THEN 840

2405 IF Z$ = "S" OR Z$ = "s" THEN 5000

2410 IF Z$ = "P" OR Z$ = "p" THEN 2430

2420 GOTO 2380

2430 ' 2600 REM *********** PRINT SCREEN

2610 ' 2620 LPRINT CHR$(27); CHR$(120); CHR$(1)

2630 LPRINT CHR$(27); CHR$(107); CHR$(1)

inter

***********************

turn on NLQ on LX-800 printer

select sans serif font on LX-800 pr

30
p. 3 of5

2640 SC = SC + 1: ' screen counter

2650 LPRINT ID$: LPRINT 0P$; " "; DATE$; " "; TIME$: LPRINT

2660 LPRINT "Test Stress"

2670 LPRINT "Nvun MPa ksi"

2680 F$ = "### +#### +###"

2690 FOR I = 1 TO ID: LPRINT USING F$; I; 5*CINT(Sl(I)/5) ; S2(I): NEXT I 2700 LPRINT

2710 F$ = "\ \ +#### +###"

2720 LPRINT USING F$; "Avg" ; 5*CINT(SMl#/5) ; SE1#

2730 F$ = "\ \ ### ###"

2740 LPRINT USING F$ ; "S.D."; 5*CINT(SM2#/5) ; SE2#: PRINT

2750 F$ = "\ \ +#### +###"

2760 LPRINT : LPRINT USING F$; "Max"; 5*CINT(SMAX/5) ; SMAX / KSI

2770 LPRINT USING P$; "Min" ; 5*CINT(SMIN/5) ; SMIN / KSI

2775 LPRINT : LPRINT "BO =" ; BF; " X 10^-4 and CA = "; CF; " x 10*-6/MPa"

2790 LPRINT : LPRINT : LPRINT : IF SC < 2 THEN 2810

2800 SC = 0: LPRINT CHR$(12): ' form feed printer after 2 screen prints

2810 GOSUB lOOOOtPRINT "MORE data (M) , SAVE to floppy (S) , or EXIT program (X)?"

2820 Z$ = INPUT$(1)

2830 IF Z$ = "X" OR Z$ = "x" THEN SYSTEM

2835 IF 2$ = "S" OR 2$ = "s" THEN 5000

2840 IF Z$ = "M" OR Z$ = "m" THEN 840

2850 GOTO 2820

2860 ' 3000 REM ***************** Start Processing ******************

3010 ' 3020 FOR 1=0 TO 511: Y% (I)=Y% (I) -AV*128 :NEXT I 3030 IF P0L=2 THEN 3070

3040 IF ID>1 THEN 3070

3050 GOSUB 3280 ' find peak of 1st signal

3060 GOTO 3080

3070 GOSUB 3460

3080 T=REF(LF)*10*3': PRINT T: RETURN ' LF (=» 2 or 4) point fit for time

3090 RETURN

3100 ' 3200 REM *************** Linear Fit of N points, starting § point K ** 3210 ' calculate slope & intercept to get crossing

3220 SX#=0:SY#=0:SXY#=0:SX2#=0

3230 FOR K=I TO I+N-1

3240 SX#=SX#+K:SX2#=SX2#+K^2:SY#=SY#+Y%(K) :SXY#=SXY#+K*Y%(K) :NEXT K

3250 SL#=(N*SXY#-SX#*SY#)/(N*SX2#-SX#*2) ' slope

3260 IN#=(SX2#*SY#-SX#*SXY#)/(N*SX2#-SX#^2) ' intercept

3270 XO#=-IN#/SL#: RETURN ' crossing (time=0.025 us * X0#)

3280 ' 3400 REM ******* Find Crossing - acoustic signals ***

3410 ' 3420 MAX=Y%(0) :P=0 'find signal peak

3430 FOR 1=1 TO 511

3440 IF MAX<Y%(I) THEN MAX=Y% (I) :P=I

3450 NEXT I 3460 GOSUB 3510 ' points about

3470 FOR N=2 TO 4 STEP 2 ' fit to 1 & 2 point pairs

3480 I=I-1:G0SUB 3200 ' linear LS fit

3490 REF(N)=X0#*.025:NEXT N ' reference times in us

3500 RETURN

3510 ' 3600 REM ******** Find 1st Point Above Baseline *******

3610 ' 3620 I=P-2

31
p. 4 of 5

1630

)640

)650

3660

1000

iOlO

1020

1030

1040

4050

1060

1070

4080

4090

4100

4110

4120

4130

4140

4150

4160

4200

4210

4220

4230

4240

4250

4260

4270

4280

4290

4300

4310

4320

4330

4340

4400

4410

4420

4430

4440

4450

4460

4470

4480

4600

4610

4620

4630

4640

4650

4660

4670

4680

4690

4700

4710

4720

4730

4740

IF y%(I)<0 THEN 3650

I=I-l:GOTO 3630

1=1+1: RETURN ' I = 1st # above baseline

REM *************** Set Up WAAG Card ********************************

SEGMENT% = &HD000

PORT0% = &H178

P0RT1% = &H179

P0RT2% = &H17A

P0RT3% = &H17B

'WAAG II data segment

'Default setting, all switches are off

DEF FN LOBT(X%) = X% AND &HFF 'Define low byte

DEF FN HIBT(X%) = ( (X% AND &HFFOO) \ 256) AND &HFF 'Define high byte

C0UNT%=4096

CONTROL% = &H800C

TOFFSET% =140

RETURN

REM ************

'Record length (102.4 us § 0.025 us/point)

'Control word, 40 Mhz clock (single channel)

'Trigger offset value

Digitize Signal

FOR 1=0 TO 511:y%(I)=0:NEXT I FOR M=l TO AV

GOSUB 4400

GOSUB 4600

ISTART = TRIG * 2 DEF SEG = SEGMENT%

GOSUB 4800

DEF SEG

NEXT M

GOSUB 2860

RETURN

****************************

'clear array

'average AV pulses

'Load trigger offset

'Data accjuitition

'Valid address of trigger point

'Define data segment

'add up files

'Restore data segment

REM ********** Load Trigger offset stibroutine ************************

DEF SEG = SEGMENT%

OUT PORT3%,&HC0: OUT PORT2%,&H6F

POKE 0, TOFFSET%

OUT PORT3%,&H80: OUT PORT2%,&H6F

DEF SEG

RETURN

'Define WAAG II segment

'Enable trigger offset

'Load offset value

'Reset control register

'Restore data segment

REM ********** Data acquisition subroutine *************************

'Initialize control regs

'Clear counter

OUT PORT3%,&H80: OUT PORT2%,&H6F

OUT P0RT1%,&HFF: OUT PORT0%,&HFF

OUT P0RT1%,&HFF: OUT PORT0%,&HFF

N% = -(COUNT% + &HFF) 'Correct count

OUT P0RT1%,FN HIBT(N%): OUT PORT0%,FN LOBT(N%)

OUT P0RT1%,FN HIBT(N%): OUT PORT0%,FN LOBT(N%)

Nl% = CONTROL% AND &HBFFC

OUT PORT3%,FN HIBT(N1%) : OUT P0RT2%,FN L0BT(N1%)

IF INP(PORT2%)<>249 THEN 4700 'WAIT P0RT2%,1

OUT PORT3%,&H80: OUT PORT2%,&H6F

TRIG = INP(PORT0%) + (INP(P0RT1%) AND &H3F) *256

RETURN

'Load count

'Start sampling

wait for busy

'Enable WAAG II ram

'Read trigger value

32
p.5of5

4800 REM ************** Sum Files ******************************************

4810 ' 4820 IA=START

4830 FOR 1=0 TO 511 ' 12.8 us = 512*25 ns/pt

4840 Y%(I)=Y%(I)+PEEK(IA+I+OS/DT) :NEXT I 'add sigs, start @ OS ns, DT increments

4850 RETURN

4860 ' 5000 REM ********************** Write time data on floppy *************

5010 ' 5020 GOSUB 10000

5030 PRINT"Insert floppy into DRIVE A: — FILE name (.DAT added) = "; 5040 INPUT DN$:DN$="A:"+DN$+".DAT"

5050 OPEN "0",#1,DN$

5060 PRINT#1,ID$:PRINT#1,0P$

5070 PRINT#1,CHR$(34) ;TIME$;CHR$ (34) ;CHR$(34) ;DATE$;CHR$ (34) ;CHR$(34) ;STR$(BF) ;C HR$(34) ;CHR$(34) ;STR$(CF) ;CHR$(34) ;CHR$(34) ;STR$(DS) ;CHR$(34)

5080 FOR 1=1 TO DS:PRINT#1, CHR$ (34) ;STR$ (TR(I) ) ;CHR$ (34) ;CHR$ (34) ;STR$ (TC(I) ) ;CH

R$(34) :NEXT I 5090 CL0SE#1

5100 LOCATE 22: F$ = " ": F$=F$+F$+F$ : PRINT F$: PRINT F$

5110 GOSUB 10000 :PRINT"PRINT this screen (P) , MORE data (M) , or EXIT program (X)

?";

5120 Z$=INPUT$(1)

5130 IF Z$="X" OR Z$="x" THEN SYSTEM

5140 IF Z$="M" OR Z$="m" THEN 840

5150 IF Z$=''P" OR Z$="p" THEN 2600

5160 GOTO 5120

5170 ' 9500 REM **************** Colored Flags ******************************

9600 ' 9610 ' Light Blue Square TESTING

9620 LINE(500,120)-(600,170) ,2,B 'green border - only thing that works

9630 PAINT(525,137) ,3,2 'light blue square

9640 LOCATE 19, 66: PRINT"WORKING" : RETURN

9650 ' 9700 ' 9710 ' Green Square GOOD

9720 PAINT(525,137) ,2,2 'green square

9730 LOCATE 19, 66: PRINT" GOOD ": RETURN

9740 ' 9800 ' 9810 ' Red Square BAD

9820 PAINT(525,137) ,4,2 'red square

9830 LOCATE 19, 66: PRINT" BAD ":RETURN

9840 ' 9900 ' 9910 ' Yellow Square WIDE STRESS RANGE

9920 LINE(500,50)-(600,100) ,2,B 'green border - only thing that works

9930 PAINT(525,75) ,14,2 'yellow square

9940 LOCATE 9, 67: PRINT" WIDE " 9950 LOCATE 10, 67 : PRINT"STRESS"

9960 LOCATE 11, 67 : PRINT"RANGE ": RETURN

9970 ' 10000 REM *************** Response Bar - Bottom of Screen *******

10010 ' 10020 LINE(0,170)-(640,195) ,5,BF

10030 LOCATE 23,1: RETURN

10040 '

33
DETAIL.BAS - BASIC listing of the program that displays arrival times and birefringence

with calculated stress.

p. 1 of

5

DETAIL 12/8/97 Mon Ray S.

automatic switching between coils - connects to COM2

read in echo arrival times for radial & circum. polarizations

calculate biref & stress (default BO & CA in 2480 or read file)

also calculate avg. & std. dev.

(Load interpreter as GWBASIC/D to get dotible precision for std. dev.)

2 MHz signals digitized 6 40 MS/s (WAAG) 512 pts start § 85 us time by straight line extrapolation - cf. Paul Fuchs

uses both 1 & 2 pairs of points about baseline

find index of max for 1st sig - same for 2nd sig

options for printer and floppy file (read with FILE or FILEB)

-2.1:CF -7.8 stress parameters

100

110

120

130

140

160

170

180

190

200

210

215

220

230 BF = 240 CLS

255 DIM Y%(512)

260 FOR 1=1 TO 2 ' cycle coil relay 2 times

270 OPEN "COM2:" FOR RANDOM AS #3: ' switch to radial

280 FOR J=l TO 60000! :NEXT J 'delay

290 CLOSE #3: ' switch to circumferential

300 FOR J=l TO 60000! :NEXT J 'delay

310 NEXT I 330 GOSUB 9014 ' set up WAAG

340 PRINT"Number of traces for average = ";: INPUT AV

410 CLS: 'PRINT"Check EMAT control box:"

500 DS=10: 'number of data sets for each measurement

570 CLS : PRINT "Information for EVERY data set (e.g.,

580 IF ID$ = "" THEN 630

590 CLS : PRINT ID$: PRINT : PRINT : PRINT "Use SAME identification or type in a NEW one? (Type S or N)

600 Z$ = INPUT$(1): IF Z$ = "S" OR Z$ = "s" THEN 640

610 IF Z$ = "N" OR Z$ = "n" THEN 630

620 GOTO 600

630 CLS : PRINT "Identification for THIS data set (DATE$ & TIME$ added) —": INP

UT ID$

640 CLS : ' print heading

650 PRINT ID$; " —"; 0P$;

660 LOCATE 3 670 PRINT "Test

680 PRINT "Num

690 F$ = "###

700 PRINT : L =

operator) —": INPUT 0P$

"; DATE$; " "; TIME$

Radial Time

(ns)

######

5: ID = 1

Circiim Time

(ns)

######

B (Xl0*4) Stress"

MPa ksi"

710 Rl# = 0: R2# = 0: Cl# = C2# = 0: Bl# = 0: B2# = 0: SM1# = 0: SM2# = 0: SE

1# = 0: SE2# = 0: OS=85000! 'digital offset in ns

1000 ' 1010 ' MASTER CONTROL

1020 ' 1030 LOCATE 22

1040 PRINT "Type S to start data collection. " " 1050 LOCATE 23: Z$ = INPUT$(1)

1060 IF Z$ = "S" OR Z$ = "s" THEN 1080

1070 GOTO 1050

1080 LOCATE 22: PRINT "Now collecting" ;DS; "sets of data. " 1090 P0L=1:0PEN "COM2:" FOR RANDOM AS #3: ' switch to radial

1100 GOSUB 9080: R = T ' READ RADIAL TIME

1110 P0L=2: CLOSE #3: ' switch to circumferential

1120 GOSUB 9080: C = T ' READ CIRCUM TIME

1130 GOSUB 1200: LOCATE L: PRINT USING F$; ID; R + OS; C + OS; B * 10 ^ 4; SM; S

E: L = L + 1 1150 Tl(ID) = R + OS: T2(ID) = C + OS: BR(ID) = B * 10 ^ 4: Sl(ID) = SM: S2(ID)

34
p.2of5

= SE: ID = ID + 1 1160 Rl# = Rl# + R: R2# = R2# + R ^ 2: Cl# = Cl# + C:

1# + B * 10 ^ 4: B2# = B2# + (B * 10 ^ 4) '^ 2 1170 SM1# = SM1# + SM: SM2# = SM2# + SM ^ 2: SE1# = SE1# +

'^ 2 average & statistics

C2# = C2# + C '^ 2: Bl# = B

SE: SE2# = SE2# + SE

1180 IF ID = DS+1 THEN 2000:

1190 GOTO 1090

1200 ' 1210 ' Calculations

1220 ' 1230 BO = BF * 10 ^ -4: ' Birefringence due to texture

1240 CA = CF * 10 ^ -6: ' Stress acoustic constant in 1/MPa

1250 B = (R - C) / (OS+(R + C) / 2) : ' Measured birefringence

1260 SM = (B - BO) / CA: ' Stress in MPa

1270 KSI = 6.894757: SE = SM / KSI: ' Stress in ksi

1280 IF ID > 1 THEN 1300

1290 RMAX = R: RMIN = R: CMAX = C: CMIN = C: BMAX = B: BMIN = B: SMAX = SM: SMIN

= SM: RETURN

1300 IF

1310 IF

1320 IF

1330 IF

1340 IF B

1350 IF B

> RMAX THEN RMAX = R

< RMIN THEN RMIN = R

> CMAX THEN CMAX = C

< CMIN THEN CMIN = C

> BMAX THEN BMAX = B

< BMIN THEN BMIN = B

1360 IF SM > SMAX THEN SMAX = SM

1370 IF SM < SMIN THEN SMIN = SM

1380 RETURN

2000 ' 2010 ' AVERAGE & STATISTICS

2020 ' 2040 ID = ID - 1: IF ID < 2 THEN 2170

2050 Rl# = Rl# / ID: R2# = SQR((R2# - ID * Rl# ^ 2) / (ID - 1))

2060 Cl# = Cl# / ID: C2# = SQR((C2# - ID * Cl# * 2) / (ID - 1))

2070 Bl# = Bl# / ID: B2# = SQR((B2# - ID * Bl# ^ 2) / (ID - 1))

2080 SM1# = SM1# / ID: SM2# = SQR( (SM2# - ID * SM1# * 2) / (ID - 1))

2090 SE1# = SE1# / ID: SE2# = SQR((SE2# - ID * SE1# ^ 2) / (ID - 1))

2100 F$ = "\ \ ###### ###### +###.## +#### +###.#"

2110 LOCATE L + 1: PRINT USING F$; "Avg" ; Rl# + OS; Cl# + OS; Bl#; SM1#; SE1#

###.## ##«.## ##.###

"S.D."; R2#; C2#; B2#; SM2#; SE2#: PRINT

«#.## ##.###"

"Max"; RMAX

######

OS; CMAX + OS; BMAX * 10 4; SMAX; SMAX / KS

"Min"; RMIN + OS; CMIN + OS; BMIN * 10 * 4; SMIN; SMIN / KS

•» II : F$ = F$ + F$ + F$: PRINT F$: P

2120 F$ = "\ \

2130 PRINT USING F$

;

2140 F$ = "\ \

2150 PRINT USING F$;

I2160 PRINT USING F$

;

I2170 LOCATE 22: F$ =

RINT F$

2180 LOCATE 22: PRINT "PRINT this screen (P) , MORE data (M) , SAVE to floppy (S)

,

or EXIT program (X)?"

2190 Z$ = INPUT$(1)

2200 IF Z$ = "X" OR Z$

2205 IF Z$ = "S" OR Z$

2210 IF Z$ = "M" OR Z$

2220 IF Z$ = "P" OR Z$

2230 GOTO 2190

4000 ' 4010 'PRINT SCREEN

4020 ' 4030 LPRINT CHR$(27); CHR$(120); CHR$(1):

4040 LPRINT CHR$(27); CHR$(107); CHR$(1):

"X" THEN SYSTEM

I's" THEN 5000

"m" THEN 580

turn on NLQ on LX-800 printer

select sans serif font on IiX-800 pr

35
p. 3 of5

inter

4050 SC = SC + 1: ' screen counter

4060 LPRINT ID$: LPRINT 0P$; " " ; DATE$; " " ; 4070 LPRINT "Line Radial Time Circum Time

4080 LPRINT "Num (ns) (ns)

II4090 F$ = "### ###### ######

4100 FOR I = 1 TO ID: LPRINT USING F$; I; T1(I);

T I 4110 LPRINT

4120 F$ = "\ \ ###### ######

4130 LPRINT USING F$; "Avg" ; Rl# + OS; Cl# + OS;

TIME$: LPRINT

B (xl0^4)

+###.##

Stress"

MPa ksi

T2(I); BR(I); SI (I) ;

Bl#; SM1#; SE1#

C2#; B2#; SM2#; SE2#: PRINT

+###.#"

S2(I): NEX

+###.#"

##.###"

###### +###.##

LPRINT USING F$; "Max"; RMAX + OS; CMAX + OS;

+ OS; BMIN * 10

BMAX * 10

+###.#"

4; SMAX;

and CA =

^ 4; SMIN; SMIN / K

CF; "X 10^-6/MPa"

4140 F$ = "\ \ ###.##

4150 LPRINT USING F$; "S.D."; R2#;

4160 F$ = "\ \ ######

4170 LPRINT

SMAX / KSI

4180 LPRINT USING F$; "Min"; RMIN + OS; CMIN

SI

4190 LPRINT : LPRINT "BO =" ; BF; " x 10^-4

4200 LPRINT : LPRINT : LPRINT : IF SC < 2 THEN 4220

4210 SC = 0: LPRINT CHR$(12): ' form feed printer after 2 screen prints

4220 LOCATE 22: PRINT "PRINT this screen (P) , MORE data (M) , SAVE to floppy (S)

,

or EXIT program (X)?"

4230 Z$ = INPUT$(1)

4240 IF Z$ = "X" OR Z$ = "x" THEN SYSTEM

4245 IF Z$ = "S" OR Z$ = "s" THEN 5000

4250 IF Z$ = "M" OR Z$ = "m" THEN 580

4255 IF Z$ = "P" OR Z$ = "p" THEN 4000

4260 GOTO 4230

5000 REM ********************** Write time data on floppy *************

5010 ' 5030 PRINT"Insert floppy into DRIVE A: — FILE name {.DAT added) = "; 5040 INPUT DN$:DN$="A:"+DN$+".DAT"

5050 OPEN "0",#1,DN$

5060 PRINT! 1,ID$:PRINT#1,0P$

5070 PRINT#1,CHR$(34) ;TIME$ ;CHR$ (34) ;CHR$(34) ;DATE$;CHR$ (34) ;CHR$(34) ;STR$(BF) ;C HR$(34) ;CHR$(34) ;STR$(CF) ;CHR$(34) ;CHR$(34) ;STR$(DS) ;CHR$(34)

5080 FOR 1=1 TO DS :PRINT#1,CHR$ (34) ;STR$ (Tl (I) ) ;CHR$ (34) ;CHR$ (34) ;STR$ (T2 (I) ) ;CH

R$(34) :NEXT I 5090 CLOSEtl

5100 LOCATE 22: F$ = " ": F$=F$+F$+F$ : PRINT F$: PRINT F$

5110 PRINT"PRINT this screen (P) , MORE data (M) , or EXIT program (X)?";

5120 Z$=INPUT$(1)

5130 IF Z$="X" OR Z$="X" THEN SYSTEM

5140 IF Z$="M" OR Z$="m" THEN 580

5150 IF Z$="P" OR Z$="p" THEN 4000

5160 GOTO 5120

5170 ' 8000 REM *********************************************************************

8010 FOR 1=0 TO 511:Y%(I)=Y%(I)-AV*128:NEXT I 8012 IF P0L=2 THEN 8017

8013 IF ID>1 THEN 8017

8014 GOSUB 8047 ' find peak of 1st signal

8015 GOTO 8018

8017 GOSUB 8052

8018 T=REF(4)*10^3':PRINT T:RETURN ' 4 point fit for time

8019 RETURN

8020 REM ******************************************************************

8021 '

36
p. 4 of 5

8039

8040

8041

8042

8043

8044

8045

8046

8047

8048

8049

8050

8051

8052

8053

8054

8055

8057

8058

8059

8060

8061

8062

8063

9014

9015

9016

9017

9018

9019

9020

9021

9022

9023

9024

9025

9026

9027

9030

9031

9032

9080

9090

9100

9105

9110

9115

9120

9125

9140

9145

9150

9160

9165

9166

9170

9175

9180

9185

9190

REM *************** Linear Fit of N points, starting § point K **

' calculate slope & intercept to get crossing

SX#=0 : SY#=0 : SXY#=0 : SX2 #=0

FOR K=I TO I+N-1

SX#=SX#+K:SX2#=SX2#+K^2:SY#=SY#+Y%{K) :SXY#=SXY#+K*Y% (K) :NEXT K

SL#=(N*SXY#-SX#*SY#)/(N*SX2#-SX#^2) ' slope

IN#=(SX2#*SY#-SX#*SXY#)/(N*SX2#-SX#^2) ' intercept

X0#=-IN#/SL#: RETURN ' crossing (time=0.025 us * X0#)

REM ******* Find Crossing - acoustic signals *** MAX=Y%(0) :P=0 'find signal peak

FOR 1=1 TO 511

IF MAX<Y%(I) THEN MAX=Y% (I) : P=I

NEXT I GOSUB 8058 ' points about

FOR N=2 TO 4 STEP 2 ' fit to 1 & 2 point pairs

I=I-1:G0SUB 8039 ' linear LS fit

REF(N)=XO#*. 025: NEXT N ' reference times in us RETURN

REM ******** Find 1st Point Above Baseline *******

I=P-2

IF Y%(I)<0 THEN 8062

1=1-1: GOTO 8060

1=1+1: RETURN ' I = 1st # above baseline

REM *************** Set Up WAAG Card ********************************

SEGMENT% = &HD000 'WAAG II data segment

PORT0% = &H178 'Default setting, all switches are off

P0RT1% = &H179

P0RT2% = &H17A

PORT3% = &H17B

/DEF FN LOBT(X%) = X% AND &HFF 'Define low byte

DEF FN HIBT(X%) = ( (X% AND &HFFOO) \ 256) AND &HFF 'Define high byte

COUNT%=4096

CONTROL% = &H800C

TOFFSET% = 140

'Record length (102.4 us @ 0.025 us/point)

'Control word, 40 Mhz clock (single channel)

'Trigger offset value

RETURN

REM ******************************************************************

' Digitize signal

FOR 1=0 TO 511:Y%(I)=0:NEXT I FOR M=l TO AV

GOSUB 9180

GOSUB 9225

START = TRIG * 2 DEF SEG = SEGMENT%

GOSUB 9305

DEF SEG

NEXT M

GOSUB 8000

RETURN

REM ******************************************************************

REM ********** Load Trigger offset subroutine ************************

DEF SEG = SEGMENT% 'Define WAAG II segment

OUT PORT3%,&HC0: OUT P0RT2%,&H6F 'Enable trigger offset

'clear array

'average AV pulses

'Load trigger offset

'Data acquitition

'Valid address of trigger point

'Define data segment

'add up files

'Restore data segment

37
p. 5 of 5

9195 POKE 0,TOFFSET% 'Load offset value

9200 OUT PORT3%,&H80: OUT PORT2%,&H6F 'Reset control register

9205 DEF SEG 'Restore data segment

9210 RETURN

9215 REM ******************************************************************

9220 ' 9225 REM ********** Data acquisition subroutine *************************

9230 OUT PORT3%,&H80: OUT PORT2%,&H6F 'Initialize control regs

9235 OUT PORTl%,iHFF: OUT PORT0%,&HFF 'Clear counter

9240 OUT PORTl%,&HFF: OUT PORT0%,&HFF

9245 N% = -(COUNT% + &HFF) 'Correct count

9250 OUT P0RT1%,FN HIBT(N%) : OUT PORT0%,FN LOBT(N%) 'Load count

9255 OUT PORTl%,FN HIBT(N%) : OUT PORT0%,FN LOBT(N%)

9260 Nl% = CONTROL% AND &HBFFC

9265 OUT PORT3%,FN HIBT(N1%) : OUT P0RT2%,FN L0BT(N1%) 'Start sampling

9270 IF INP(PORT2%)<>249 THEN 9270 'WAIT P0RT2%,1 - wait for busy

9280 OUT PORT3%,&H80: OUT PORT2%,&H6F 'Enable WAAG II ram

9285 TRIG =» INP(PORT0%) + (INP(PORTl%) AND &H3F) *256 'Read trigger value

9290 RETURN

9295 REM *****************************************************************

9300 ' 9305 REM ************** Sum Files ******************************************

9310 IA=START

9315 FOR 1=0 TO 511

9320 Y%(I)=Y%(I)+PEEK(IA+I+3400) :NEXT I 'add files, starting @ 85 us

9325 RETURN

9330 REM ********************************************************************

9335 '

38
FILE.BAS - BASIC listing ofthe program that reads stored data from a floppy and displays

the calculated stress. p 1 of3

100 ' FILE 12/5/97 Fri Ray S.

110 ' read files from floppy in drive A: — ID, pareuneters, time pairs

120 ' calculate stresses & statistics for screen display

130 ' option for hard copy

140 ' (Load interpreter as GWBASIC/D to get double precision for std. dev.)

150 ' files created by SHOP or DETAIL

200 ' 210 SCREEN 8 ' change screen

220 COLOR 7,1 ' white on blue

230 OS = 85000! ' signal time offset in ns

240 KSI = 6.894757 ' conversion, ksi to MPa

250 ALARM=0 ' alaimi level (red square) for stress report

260 WIDE=5*KSI ' max stress spread (yellow square) in MPa (=5 ksi)

300 ' 5000 REM ************ Read time data from Floppy *************

5010 ' 5020 CLS

5030 INPUT "Insert floppy into DRIVE A: and type FILE name (.DAT added) =» ••;DN$

5040 DN$ = •'A:"+ DN$ + ".DAT"

5050 OPEN "I",#1,DN$

5060 INPUT#1, ID$: INPUT#1, OP$: INPUT#1, TIM$, DAT$, BF$, CF$, DS$

5065 BF=VAL(BF$) : CF=VAL(CF$) : DS=VAL(DS$)

5070 FOR 1=1 TO DS: INPUT#1, R$, C$: TR(I) = VAL(R$) : TC(I) =» VAL(C$) : NEXT I 5080 CL0SE#1:G0SUB 9600:GOSUB 6000

5100 GOSUB 10000:LOCATE 23: PRINT"PRINT screen (P) , another data FILE (F) , or EX

IT program (X)?";

5110 Z$ = INPUT$(1)

5120 IF Z$ = "X" OR Z$ = "X" THEN SYSTEM

5130 IF Z$ = "F" OR Z$ = "f" THEN 5000

5140 IF Z$ = "P" OR Z$ = "p" THEN 6400

5150 GOTO 5110

5160 * 6000 REM ********* SCREEN print **************************

6005 ' 6010 PRINT ID$; " —"; 0P$; " "; DAT$; •• "; TIM$

6020 LOCATE 3,1

6030 PRINT "Test Stress"

6040 PRINT "Num MPa ksi"

6050 F$ = "### +#### +###"

6060 PRINT : L = 5: ID = 1 6070 SM1# = 0: SM2# = 0: SE1# = 0: SE2# =

6080 FOR K=l TO DS: C = TC(K) - OS: R = TR(K) - OS

6090 GOSUB 6150: LOCATE L,l: PRINT USING F$; K; 5*CINT(SM/5) ; SE: L = L + 1 6100 S1(K) = SM: S2(K) = SE

6110 SM1# = SM1# + SM: SM2# = SM2# + SM * 2: SE1# = SE1# + SE: SE2# = SE2# + SE

^ 2 6120 NEXT K

6130 GOTO 6280 ' average and statistics

6140 ' 6150 REM *************** Calculations Stress, Max, Min **********

6160 ' 6165 'BF=-2.1 forced value of BO - remove eventually

6170 BO = BF * 10 * -4: ' Birefringence due to texture

6180 CA = CF * 10 * -6: ' Stress acoustic constant in 1/MPa

6190 B = (R - C) / (0S+(R + C) / 2) : ' Measured birefringence

6200 SM = (B - BO) / CA: ' Stress in MPa

6210 SE = SM / KSI: ' Stress in ksi

6220 IF K> 1 THEN 6240

6230 SMAX = SM: SMIN = SM: RETURN

6240 IF SM > SMAX THEN SMAX = SM

39
p.2of3

6250 IF SM < SMIN THEN SMIN = SM

6260 RETURN

6270 ' 6280 REM *********** AVERAGE & STATISTICS ***********************

6290 ' 6300 SM1# = SM1# / DS: SM2# = SQR((SM2# - DS * SM1# ^ 2) / (DS - 1))

6310 SE1# = SE1# / DS: SE2# = SQR((SE2# - DS * SE1# * 2) / (DS - 1))

6320 F$ = "X \ +#### +###"

6330 LOCATE L + 1,1: PRINT USING F$; "Avg" ; 5*CINT(SMl#/5) ; SE1#

6340 F$ = "\ \ ### ###"

6350 PRINT USING F$; "S.D."; 5*CINT(SM2#/5) ; SE2#: PRINT

6360 F$ = "\ \ +#### +###'•

6370 PRINT USING F$; "Max"; 5*CINT(SMAX/5) ; SMAX / KSI

6380 PRINT USING F$; "Min" ; 5*CINT(SMIN/5) ; SMIN / KSI

6382 IF SM1#>=ALARM GOTO 6386 ' test for bad stress

6384 GOSUB 9700: GOTO 6388 ' green flag

6386 GOSUB 9800 ' red flag

6388 IF SMAX-SMIN>WIDE THEN GOSUB 9900 ' yellow flag

6390 RETURN

6395 ' 6400 REM *********** PRINT SCREEN ***********************

6410 ' 6420 LPRINT CHR$(27); CHR$(120); CHR$(1): ' turn on NLQ on LX-800 printer

6430 LPRINT CHR$(27); CHR$(107); CHR$(1): ' select sans serif font on LX-800 pr

inter

6440 SC = SC + 1: ' screen counter

6445 LPRINT "File: ";DN$

6450 LPRINT ID$: LPRINT OP$; " "; DAT$; " "; TIM$: LPRINT

6460 LPRINT "Test Stress"

6470 LPRINT "Num MPa ksi"

6480 F$ = "### +#### +###"

6490 FOR I = 1 TO DS: LPRINT USING F$; I; 5*CINT(Sl(I)/5) ; S2(I): NEXT I 6500 LPRINT

6510 F$ = "\ \ +#### +###"

6520 LPRINT USING F$; "Avg" ; 5*CINT(SMl#/5) ; SE1#

6530 F$ = "\ \ ### ###"

6540 LPRINT USING F$; "S.D."; 5*CINT(SM2#/5) ; SE2#: PRINT

6550 F$ = "\ \ +#### +###"

6560 LPRINT : LPRINT USING F$; "Max"; 5*CINT(SMAX/5) ; SMAX / KSI

6570 LPRINT USING F$; "Min"; 5*CINT(SMIN/5) ; SMIN / KSI

6580 LPRINT : LPRINT "BO ="; BF; " x 10^-4 and CA = "; CF; " X 10*-6/MPa"

6590 LPRINT : LPRINT : LPRINT : IF SC < 2 THEN 6610

6600 SC = 0: LPRINT CHR$(12): ' form feed printer after 2 screen prints

6610 GOTO 5100

6620 ' 9500 REM **************** Colored Flags ******************************

9600 ' 9610 ' draw square

9620 LINE(500,120)-(600,170) ,2,B 'green border - only thing that works

9640 RETURN

9650 ' 9700 ' 9710 ' Green Square GOOD

9720 PAINT(525,137) ,2,2 'green square

9730 LOCATE 19, 66: PRINT" GOOD "zRETURN

9740 ' 9800 ' 9810 ' Red Square BAD

9820 PAINT(525,137) ,4,2 'red square

9830 LOCATE 19, 66: PRINT" BAD ": RETURN

40
p. 3^3

9840

9900

9910 Yellow Square WIDE STRESS RANGE

9920 LINE(500,50)-(600,100),2,B

9930 PAINT(525,75) ,14,2

9940 LOCATE 9, 67: PRINT" WIDE " 9950 LOCATE 10, 67:PRINT"STRESS"

9960 LOCATE 11, 67:PRINT''RANGE ": RETURN

9970 ' 10000 REM ***************

10010 ' 10020 LINE(0,170)-(640,195),5,BF

10030 LOCATE 23,1:R£TURN

10040 '

'green border - only thing that works

'yellow square

Response Bar - Bottom of Screen *******

41
FILEB.BAS -- BASIC listing of the program that reads stored data from a floppy and

displays the arrival times and birefringences with the calculated stress.

p. 1 of2

FILEB 12/5/97 Fri Ray S.

read files from floppy in drive A: — ID, parcimeters, tine pairs

calculate stresses & statistics for screen display

option for hard copy

(Load interpreter as GWBASIC/D to get doiible precision for std. dev.)

files created by SHOP or DETAIL

LOO

110

120

130

140

150

200

230 OS » 850001 ' signal tine offset in ns

240 KSI « 6.894757 ' conversion, ksi to MPa

300 ' 5000 REM ************ Read tine data fron Floppy *************

5010 ' 5020 CLS

5030 INPUT "Insert floppy into DRIVE A: and type FILE name (.DAT added) = ••;DN$

5040 DN$ = "A:"+ DN$ + ".DAT"

5050 OPEN "I",#1,DN$

5060 INPUTll, ID$: INPUT#1, 0P$: INPUT#1, TIM$, DAT$, BF$, CF$, DS$

5065 BF«VAL(BF$) : CF-VAL(CF$) : DS»VAL(DS$)

5070 FOR 1=1 TO DS: INPUTfl, R$, C$: TR(I) = VAL(R$) : TC(I) = VAL(C$) : NEXT I 5080 CLOSE«1:GOSUB 6000

5100 LOCATE 23: PRINT"PRINT screen (P) , another data FILE (F) , or EXIT program ( X) ?"

5110 Z$ = INPUT$(1)

5120 IF Z$ = "X" OR 2$ = "x" THEN SYSTEM

5130 IF Z$ =» "F" OR Z$ = "f" THEN 5000

5140 IF Z$ = "P" OR Z$ = "p" THEN 6400

5150 GOTO 5110

5160 ' 6000 REM ********* SCREEN print **************************

6005 ' 6010 PRINT IDS; " —"; OP$; " "; DAT$; " "; TIM$

6020 LOCATE 3,1

6030 PRINT "Test Radial Time Circiim Time B (xl0^4) Stress"

6040 PRINT "Num (ns) (ns) MPa ksi"

6050 F$ - "### «#««#« ###### +###.## +#### +###.#"

6060 PRINT : L = 5: ID » 1

6070 Rl# =» 0: R2# = 0: Cl# = 0: C2# = 0: Bl# = 0: B2# = 0: SM1# = 0: SM2# = 0: S

Elf » 0: SE2# => 6080 FOR K=l TO DS: C = TC(K) - OS: R = TR(K) - OS

6090 GOSUB 6150: LOCATE L: PRINT USING F$; K; R + OS; C + OS; B * 10 ^ 4; SM; SE

: L =» L + 1 6100 TR(K) =» R + OS: TC(K) « C + OS: BR(K) =» B * 10 '^ 4: S1(K) = SM: S2 (K) = SE

6105 Rl# = Rl# + R: R2# = R2# + R ^ 2: Cl# = Cl# + C: C2# = C2# + C ^ 2: Bl# = B

1# + B * 10 ^ 4: B2# = B2# + (B * 10 ^ 4) ^2

6110 SM1# = SM1# + SM: SM2# = SM2# + SM ^ 2: SE1# » SE1# + SE: SE2# = SE2# + SE

* 2 6120 NEXT K

6130 GOTO 6280 ' average and statistics

6140 ' 6150 REM *************** Calculations Stress, Max, Min **********

6160 ' 6165 'BF=-2.1 forced BO - remove eventually

6170 BO = BF * 10 ^ -4: ' Birefringence due to texture

6180 CA = CF * 10 ^ -6: ' Stress acoustic constant in 1/MPa

6190 B = (R - C) / (OS+(R + C) / 2) : ' Measured birefringence

6200 SM = (B - BO) / CA: ' Stress in MPa

6210 SE = SM / KSI: ' Stress in ksi

6220 IF K> 1 THEN 6231

6230 RMAX =« R: RMIN = R: CMAX = C: CMIN = C: BMAX =» B: BMIN = B: SMAX = SM: SMIN

= SM: RETURN

42
p. 2(^*2

6231 IF R > RMAX THEN PMAX = R

6232 IF R < RMIN THEN RMIN = R

6233 IF C > CMAX THEN CMAX = C

6234 IF C < CMIN THEN CMIN = C

6235 IF B > BMAX THEN BMAX =» B

6236 IF B < BMIN THEN BMIN = B

6240 IF SM > SMAX THEN SMAX = SM

6250 IF SM < SMIN THEN SMIN = SM

6260 RETURN

6270 ' 6280 REM *********** AVERAGE & STATISTICS

6290 ' 6292 Rl# = Rl# / DS: R2# = SQR( (R2# - DS * Rl# ^ 2) /

6294 Cl# = Cl# / DS: C2# = SQR((C2# - DS * Cl# ^ 2) /

6296 Bl# =• Bl# / DS: B2# =« SQR((B2# - DS * Bl# ^ 2) /

6300 SM1# = SM1# / DS: SM2# = SQR((SM2# - DS * SM1# '^ 6310 SE1# = SE1# / DS: SE2# = SQR((SE2# - DS * SE1# ^ 6320 F$ = "X \ «»#«#* ###### +###.##

6330 LOCATE L + 1: PRINT USING F$; "Avg" ; Rl# + OS; Cl# + OS;

6340 F$ = "\ \ ###.## ###.## ##.###

6350 PRINT USING F$; "S.D."; R2#; C2#; B2#; SM2#; SE2#: PRINT

####«# #«#### ->-»«*.«* "Max"; RMAX + OS; CMAX + OS; BMAX * 10 ^

***********************

(DS - 1))

(DS - D)

(DS - D)

2) / (DS - D)

2) / (DS - D)

Bl«; SMlf; SE1#

##.## ##.###"

4; SMAX; SMAX / KS

***********************

6360 F$ = "\ \

6370 PRINT USING F$;

I6380 PRINT USING F$; "Min" ; RMIN + OS; CMIN + OS; BMIN * 10 ^ 4 ; SMIN; SMIN / KS

I6390 RETURN

6395 ' 6400 REM *********** PRINT SCREEN

6410 ' 6420 LPRINT CHR$(27); CHR$(120); CHR$(1):

6430 LPRINT CHR$(27); CHR$(107); CHR$(1):

inter

6440 SC = SC + 1: ' screen counter

6445 LPRINT "File: ",DN$

6450 LPRINT ID$: LPRINT 0P$; " "; DAT$; " "; 6460 LPRINT "Test Radial Time Circiim Time

6470 LPRINT "Num (ns) (ns)

turn on NLQ on LX-800 printer

select sans serif font on LX-800 pr

TIM$: LPRINT

B (Xl0^4) Stress"

MPa )c8i

6480 F$ = "### #«#### ######

6490 FOR I = 1 TO DS: LPRINT USING F$; I; TR(I)

T I 6500 LPRINT

6510 F$ = "\ \ ####««

•t^#««.*« -!-«««« +###.#"

TC(I) ; BR(I) ; SI (I); S2(I): NEX

+####

Bit; SMI I; SEll

C2#; B2I; SM2#; SE2«: PRINT

###### +###.## +#### +###.#"

4; SMAX;

######

6520 LPRINT USING F$; "Avg"; Rl# + OS; Cl# + OS;

6530 F$ » "\ \ ###.## ###.##

6540 LPRINT USING F$; "S.D."; R2#;

6550 F$ = "\ \ ##«###

6560 LPRINT

SMAX / KSI

6570 LPRINT USING F$; "Min"; RMIN + OS; CMIN + OS; BMIN * 10

SI

6580 LPRINT : LPRINT "BO =" ; BF; " X 10^-4 and CA - "; CF; " X 10*-6/MPa"

6590 LPRINT : LPRINT : LPRINT : IF SC < 2 THEN 6610

6600 SC = 0: LPRINT CHR$(12): ' form feed printer after 2 screen prints

6610 GOTO 5100

6620 '

LPRINT USING F$ ; "Max"; RMAX + OS; CMAX + OS; BMAX * 10

4; SMIN; SMIN / K

43
Batch Files:

The purpose of these files is to simplify the calling of several programs. To use these files, type

the name (e.g., SHOP, the .BAT extension is not necessary) at the C:\ prompt.

1. SHOP.BAT cdtblOOO

matec

cd\

cd stress gwbasic shop/d

cd\

This turns on the pulser/receiver board. (It will be necessary to type Q O to continue.) The

standard operating program (stresses only) will start.

2. DETAIL.BAT cd\

cd stress gwbasic detail/d

cd\

This program reports the details of arrival times and birefringences with the stresses.

3. PULSER.BAT cdtblOOO

matec

This starts the software for the pulser/receiver. This controls operation (Appendix IV).

4. FILE.BAT cd stress gwbasic file/d

cd\

This reads data stored on a floppy and displays the calculated stress.

5. FILEB.BAT cd stress gwbasic fileb/d

cd\

This reads data stored on a floppy and displays time, birefringence, and stress.

Modifications to the AUTOEXEC.BAT file include:

1Addmg the STRESS and BATCH directories to the PATH

(PATH C:\STRESS;C:\BATCH), and

2. Adding the command SHOP as the last line; this batch file automatically starts operation on power up.

44
APPENDIX VI: Sample Output

These are printouts of the screens produced by the two collection programs.

SHOP

242B--reference block 12-23-1997 15:45:33

lest Stress

8

9

10

HPa ksi

+5 +1

-10 -1

-10 -1

-15 -2

-5 -1

5 +1

+5 1

+0 -0

5 1

-5 -0

DETAIL

reference block —multi-wear 12-23-1997 15:53:06

Test

Num

3

4

5

6

7

8

9

10

Avg

Max

Min

Radial Time

(ns)

7417t

94179

94182

94189

94185

94182

94186

94183

94179

94182

94183

3.32

94189

94178

Circum Time

94138

94136

94138

94138

94135

94137

94138

94137

94135

94138

94137

0.18

94138

94135

B (xl0^4)

+4.28

+4.62

+4.75

+5.44

+5.28

+4.81

+ 5.12

+4.87

+4.68

+4.66

+4.85

0.343

+ 5.44

+4.28

MPs. -82

-IS

-97

-95

-89

-93

-89

-87

-87

-89

4.40

-82

-97

Stress

ksi -11.9

-14.0

-13.7

-13.4

-13.0

-12.6

-12.6

-12.9

0.638

-11.9

-14.0

PRINT this screen (P), MORE data (M) , SAVE to floppy (S),or EXIT program (X)

45
APPENDIX Vn. Possible Future Modifications

Some changes that might lead to improvements include:

1

.

Printed-circuit coils might replace the current hand-wound wire coils. This would likely

be more precise and repeatable.

2. A narrower EMAT case with only one ear would reduce bulk and possible fit a wider

range of wheel sizes more precisely. However, there is a possibility that with only one

ear, it may be necessary to be very careful to assure proper placement on the wheel face.

3. More power from the pulser is always desirable to increase the signal-to-noise ratio.

(The voltage will be limited by dielectric breakdown in the EMAT coil.)

4. The electronics and connections in the small external box should be incorporated into

the on-board electronics inside the computer. (This assumes no additional problems

arising from electromagnetic interference.)

5. A driver for the delay (Appendix III) would be desirable.

6. Developing the software into a compiled form would speed execution slightly (most time

now goes to signal digitization and transfer).

7. Control software for the pulser/receiver should be integrated into the measurement

programs.

46

*U.S. GOVERNMENT PRINTING OFFICE 1998-0-673-318/40085


NISTTechnical Publications

Periodical

Journal of Research of the National Institute of Standards and Technology—Reports NIST research

and development in those disciplines of the physical and engineering sciences in which the Institute is active. These include physics, chemistry, engineering, mathematics, and computer sciences. Papers

cover a broad range of subjects, with major emphasis on measurement methodology and the basic

technology underlying standardization. Also included from time to time are survey articles on topics

closely related to the Institute's technical and scientific programs. Issued six times a year.

Nonperiodicals

Monographs—Major contributions to the technical literature on various subjects related to the Institute's

scientific and technical activities. Handbooks—Recommended codes of engineering and industrial practice (including safety codes)

developed in cooperation with interested industries, professional organizations, and regulatory bodies.

Special Publications—Include proceedings of conferences sponsored by NIST, NIST annual reports, and

other special publications appropriate to this grouping such as wall charts, pocket cards, and

bibliographies.

Applied Mathematics Series—Mathematical tables, manuals, and studies of special interest to physicists,

engineers, chemists, biologists, mathematicians, computer programmers, and others engaged in scientific and technical work.

National Standard Reference Data Series—Provides quantitative data on the physical and chemical

properties of materials, compiled from the world's literature and critically evaluated. Developed under a worldwide program coordinated by NIST under the authority of the National Standard Data Act (Public

Law 90-396). NOTE: The Journal of Physical and Chemical Reference Data (JPCRD) is published bi- monthly for NIST by the American Chemical Society (ACS) and the American Institute of Physics (AIP).

Subscriptions, reprints, and supplements are available from ACS, 1155 Sixteenth St., NW, Washington,

DC 20056.

Building Science Series—Disseminates technical information developed at the Institute on building

materials, components, systems, and whole structures. The series presents research results, test methods, and performance criteria related to the structural and environmental functions and the durability

and safety characteristics of building elements and systems.

Technical Notes—Studies or reports which are complete in themselves but restrictive in their treatment

of a subject. Analogous to monographs but not so comprehensive in scope or definitive in treatment of

the subject area. Often serve as a vehicle for final reports of work performed at NIST under the sponsorship of other government agencies.

Voluntary Product Standards—Developed under procedures published by the Department of Commerce

in Part 10, Title 15, of the Code of Federal Regulations. The standards establish nationally recognized

requirements for products, and provide all concerned interests with a basis for common understanding of

the characteristics of the products. NIST administers this program in support of the efforts of privatesector standardizing organizations.

Consumer Information Series—Practical information, based on NIST research and experience, covering

areas of interest to the consumer. Easily understandable language and illustrations provide useful background knowledge for shopping in today's technological marketplace.

Order the above NIST publications from: Superintendent of Documents, Government Printing Office,

Washington, DC 20402.

Order the following NIST publications—FIPS and NISTIRs—from the National Technical Information

Service, Springfield, VA 22161.

Federal Information Processing Standards Publications (FIPS PUB)—Publications in this series collectively constitute the Federal Information Processing Standards Register. The Register serves as the

official source of information in the Federal Government regarding standards issued by NIST pursuant to the Federal Property and Administrative Services Act of 1949 as amended. Public Law 89-306 (79 Stat. 1127), and as implemented by Executive Order 11717 (38 FR 12315, dated May 11. 1973) and Part 6 of

Title 15 CFR (Code of Federal Regulations).

NIST Interagency Reports (NISTIR)—A special series of interim or final reports on work performed by

NIST for outside sponsors (both government and non-government). In general, initial distribution is handled by the sponsor; public distribution is by the National Technical Information Service, Springfield,

VA 22161, in paper copy or microfiche form.
U.S. Department of Commerce

National Institute of Standards and Technology

325 Broadway

Boulder, Colorado 80303-3328

Official Business

Penalty for Private Use, $300