NBSIR 74-482

An Automated System for Precision

Calibration of Acceierometers

B. F. Payne

Vibration Section, Mechanics Division

Institute for Basic Standards

National Bureau of Standards

Washington, D. C. 20234

April 1974

Final Report

Prepared for Department of Defense

Calibration Coordination Group

NBSIR 74-482

AN AUTOMATED SYSTEM FOR PRECISION

CALIBRATION OF ACCELEROMETERS

B. F. Payne

Vibration Section, Mechanics Division

Institute for Basic Standards

National Bureau of Standards

Washington, D. C. 20234

April 1974

Final Report

Prepared for Department of Defense

Calibration Coordination Group

U. S. DEPARTMENT OF COMMERCE. Frederick B. Dem, Secretary

IMATIONAL BUREAU OF STANDARDS. Richard W. Roberts. Director

FORWORD

The development of the automated calibration system for accelerometers

was sponsored by the Department of Defense Calibration Coordination Group

(DoD/CCG) consisting of: the Aerospace Guidance and Metrology Center,

Newark Air Force Station, Newark, Ohio 43055; the Metrology and Calibration

Center, Redstone Arsenal, Alabama 35809; and the Metrology Engineering

Center, Bureau of Naval Weapons Representative, Pomona, California 91766.

The Atomic Energy Commission was represented by an observer from Sandia

Laboratory, Albuquerque, New Mexico 87115. The project was coordinated

by the Aerospace Guidance and Metrology Center.

The Dod/CCG project number assigned was CCG 69-13 and work was performed

under NBS cost center 2130423.

TABLE OF CONTENTS

Page

Abstract

1. Introduction 1-1

2. Hardware 2-1

2.1 Circuit A

' 2-1

2.2 Circuit B 2-1

2.3 Signal Junction Box 2-2

2.4 Minicomputer 2-2

2.5 Patch Panels ^ . 2-2

2.5.1 Patch Panel Circuit A for Manual Operation .... 2-2

2.5.2 Patch Panel Circuit B for Manual Operation .... 2-3

2.6 Magnetic Tape Drive 2-12

2.7 Exciters 2-12

2.8 Interfaces 2-12

2.8.1 DVM Interface • • 2-12

2.8.2 Frequency Counter Interface 2-15

2.8.3 Relay Interface 2-18

2.8.4 Oscillator Interface . 2-18

2.8.5 X-Y Plotter Interface 2-23

2.9 Calibration of the System 2-25.

3. Software 3-1

3.1 Computer Capability 3-1

3.2 Software Philosophy . . . .

' . 3-1

3.3 Data Block 3-2

3.4 Start 1, Start 2 3-2

3.5 Halt and Stop Features 3-6

3.6 Provisions for Automatic Selection of Circuits and

Automatic Ranging of Test Equipment 3-6

4. Software Program Descriptions .... * 4-1

4.1 Hexidecimal-to-Decimal Conversion for Test Sensitivity 4-2

4.2 Range Test for Test Accelerometer 4-7

4.3 Check for INVERSE FLAG and Set Relays 4-12

4.4 Check for INVERSE FLAG and Calculate Calibration Factor

for Test Accelerometer If Set 4-15

4.5 Clear Tables for Accelerometer Data Block 4-18

4.6 *Round-Off Subroutine .4-21

4.7 *ASCII-to-Decimal Subroutine 4-23

4.8 Check for UNSTABLE FLAG and Type Message If Set . . . 4-26

4.9 *Save Registers Subroutine ^ . . . 4-28

4.10 *Restore Registers Subroutine 4-29

4.11 Calibration Factors Exciter 2 4-30

4.12 Calibration Factors Exciter 1 4-31

4.13 Start 1 4-32

4.14 Start 2 4-34

4.15 Set Relays for Ratio I, Output Oscillator Code, Read

Frequency Counter, Type It on TTY 4-35
TABLE OF CONTENTS

Page

4.15.1 Programming Relay Banks 1 and 2 4-35

4.15.2 Programming the Decade Oscillator 4-38

4.15.3 Reading the Frequency Counter 4-39

4.16 Set Relays for Ratio II, Calculate Test Accelerometer

Sensitivity .4-47

4.16.1 Programming Relay Banks 1 and 2 4-47

4.16.2 Calculation of Test Accelerometer Calibration Factor . . .4-47

4.17 Storage Table for Oscillator Code 4-52

4.18 TTY Printout , c„

4.19 Table of Defined Constants . . , . .4-56

4.20 ^Decimal to Hexl decimal Subroutine . 4-58

4.21 *Wait Subroutine for TTY 4-61

4.22 *Decimal Point Typeout 4-61

4.23 Storage Table for Exciter Calibration Factors (He:x.) . . . .4-62

4.24 Shut Off Oscillator, Ring Bell, Start Over 4-63

4.25 *Delay for DVM Subroutine 4-65

4.26 Halt, Stop, or Continue 4-66

4.27 *Constant Acceleration Closed Loop Control Subroutine . . .4-69

4.28 *Scope Scaling Subroutine 4-76

4.29 *Round Off Subroutine (for Constant Acceleration) 4-77

4.30 *Hexidecimal-to-Decimal Subroutine 4-79

4.31 *Calculate Delta V Subroutine 4-83

4.32 Data Block Control Constants (1400 Tables) ...... .4-84

4.33 *Voltage/Frequency Data Modified to Proper Oscillator Code . .4-84

4.34 *Set Slow/Fast Code for ac/dc Converters Subroutine . . . .4-90

4.35 Store Calibration Data in Sables 4-92

4.36 Decimal to ASCII Routine (5 digits) 4-96

4.37 *Decimalto ASCII Subroutine (1 digit) 4-98

4.38 Check for Correct Range of Signal ac/dc Converter . . . -4-100

4.39 *Multiple Readings (DVM) and Digital Filter Subroutine . . .4-103

4.40 *Read Data Subroutine 4-109

4.41 *ASCII to Decimal Subroutine 4-116

4.42 Desired Frequency Table 4-120

4.43 *Check for Proper Frequency Subroutine ....... '4-121

4.44 *Type-Out Subroutine 4-124

4.45 ^Message Entry Subroutine 4-130

4.46 Accelerometer Data Block Entry Program 4-135

4.47 Storage Table for Type Out -Constants and Save Locations . . '4-142

5. Discussion 5-1

6. Acknowledgments 6-1

7. References 7-1

^Indicates subroutines
LIST OF TABLES

Page

2-1. Hardware Components * 2-2. DVM Cabling 2-14

2-3. Counter Digital Output Connector Cabling 2-16

2-4. Remote Preset Connector Cabling 2-17

2-5. Relay Pin Connections 2-19

2-6. Relay Control Line Connections 2-20

2-7. Oscillator Cabling .2-21

4-1. Relay Bank 1 Coding 4-36

4-2. Relay Bank 2 Coding 4-37

4-3. Data File Format .4-95

LIST OF FIGURES

1- 1. Oscillator Driving Voltage vs. Frequency for 10 g Acceleration ^2

2- 1. Diagram of System Interconnections 2-4

2-2. Block Diagram of Automated Accelerometer System 2-5

2-3. Signal Junction Box Part 1 2-6

2-4. Signal Junction Box Part 2 2-7

2-5. Impedance Matching Capacitor Bank Schematic . 2-8

2-6. Schematic of Automated Accelerometer System 2-9

2-7. Automated Calibration System .... 2-10

2-8. Exciters 1 and 2 ' 2-11

2-9. Calibration Circuit Schematic . 2-26

3- 1. Sense Status Loop 3_3

3-2. Data Block Format 3_4

3-3. Condensed Flow Chart by Program Name 3-5

3- 4. Summary Flow Chart * 4- 1. Hexidecimal-to-Decimal conversion 4_5

4-2. Range Test for Test Accelerometer Flowchart 4-11

4-3. Check for Inverse Flag and Set Relays Flowchart 4-14

4-4. Check for Inverse Flag and Calculate S if Set Flow Chart . . 4-I6

4-5. Five Byte ASCII-to-Decimal Flowchart 4_25

4-6. Teletypewriter Printout Flow Chart 4-57

4-7. Declmal-to-Hexi decimal Flowchart 4-60

4-8. Halt, Stop, or Continue Flowchart 4-68

4-9. Constant Acceleration Closed Loop Control Subroutine

Flowchart 4-75

*Located in the back; after Page 7-1.
LIST OF FIGURES

PAGE

4-10. Hexldecimal-to-Declmal Subroutine Flowchart 4-81

4-11. Voltage/Frequency Data Modified to Proper Oscillator

Code Flowchart 4-89

4-12. Decimal to ASCII Flowchart 4-99

4-13. Multiple DVM Reading and Delay Subroutine Flowchart .... 4-102

4-14. Read Data Subroutine Flowchart . 4-111

4-15. ASCII-to-Decimal Subroutine Flowchart 4-119

4- 16. Accelerometer Data Block Entry Program Flowchart 4-141

5- 1. History of a Control Accelerometer for 1972 . . . ... . ^"2

5-2. History of a Control Accelerometer for 1973 5-3

5-3. Histogram of a Control Accelerometer for 1972 ^"^

5-4. Histogram of a Control Accelerometer for 1973 ^"^
AN AUTOMATED SYSTEM FOR PRECISION CALIBRATION

OF ACCELEROMETERS

by

B. F. Payne

ABSTRACT

The report describes an automated system for accelerometer

calibration under real time control by a small, dedicated digital computer.

The hardware components of the system are described and the software programs

are given. The software automatically regulates the rate and amount of data

collected based on analysis of input data. Printouts of the frequency

response of test accelerometers is on a teletypewriter and also the response

can be stored on a magnetic tape. Manual operation of the system is also

described.

KEYWORDS

:

Acceleration, automation, calibration, measurements,

minicomputer, shakers, standards, transducers, vibration,

vibration exciters, vibration pickups.

1. INTRODUCTION

I An automated process controller for precision accelerometer calibration

has been developed by the Vibration Section of the National Bureau of

Standards. The system is composed for the most part of commercially available

' test equipment. This system was designed to meet the need for an accurate

automated calibration system for accelerometers . This final report describes

the hardware and gives a complete listing of the software. The system is

controlled by a minicomputer with 16,384 bytes of core memory (1 byte - 8

bits) and a Teletype (TTY) . Since the physical phenomena involved react

relatively slowly, the cycle time of the small computer is more than adequate

for this purpose. The system controls two electrodynamic vibration exciters.

Unlike some connnercial exciters, the NBS standard Dimoff exciters Il,2]*

j have transfer functions which, are eaaily adapted to closed loop acceleration

control. Figure 1-1 shows the driving voltage of a Dimoff Type 200 exciter

plotted against frequency with and without a capacitive impedance matching

network.

I

° The exciters have built-in standard accelerometers. They are first

calibrated by absolute methods from 10 Hz to 10 kliz.[3,Aj Tiie automated

system stores frequency and voltage ratio data at test acceleration levels.

The frequencies and acceleration levels are stored in a Data Block table of

values in the core of the computer. For maximum usefulness, the program

j is written so that changes in frequency and acceleration level can be made

quickly at the teletype terminal or by loading paper or magnetic tape with

no changes in the operating program required.

j This system of accelerometer calibration differs from other automatic

'systems in that the software includes a selective procedure for screening

data to minimize the effects of noise and drift. This program is called

Multiple Readings (DVM) and Digital Filter Subroutine and it regulates the

quantity of the test measurements to obtain data which lie within the

established repeatability criteria (Section 4.38).

* The numbers in brackets refer to references found at the end of this

report

1-1
1-2
2. HARDWARE

The hardware components for the automated system are listed in table

2-1 and are shown in a block diagram in figures 2-1* and 2-2 and

manufacturer and model numbers are given in [4]. The internal connections

of the signal junction box are shown in figures 2-3 and 2-A. The impedance

matching capacitor bank schematic is shown in figure 2-5. The electrical

schematic for the automated system is shown in figure 2-6. In this schematic,

the relay positions are all shown in the normally closed position. Refer to

the software description of program Set Relays for Ratio I, Output Oscillator

Code for details in programming the relays for the circuit desired (Sect. 4.15).

The circuitry of this system allows voltage ratios to be taken by

either of two circuits. The circuit used is chosen by a program based

on data taken from the test accelerometer. For test accelerometers

whose sensitivity is <S66 mV/g, the circuit used will be called

circuit A. For sensitivities >566 mV/g, the circuit will be called

Circuit B. The gain of the power amplifier should be set for approximately

60 percent of full gain for a 250-vatt amplifier in order to utilize the

full amplitude range of the digital oscillator.

2.1 Circuit A

This is the circuit used for most accelerometer calibrations.

Referring to figure 2-6, the relays are set for RI ratio as described

in Programming Relay Banks 1 and 2, Section 4.15.1. The program will

then cause data to be read with the relays in this position. This is

denoted as Ratio I or RI. After this is completed the relays are reset

for RII ratio as described in Set Relays for Ratio II, Section 4.16.

The program then causes data to be read. This is denoted as Ratio II or

RII. The test accelerometer sensitivity can be calculated from these

ratios as described in Section 4.16. The data are read under the

supervision of the Multiple Readings subroutine, Section 4.39. This

program will be described in detail in the Software section of this

report

.

2.2 Circuit B

This circuit is used for accelerometers whose sensitivity is

>566 mV/g. If this circuit is chosen the INVERSE FLAG is set which

triggers a program to reset the relays. See Check for INVERSE FLAG

and Set Relays, Section 4.3. Referring again to figure 2-6, this

program reverses the standard and test signals at the input to the

readout circuitry and bypasses the anqjlifiers. Only Ratio RII is read

in this case. See Section 4.3 for details. The sensitivity of the

test accelerometer can then be computed as described in Section 4.4.

*This figure is at the end of the report.
2.3 Signal Junction Box

The signal junction box (figures 2-1, 2-3, and 2-4) allows for the

test instruments to be connected to a junction box. The back of the

junction box is interconnected with the relays controlled by the computer.

In this manner the software can control the circuitry in the setup. For

example, in circuits A and B described above, the aoitware decides

which circuit can be used based upon data taken from the test accelerometer

.

Once this decision has been made, the software sets the relays for the

proper circuit and then proceeds with the calibration. Likewise, the

computer can set the range of the ac/dc converters based upon data

taken during the test.

Figure 2-7 shows the automated accelerometer calibration system

with the associated electronic equipment. Figure 2-8 shows two vibration

exciters used with the system.

2.4 Miniconqjuter

Thp corTPuter system has Ifi , 384 hytr?^ of core r.iemory and a Teletype (TTY)

It includes High Speed Arithmetic and Read/Write Block instructions. It

includes six interface units to control the digital voltn^ter (DVM)

,

oscillator, frequency counter, X-Y plotter, a bank of 32 relays (12 doublepole, and 20 single-pole) , and a 9-track magnetic drive unit.

2.5 Patch Panels

The only time the patch panels are used in the automatic mode is for

selecting exciter 1 or 2 to be used as the calibration exciter. The plugs

should connect points 21-22 for exciter 1 and points 45-46 for exciter 2 on Patch Panel 1 (Figure 2-1).

2.5.1 Patch Panel Circuit A for Manual Operation . The system can also be

operated in a manual mode by use of the patch panels. For manual operation,

the oscillator is in the manual mode with the desired frequency selected on

the front panel of the oscillator. The output should be set for 5 to 10 volts.

The acceleration level of the exciter is then controlled by the gain

potentiometer of the power amplifier. For the manual equivalent of circuit

A described above, additional plugs and patch cords are needed in Patch

Panel 1: 1-2*, 7-8, and 22-23 for exciter 1, or 46-47 for exciter 2. To

obtain RI use a plug to connect 9-10 and for Rll connect 33-34. Cable 36

will have to be disconnected from point J on the junction box, the oscillator

switched from auto to manual, switches SI and S2 opened or their cables disconnected, and the DVM switched to ratio on the front panel. By adjusting the volta

divider until the RI equals the magnitude of the standard accelerometer

sensitivity, the RII will equal the test accelerometer sensitivity. Exarple

If the standard accelerometer sensitivity j ~ 20.09 mV/g, then by adjusting

the voltage divider until RI = 20090 on the fivM, RII will be the test

accelerometer sensitivity, RII = 18532, and S,„ = 18.53 mV/g.

Test

*l-2, etc., indicates a connection between points 1 and 2 in figure 2-1.

2-2
2.5.2 Patch Panel Circuit B for Manual Operation . For circuits manual

operation, the plugs and patch cords are removed. Plugs or patch cords are used to connect points 1-10, 32-33, and 22-23 for exciter 1 or 46-47 for

exciter 2. Cable 36 will be disconnected from point J and cable 8 will be

disconnected from point I of the junction box to take the computer controlled

relays out of the circuit. The oscillator will be switched from auto to

manual, switches SI and S2 opened or their cables disconnected, and the DYM

switched to ratio on the front panel. The voltage divider is not used in

this circuit. This circuit is set up for RII. Only RII data are taken. The

test sensitivity must be computed in this case from the following equation

S = fstd

^^^^ "riT •

2-3
TABLE 2-1. Hardware Components

Minicomputer

Teletype

Magnetic Tape Drive

Signal Junction Box (Relay Controlled)

Patch Panels 1 and 2 (Manual)

Test Equipment Controlled by Computer:

1 Digital voltmeter

1 Digital oscillator

1 Frequency counter

1 X-Y Plotter

Support Test Equipment:

3 Panel voltmeters

1 Power amplifier

2 dc voltage amplifiers

1 Manual capacitor bank

1 Voltage divider

1 Cathode follower

1 Phase meter

Test Equipment Controlled by Computer Controlled Relays:

2 ac/dc converters

*1 dc power supply

1 Capacitor bank (16 capacitor)

1 Oscilloscope

*1 Wave analyzer

*Equipment for future expansion of system to measure distortion.

2-4
CC 00

LU TT

OWE PLIF 1WAo

in < CM

NCE ING

ORS < I 1- O o o

LU 1- < < Q.<o >oz

LU

oc

LU

O 2

OJ

D

CC

O

LL o Xo

CO2O _j — 1"

iiC/5 -5

wH

COwHO

Piwwu

<:owHoHOooo

PQ

CMI M
I
u.

tU) Ul ui cc K

Ui UJ a C

z 2 < <

OC > >

z z o o

o o o (J Q Qo

< <

a. IT

»- CM po ^ in fv 00 Oi O ^ (N po ^ in to f** 00 a> o <N s s § 5 3 3 5 5 § §

6 Axnga Oi. 01 Avi3a Oi Zl AV13U Oi ei Avnau fI AV13b Oi SI AV13b Oi 91 AVT3H.Oi

%

PuX

o

PQO

M

HU

^-5

I CM

o

M
INPUT (

R17

BNC^

DCo

LUo

O

ccQ.

R18

R19

R20

R21

R22

R23

R24

R25

R26

R27

R28

R29

R30

R31

R32

2 R

5 G

7 G_

8 R

10 BL

11 O

12

13 C,

24 R

15

16 BLK

17 BL

J8

19 G

20 R

2122 BR

23 BLK

2425 O

26 R

2728 BL

29 BR

30

31 O

32 R

33

34 BLK

35 V

36

37 O

38 O

3940 BR

41 Y

42

43 BL

44 BL

4546 BLK

47 V

48 V

2„f

.3„f

5,if

1««

2„f

lli-.

3„f

4„f

tih.

30of

tit

oe

OUTPUT JD

FIGURE 2-5. IMPEDANCE MATCHING CAPACTTOR BANK SCHEMATIC

2-6


1

2 -li
2.6 Magnetic Tape Drive

The digital magnetic tape drive is a nine-track 800-bpi (315-bpc)

read after write version. The speed is 25 inches per second (63.5 cm per second) in both the forward and reverse directions. Tape capacity is

2400 feet (731.5 m) of 1/2 inch, 1.5 mil (1.27 cm, 0.038 mm) computer

tape on standard 10-1/2 inch (26.67 cm) IBM compatible reels.

2.7 Exciters

Two Dimoff air bearing exciters are shown in figure 2-8. These

are described in references 3 and 4. These exciters are calibrated by

absolute methods of reciprocity and interferometry as described in

references 1, 2, and 5. The exciter 2 has a frequency range of 10 Hz

to 10,000 Hz and the exciter 1 has a frequency range of 10 Hz to 5000 Hz. They employ ceramic moving elements, air bearings, and permanent magnets.

2.8 Interfaces

2.8.1 DVM Interface . The interface has the ability, under program

control to:

1. Select volt or ratio function,

2. Command DVM to convert, and

3. Read polarity code; five digits, and range code from the DVM.

The polarity and data digits are converted, in the interface,

to ASCII codes.

A priority interrupt circuit is included which, if enabled, will interrupt

the processor when service is required. The Print Command line from the

DVM will generate an interrupt when data are available to be read.

Program Notes

1. Strap options provide for the selection of any device address from

X'OO' to X'FF'.

2. Control functions are executed via OC (Output Command) instructions:

Bit •• 0 1 2 3 4 5 6 7 Command DIS EBL CNVT CCTR RATIO VOLT

DIS - Disables device interrupt from interrupting the processor.

This does not prevent an interrupt from being queued up in

the ATN (Attention) FF (Flip-Flop).

EBL - Enables device interrupt.

2-12
CNVT - Commands the DVM to perform a conversion of its inputs.

CCTR - Clear the Read Steering FF's (This counter controls the

sequence of data being read).

RATIO - Selects ratio function of the DVM.

VOLT - Selects the voltage function of the DVM.

3. The Print Command line can also be interrogated via an SS (Sense

Status) instruction. This function appears on the BSY (Busy) line

(bit 4). When set to a "1" the DVM will be in the process of a conversion. When set to a "0" the DVM has completed its conversion

and data are available to be read.

4. Data can be transferred to the processor via RD (Read Data)

instruction. Data are read by five consecutive RD's. The Read

Steering flip-flops must be reset before each Data Transfer.

The order of data transfer is as follows

Polarity

Ten-thousands digit

Thousands digit

Hundreds digit

Tens digit

Units digit

Range code

5. The System clear signal will:

a. Clear address FF

,

b. Clear the ATN FF

,

c. Disable Interrupts,

d. Set the BSY FF , and

e. Clear the Read Steering FF's.

Hardware Components

1. The DVM Interface consists of:

1 ea. NBS DVM SK-148

2 ea. I/O Cables (14 pr) 17-002F01

1 ea. I/O Cables (8pr) 17-037

Table 2-2 shows the connection pin numbers.

2-13
I

i

TABLE 2-2. NBS DVM Cabling

Desig

r L UUl

Pi n rh IS Pin

Tn

i id LXli^ v^iJilll r i. (Jill

U iiX L Tn Command

P15 10-42 POl-1 JO 1-1 J204-A

P15 20 2 2 B

CONVO 30 3 3 E RATDC 40-42 4 4 D

HDIO 10-41 P02-1 J02-1 J202-5 100 (XI)

HD20 20 2 2 6 (X2) ' HD40 30 3 3 30 (X3) ^ D080 40 4 4 31 (X4)

THIO 50 5 5 7 1000 (XI)

TH20 70 7 7 8 (X2)

TH40 21 9 9 32 (X3)

1 TH80 41 11 11 33 (X4)

TTHIO 60 6 6 9 10,000(X1)

TTH20 11 8 8 10 (X2)

TTH40 31 . 10 10 34 (X3)

TTH80 51 12 12 35 (X4) 1 PRINT

0

61-41 P02-13 J02-13 48 Print Command

mpolo 40-40 P03-4 J03-4 11 Sign

UN 10 50 5 5 1 l(Xl)

UN20 60 6 6 2 (X2)

UN40 70 7 7 26 (X3)

UN 80 11 8 8 • 27 (X4)

TNIO 21 9 9 3 10 (XI)

TN20 31 10 10 4 (X2) i TN40 41 11 11 28 (X3) ! TN80 51 12 12 29 (X4)

RGIO 61 13 13 13 Ranee (XI)

RG20 71 P03-14 14 14 (X2)

GRD 00-40 P03-15 J03-15 25 Reference

GRD 00-41 P02-15 J02-15 25 Reference

GRD 00-42 POl-15 JOl-15 25 Reference

2-14
2.8.2 Frequency Counter Interface . The counter may be operated in the

preset, rate, time or ratio modes by operation of controls on the counter.

The interface provides "read into memory" circuitry for the five digits

of the display. The "read in" is accomplished by execution of consecutive

RD (Read Data) instructions in the program. An "end of count" signal is

generated by the counter which is used by the controller to initiate the

"read in" sequence or interrupt the processor so that appropriate program

strategy may be applied.

Programming Considerations

The following table shows the "Output Command" and status structure

of the interface:

Command Bit Status

DISABLE INT. 0

ENABLE INT. 1

*INITIALIZE 3

START COUNT 4 ** BUSY

STOP COUNT 56

7

* In the initialize state, the counter is stopped and

the display reset.

** The controller recognizes a busy condition during all

counter functions.

Hardware Components

The counter interface board may be plugged into any I/O slot in the

expansion card file. The strap lead from 214-0 to 114-0 should be removed

from the wiring side of the slot chosen* The counter cabling connections

are given in Tables 2-3 and 2-4.

2-15
TABLE 2-3. Counter Cabling

DIGITAL OUTPUT CONNECTIONS

Deolg. MB Term. Back Panel Connection Counter Digital

Output Connection

DIUll 10-40 J04-1 P04-1 1

DIU21 20-^ -2 -2 2

DIU41 30- -3 -3 26

DIU81 40- -4 -4 27

DITll 50- -5 -5 3

DIT21 60- -6 -6 4

DIT41 70- -7 -7 28

DIT81 11- -8 -8 29

DIHll 21- -9 -9 5

DIH21 31- -10 -10 6

DIH41 41- -11 -11 30

DIH81 51- -12 -12 31

DITHll 61- ^ • -13 ' -13 7 DITH21 71-40 J04-14 P04-14 8

10-41 J05-1 P05-1

DITH81 20- ^ -2 -2 33

DITTll 30- -3 -3 9

DITT21 40- -4 -4 10

DITT41 50- -5 -5 34

DITT81 60- r -6 • -6 35

EOCl 70-41 J05-7 P05-7 47

GND 00-40 J04-15 P04-15 50

REMOTE RESET CABLE

RSTl 11-42 J08 P08

EXT. TEST

BNC CONN.

2-16
TABLE 2-4. Counter Cabling

REMOTE PRESET CONNECTIONS

Desig. MB Term. Back Panel Connection Remote Preset Connection

Ull 10-40 J06-1 P06-1 1

U21 0 n zU- — i. — Z 2

U41 jU— _ TJ _ TJ 26

U81 _/i ~H — 1. H 27

Til 50- -5 -5 3

T21 60- -6 -6 4

T41 70- -7 -7 28

T81 11- -8 -8 29

Hll 21- -9 -9 5

H21 31- -10 -10 6

H41 41- -11 -11 30

H81 51- -12 -12 31

THll 61- -13 -13 7 TH21 71-40 J06-14 P06-14 8

TH41 10-41 J07-1 P07-1 32

TH81 20- -2 -2 33

TTll 30- -3 -3 9

TT21 40- -4 -4 10

TT A 1 50- -5 -5 jh'\L TT81 60- -6 -6 35

PIO 70- -7 -7 44

GND 00-41 J07-15 P05-15 50

2-17
2.8.3 Relay Interface . This Interface provides computer control of 32

relays via two Control Line Modules. The relays to be controlled consist

of 20 single-pole normally open contacts and 12 double-pole normally open

contacts. The normally closed contacts of all relays are available on a provided cable.

A 32-bit memory location is loaded with the condition of the 32 relay

contacts. For normally open operation, a "one" bit in its associated

memory bit location will close the contact. The "memory image" of the

relay contacts is updated via the program. A "write data" instruction

must be issued for each set of eight relays. Therefore, four consecutive

WD (Write Data) instructions will update the 32 contacts. An "output

command" instruction to one of the. Control Line Modules will open all 16

contacts associated with the module. Where normally closed contacts are

used, the OC (Output Command) instruction will leave the contact in a closed state. Since 16 relays are controlled by each Control Line Module,

two consecutive device numbers have been chosen for the two modules. See

tables 2-5 and 2-6.

Mechanical Considerations

The relays are located in a special unit mounted in the system cabinet.

Cables connect the control lines to the relay chassis. The relay chassis

contains its own power supply (+24V) for coil voltage and the relays are plugged into sockets for ease of replacement. The contact lines are brought to the back panel of the cabinet to 15 pin connectors. (See

table 2-5).

The Control Line Modules may be placed in any two adjacent I/O slots.

The device numbers chosen for the two modules are X'71' and X'72'.

2.8.4 Oscillator Interface . The Oscillator Controller is a special

controller used exclusively with the oscillator for converting four data

bytes to the necessary signals to control amplitude and frequency output

of the oscillator. The controller uses a general purpose Input/Output

Mother Board SK-174, and a general purpose Mother Board SK-175.

The Controller provides 31 data output lines and one clear line to

the oscillator. The 31 data lines each have a storage flip-flop which will

hold the data for 15ms after the fourth "write data" instruction. The clear

line operates in the same manner if cleared by data configuration.

Also provided are one active status line which is active for 15ms

following the fourth data byte, and one priority interrupt line which

will be activated by an illegal code only.

2-18
TABLE 2-5. Relay Banks' Pin Connectors

1 Relay Swinger

Norm. Norm. r—

-——— —

Back Panel rin No. D -1 I-* XT rin No. P -J XT y-x rin No.

Open T _ _ _ J Lioseci Connection SwinRer XTA NU XTP NC

Rl

1 Ur 1

Mm Mr* 1 T <' A ^ J (,a; 1 Z

QJ

JJr i / JNUZ Mf" 9 IN LZ o

cJ 4

R2

Ur i 1 INUi Mr* 1 1 QO y Dr i Z NUz Mr* 9 1 9 iz 1± lU

R3

Dr i 1 NUl XT 1 1 9 Ij

DPT2 NOz XT **> NCz 1 O lo 1 / 16

RA

DPTl NOl NCI 19 20 21

T\T) T* 0 DrTz NUz zA Z J 11

R5 DPTl NOl XT 1 NCI 25 26 O "7 27

Ur i z MHO NUz MP 9 9Q 9 Q Z O

R6 Ur i 1 MmIN Ux Mr* 1

IN U J. 9 1 9 9 33

Ur i/ Mn 9 INUz MP 9 NLz Jo 35 34

R7

Ur i ± Mn 1 INUI MPT 97Ol 9 0 Jo 39 ur i z Mn9 IN UZ Mr 9 INUz /,^Z9 Hi

R8

r\PT 1 Ur i iMr\ NUi1 MP 1 /. 9 44 45

nPT Ur 0 i z Mn 9 INUZ MP 9 'to /. 7 4 / 46

R9 DPTl NOl NCI J (A) 49 1J(B) 2J(B)

DPT 2 N02 NC2 J(B) 5 4J(B) 3J(B)

Din DPTl NOl NCI 6 7 8

DPT2 N02 NC2 11 10 9

DPTl NOl NCI 12 13 14

DPT2 N02 NC2 17 16 15

R12 DPTl NOl NCI 18 19 20

DPT2 N02 NC2 23 22 21

R13 SPTl NOl NCI 9QJO 4U 9Qjy

R14 SPTl XT /*\ 1 NOl XT 1 NCI A 9 4 J AHZ9 R15 SPTl NOl NCI 40 A4 J R16 SPTl NOl XT 1 NCI J(B) H / /.Q 4y - A ft 40

R17 SPTl NOl XT 1 NCI 7 /P \ J (C) 11

oJ Z R18 SPTl NOl XT O 1 NCI c.O

cJ R19 SPTl NOl NCI / Q QO

R20 SPTl NOl NCI 1 nlU 1 9 Iz 11

R21 SPTl NOl NCI 1 9 1

IH1 A R22 SPTl XT 1 NOl XT P 1 NCI Id ±o1 ft 1 7 R23 SPTl XT T NOl XT 1 NCI 1 Q Zi. 91 zu R24 SPTl XT /A T NOl XT P 1 NCI ZZ99 Z9 AH Z J

R25 SPTl NOl NCI 25 27 26

R26 SPTl NOl NCI 9 Q ZO 9r> 9Q/y

R27 SPTl NOl NCI 31 33 32

R28 SPTl NOl NCI 34 36 35

R29 SPTl NOl NCI 37 39 38

R30 SPTl NOl NCI 40 42 41

R31 SPTl NOl NCI 43 45 44

R32 SPTl NOl NCI J(C) 46 48 47

Note

Pin NuiAer 50 of J(A), J(B) , and J(C) is ground

2-19
TABLE 2-6. Relay Banks"! and 2 Coding Format

CONTROL LINE RELAY BIT

Device X'71

CLOGG

CLGIG

CL02G

CLG30

CLG4G

CLG50

CLG6G

CLG7G

CL08G

CLG9G

CLIGG

CLllO

CL12G

CL130

CL140

CL15G

Rl

R2

R3

R4

R5

R6

R7

R8

R9

RIG

Rll

R12

R13

R14

R15

R16

DPDT

SPOT

4-

0

1

2

3

4

5

6

78

9

10

11

12

13

14

15

Device X' 72

CLGOG

CLGIG

CLG20

CLG30

CLG4G

CLG50

CL06G

CLG70

CLGBO

CL090

CLIOG

CLllG

CL12G

CL13G

CL14G

CL15G

R17

RIB

R19

R2G

R21

R22

R23

R24

R25

R26

R27

R28

R29

R3G

R31

R32

SPDT

0

1

2

3

4

5

6

78

9

10

11

12

13

14

15

2-20
TABLE 2-7. Oscillator Cabling

Signal MB Location Back Panel Location Program Input Connection

OSCLRA 50-42 P8-5 J 8-5 2-7-12-17-27-32-37

OPE 311 40- -4 -4 38

301 30- -3 -3 39

OQ 1 20- ' -2 ' -2 w/, r>

281 10-42 P8-1 J8-1 41

271 71-41 P7-14 J7-14 33

2ol 61- -13 -13

251 51- -12 -12 35

241 41- -11 -11 36

2 31 31- -10 -10

221 21- -9 -9 29

211 11- -8 -8 30

ZU± 0 m 70- -7 -7 Ji

191 60- -6 -6 18

181 50- -5 -5 19

1 T 1 i/1 40- -4 -4 on

161 30- -3 -3 21

151 20- - -2 -2 13

10-41 P7-1 J7-1 X H

131 71-40 P6-14 J6-14 15

121 61- -13 -13 16

111 ill 51- -12 -12 0

101 41- -11 -11 9

091 31- -10 -10 10

U ol 21- -1 -9 -9 11

071 11-40 -8 -8 3

Obi 70- -7 -7 4

ACT 051 60- -6 -6 r5

041 50- -5 -5 6

40- -4 -4

+ 021 30- ^r -3 -3 23

OPE Oil 20-40 -2 ^ -2 22

Ground 81-40 P6-15 J6-15 1

Ground 81-41 P7-15 J7-15 1

Ground 81-42 P8-15 J8-15 1

2-21
Oscillat or Interface Sneci f icatlons

Output Signals

Logical zero is -13.5V ±2V at O.Oma.

Logical one is OV ±0.5V at 4ma.

Input Signals

Logical zero is OV ±0.5V at 1.2ma.

Logical one is 5V ±2V at O.Oma.

Prograniining Notes

Any command to the controller will clear the controller resulting in no change in device output. Data are transferred to the device via "write data"

or write block instruction of four bytes.

First Half-Byte (least significant four bits of first-byte) This

half-byte is variable from X'O' to X'9' to control the oscillator anqslitude

in steps of O.OIV rms per step. X'O' = no output. X'l' = O.OIV rms output.

X'9' = 0.09V rms output. Decodes from this half-byte of X'A' through X'F' are illegal and will result in an interrupt being generated. (See byte four

most significant bit for exception).

Second Half-Byte (most significant four bits of first-byte) Used to

control the amplitude in steps of O.IV rms per step. X'O' = no output,

X'l' = O.IV output, and X'9' = 0.9V output. Output is additive to first

half-byte. X'A' through X'F' have the same properties as described in

first half-byte.

Third Half-Byte (least significant four bit of second-byte) Used to

control the output in steps of l.OV. X'O' = OV output. X'9' = 9V output.

Output is additive to the first byte X'A' through X'F' , as previously

described.

Fourth Half-Byte (most significant four bits of second-byte) Used to

control the output frequency in steps of 0.1 Hz per step from X'O' to X'9'.

X'A' through X'F', as previously described.

Fifth Half-Byte (least significant four bits of third-byte) Controls

output frequency in steps of 1.0 Hz per step as described above.

Sixth Half-Byte (most significant four bits of third-byte) Controls

output frequency in steps of 10.0 Hz per step.

Seventh Half-Byte (least significant four bits of fourth-byte)

Controls output frequency in steps of 100.0 Hz per step.

2-22
Eighth Half-Byte (most significant four bits of fourth-byte) Controls

the multiplication factor of the last four half-bytes. X'l' = multiplication

factor of 1.0. X'2' = multiplication factor of 10.0. X'4' = multiplication

factor of 100.0. One of these numbers must be used for correct operation.

Any number less than X*8' and not specified here is illegal and will

result in an interrupt being generated. If this byte is >X'8' (most

significant bit = one), none of the illegal codes will be recognized, and

the oscillator will be cleared resulting in no output. No interrupt will

be generated. This bit may, therefore, be used as a wait bit or clear bit.

The device will also be cleared by the console initiate. The device may

have an address of X'OO' through X'FF' by use of the address strap option.

Hardware Components

1 ea. Oscillator Controller Module Part SK-174

1 ea. Oscillator Controller Module Part SK-175

3 ea. General Purpose I/O Cables Part 17-002

Table 2-7 shows the oscillator cabling.

2.8.5 X-Y Plotter Interface . The SK-149 X-Y plotter interface is designed

to interface to the X-Y plotter. The interface has the ability, under program

control to:

1. Output +10 volts to -10 volts coordinates on the X and Y inputs

to the plotter

2. Output Y coordinates, only for the time Y mode

3. Output both X and Y coordinates simultaneously in the X-Y mode

4. Trigger the trace in the time Y mode, and

5. Control the Pen- up /Pen-down function.

The interface also contains a priority interrupt circuit which, if armed,

can interrupt the processor for service. Two interrupt functions are provided

1. Internal clock interrupt which can generate an interrupt

approximately ever7 20ms. This interrupt is under control

of the ARM function.

2. An external interrupt line which will interrupt the processor

on the transision from the "O" state (OV ±0.5V, 1.2ma) to the

"one" state (5V +0.5V)

.

This interrupt line is not under control of the ARM function; but the function

should be put into the DISARM state to prevent multiple interrupts from the

internal clock.

2-23
Prograia Notes

1. Strap options provide for the selection of any device address from

X'OO' to X'FF'

.

2. Control functions are executed via OC (Output Command) instructions.

The command structure is as follows:

Bit 0 1 2 3 4 5 6 7

Command TIME X-Y TRG INIT DIS AEM DOWN UP

TIME - Puts the controller in the Time-Y mode.

X-Y - Puts the controller in the X-Y mode.

TRG - Generates a Trigger Command to the plotter for the Time-Y mode.

INIT - Initializes the controller: lifts pen; disarms interrupts;

clears the write steering FF; clears the ATN FF; puts controller

in the T-Y plot mode.

DIS - Disarms internal clock interrupt.

ARM - Arms internal clock interrupt.

DOWN - Lowers the pen to the paper.

UP - Raises the pen from the paper.

3. The X-Y coordinate are controlled by WD (Write Data) instructions.

Four consecutive WD instructions (initially the data steering FF

must be cleared) are necessary to update the X-Y coordinate:

WD DEV, Y DATA

WD DEV, Y DATA +1

WD DEV, X DATA

WD DEV, X DATA +1

The DATA layout is as follows:

0 1 2 3 4 5 6 7_

Y/X DATA SIGN MSB

0 1 2 3 4 5 6 7__

Y/X DATA + 1 > LSD

In the Time-Y mode only two WD's are necessary per point.

The ten bit resolution provides plotting steps of 19 millivolts. The

DAC is accurate to within the least significant bit.

4. The time interval between the output of points or the pen state changes

must be facilitated with the interrupt. For example: the maximum

tracking velocity of the plotter is 15 inches per second, or approximately

70 mill iseconds per inch. Using the 20—ms interrupt, the pen

can traverse approximately 2/7 of an inch per interrupt. If it is

desired to plot a line two inches long, it will take eight (7+1, for

safety factor) interrupts before the line is completed.

2-24
For the pen to go from the down state to the up state, two interrupts

are needed for completion. For the pen Co go from the up state to the

down state, four interrupts are needed.

Hardware Components

1. The SK-149 interface module consists of:

1 ea. X-Y Plotter Interface Board SK-149

1 ea. 10 Bit Dual Chan DAC 35-074F04

1 ea. Cable 17-037

2 ea. Coax Cables _ 17-055F01

2. The two boards may be inserted into any two available adjacent I/O

slots in the expansion card file, with the DAC to the left (facing

front) of the controller board. Rack/Tack strap must be removed

from these slots.

3. On the DAC board the upper coaxial connector is the X-Channel and the

lower is the Y-Channel.

4. X-Y Plotter Cabling

From To

J9-8 J102A

J9-9 B

J9-11 C

J9-15 D

2,..9 Calibration of the System

For calibration of the ratio readout system, plugs connecting points

3-4, 5-6, 11-12, 17-41, 18-42 are removed. Plugs and patch cords for points

41-8, 42-4, 5-12, and 36-53 are connected. This will give a circuit shown in

figure 2-9. Cable 36 from point J and cable 8 from point I of the junction

box are disconnected. Switch the oscillator to manual and open switch SI.

The following procedure has proven reliable for calibration purposes.

Set the oscillator for 100 Hz , 5 V rms output. Adjust the voltage divider

for 70 mV rms on the input to the test converter (meter 1). Using

some transfer voltmeter such as a high quality differential voltmeter, check

the accuracy of the test converter (IV range) by switching the DVM to the

voltage mode. If the ac/dc converter is in error, adjvistments can be made

by adjusting R37, R35, C18, and C23 as explained in its instruction manual.

After the 100 Hz point is checked, switch the oscillator to 10,000 Hz and check

the accuracy at this frequency. High and low frequency adjustments can be

2-25
OSCILLATOR

DIVIDER

VOLTAGE ^•<

TEST AC / DC

CONVERTER

1

DIGITAL

RATIOMETER

VOLTMETER

2

REFERENCE

AC /DC

CONVERTER

FIGURE 2-9. CALIBRATION CIRCUIT SCHEMATIC

2C
made on the ac/dc converter. After this adjustment, switch back again to

the 100 Hz point and recheck the accuracy. Switching back and forth

between low and high frequency points several times may be necessary as there is some interaction between the two adjustments. After the accuracy

has been established at the two extremes, a check should be made at the

midpoints and at 10 Hz , 30 Hz , and 50 Hz to ensure accuracy over the

entire frequency range. In case adjustment cannot bring the ac/dc

converter into 0.1 percent of reading accuracy with these adjustments,

converter performance is no longer acceptable and it will be necessary to

repair the converter. The errors in the converters are the limiting

factors in the overall accuracy of the system.

Now switch to the ratio mode and compare the DVM ratio with the

voltage divider setting. Do the same kind of adjustment on the reference

converter (10 V range) at 100 Hz and 10,000 Hz to bring the voltage divider

settings and the DVM ratio to 0.1 percent agreement.

In addition to the 70 mV rms on the input to the test converter, the

accuracy of the system should also be checked at levels from 14 mV to

1 V rms to ensure amplitude linearity. The 14 mV rms lower level is

established for a 10 mV/g accelerometer . For a 2 g calibration, the rms voltage will be approximately 14 raV rms. Now the system should be in

calibration on the 1 V rms range. Because the 10-V rms range on the

signal converter is used occasionally, the 10-V range should be checked

also using the same procedure as given above for the 1-V rms range. This

calibration need not be done above 4 V rms because for a voltage greater

than approximately 4 V rms the inverse circuit (circuit b) is used.

From a user's standpoint, a calibration once a month is good

practice. Time involved for a calibration is usually about 20 minutes.

Also, periodically, the input from the standard accelerometer is connected

to both the reference and the test input and a calibration run by computer

control. The sensitivities typed out should agree with the calibration

factors of the standard accelerometer at the test frequencies.

2-2 7

3. SOFTWARE

3.1 Computer Capability

The minicomputer has 16 general purpose registers, each 16

bits in length. These registers are available for use as accumulators and

all sixteen can be used as index registers. The computer has high speed

arithmetic hardware options of fixed point Multiply/Divide and Read Block/

Write Block capabilities.

Two methods of prograimning I/O (Input/Output) are available:

1. Interrupt - Controlled by priority level as determined by relative

plug position of device mother boards, or

2. Sense - status basis.

Most of the programming for the I/O in the automated system is of the

sense-status type since great speed is not required and the software is

somewhat easier to write for this type. In this method the device to be

serviced is interrogated for a device busy bit and the program continues

in this sense-status loop until the device is avcdlable as shown in

figure 3-1. In the interrupt method, the computer can be interrupted to

service a device instead of waiting in a sense status loop.

In the present program, all coding has been in machine language

using hexidecimal notation. This makes for efficient use of core space

and for ease in programming I/O instructions.

3.2 Software Philosophy

The basic design philosophy in the automated accelerometer calibration

system was twofold; first, to provide an accurate and reliable system for

accelerometer calibration utilizing state-of-the-art techniques and equipment.

Speed of calibration is of some importance since sufficient data for

statistical analysis are desirable. However, accuracy nust not be sacrificed

for the sake of a quick calibration. Secondly, the design should make use

of techniques in such a manner that the software of the system assumes the

responsibility for control and decisions as much as possible, leaving the

operator of the system free for other tasks. The operation of running

the system can be carried out at the technician level. The operator

technician should be able to make small changes in the system such as changes in the DATA BLOCK described in the next section. He should be

able to reload the core from the magnetic tape, and make use of the HALT

and STOP features described below. But, he should not have to make major

changes in the operating programs. The software should be flexible enough

to accommodate any accelerometers that may need calibration.

The quality of data collected may vary with the accelerometer under

test. Variations in accelerometer and signal conditioning circuits may

result in varying noise conditions and settling times. In the software

for this system, this is taken into account and the quantity of data

collected will vary from one accelerometer to another. Details of this

procedure are found in the Multiple Readings (Section 4.38) program.

3-1
3.3 Data Block

The program has been organized about the current test point as found in the Data Block (core location 1400). This data block consists

of control constants for all the test points to be performed. Each test

point occupies 6 bytes. The organization of this table is shown in

figure 3-2. The first four bytes contain the frequency data. The coding

for the four bytes to program the frequency is as follows:

0 1 2 3

100 Hz 10 Hz 1 Hz 0.1 Hz Multiplier

Example: 0010 0001 is the code for 10 Hz. The last digit is the

multiplier which is either 1 or 2. E:xample: 0998 2002 is the code for

9982 Hz. . Bytes 4 and 5 shown in figure 3-2 give the oscillator voltage necessary for

this test point in millivolts for exciter 2. This voltage is trimmed each

time the program goes through the Acceleration Level Set program. The new voltage value will then replace the old one in this table. Bytes 6 and 7 are the same information for exciter 1. Bytes 8 and 9 give the capacitor

coding to set the relay bank 2 for the proper impedance matching network

(see Section 4.15.1) for exciter 2. Bytes C and D are the same information

for exciter 1. Bytes A and B and E and F give the desired millivolt output

from the standard accelerometer for exciter 2 and 1 respectively. These

values may easily be changed by use of the monitor to obtain different

acceleration levels. Several sets of Data Block constants are saved on paper tape for convenience in quick changeover of desired acceleration

levels

.

If the total number of test points is to be changed, the contents

of the following core locations must be changed. Location 0E8E contains

a constant for exciter 2 and location OE90 contains a constant for

exciter 1. The constant must be four times the number of test points.

The constant must be in hexidecimal notation. In the program given in

this report, the exciter 1 constant is 0064 (25 test points) and for

exciter 2 the constant is 0094 (37 test points).

3.4 Start 1, Start 2

The program for automatic calibration of accelerometers starts with

either the Start 1 or Start 2 programs. These correspond to exciter 1 or exciter 2. The summary flow chart for the automated system is shown

in figure 3-3. The read Ratio I and Ratio II are handled by the Multiple

Readings and Digital Filter Subroutine (see Section 4.39) which regulates

the number of readings based upon the scatter in the data. The individual

programs are described in the listing at the end of this software section.

The more complicated programs have flew charts accompaning them.

3-2
©

SENSE STATUS

OF

DEVICE

0

FIGURE 3-1. Sense Status Loop.

3-3
Exciter

1

Desired Voltage

Exciter

1

Capacitor

Code

Exciter

2

Desired 1

Voltage

Exciter

2

Capacitor

Code

Exciter

1

Osc.

Voltage

Exciter

2

Osc.

Voltage

4-1 cn

0) o

r . 1-

Second

Test

Frequency

First

'

Freque

4-1 COs

U

O

o

oH

PQ

CO 4J

CO Q

CN

I

M

Pl4 O 4-1 o cn • <! 0) 4-1 H H Ou

O 4-1 iH tn <r a> 4-1 -H H 0-1

I o ^

<r cn • D u

,H H CIh

3-4
START

1 OR 2

081

085

RANGE TEST

SET CIRCUIT FOR A OR B

01 DO

SET RELAYS FOR Rl OUTPUT OSC. CODE

READ FREQ. COUNTER

TYPE FREQ. ON TTY

08A0

ADJUST OSC. FOR CORRECT

q LEVEL

SET RE

A £

1—• <

:lays

»

'

10F0

READ Rl

0300

READ Rll

NOT SET

CHECK FOR

INVERSE

FLAG

fOOOl \ RII«S ioOIOf

STO

Rl

HEX. / DEC. CONVERSION

TEST SEN.

STORE

DATA IN TABLES

DEC / ASCII ROUTINE

TTY

PRINTOUT

0360

SET

r 10001 ;td* |iOOOo|

Rll

0100

1800

18FC

ODAO

CHECK FOR

FLAG - TY

IF SET

UNSTABLE

'E MESSAGE

HALT, STOP, OR

CONTINUE

HALT STOP CONT

05B0

1020

0F9E

FIGURE 3-3. CONDENSED FLOW CHART BY PROGRAM NAME

3-!;
3.5 Halt and Stop Features

The HALT feature permits the operator to type an H character on the

TTY after a test frequency has been typed by computer control. This

activates a program which, after the completion of the current test point,

will cause the program to halt but leave the exciter energized. The conqjuter

will continue in the HALT mode until the execute button is pushed on the

computer console whereupon the program will continue with the next test

point.

The STOP feature is similar in that when the S character is typed the

computer will halt after con^sletion of the current test point. In this case however, the program will start over with the first test point when

the execute button is pressed. Also, an extra line feed is programmed to

separate the two sets of data.

3.6 Provisions for Automatic Selection of Circuits and ^ Automatic Ranging of Test Equipment

The voltage ratio circuit can be either circuit a or circuit b as explained in the hardware section. The software selects one of these two

circuits to obtain voltage ratio data. The program which selects this

circuit is the Check For Inverse Flag and Set Relavs. The circuit chosen

is based upon the test accelerometer sensitivity as explained in Section 2.

The automatic ranging of the ac/dc voltage converters is also selected

by the software. Only the test ac/dc converter range needs to be automatic.

The range is normally one volt full scale but switched to ten volts full

scale, if needed. The range selection is accon^jlished by a relay either

open or closed (See Section 4.38). The reference converter is always at

10 volts full scale and the DVM is always at 10 volts full scale range.

The ac/dc converters mode (Slow or Fast) is also set by the software.

For frequencies greater than 100 Hz, they operate in the Fast mode;

otherwise, they operate in the Slow mode.

The DVM function (either ratio or voltage) is selected by the software.

The voltage mode is used to monitor accelerometer voltage levels for setting

the acceleration levels, whereas the ratio mode is used for all other data

collection. The function selection is provided as a part of the DVM

interface package (see Section 2.8.1).

3-6
4. SOFTWARE PROGRAM DESCRIPTIONS

This paction is a listing of programs by core location seauence. A

description of each program and a flow chart for the more complicated

ones precedes the program listing. The hexidecimal core contents printout

was prepared by use of the software monitor. This monitor was developed

at NBS for the purpose of programming the subject minicomputer. It occupies

approximately 640 bytes of core and is used to enter hexidecimal code

directly into core locations. It is also used to punch paper tapes of core locations, read paper tapes, and to type out blocks of core on the TTY.

Figure 3-3 shows a condensed flow chart by program name and location.

Figure 3-4*shows a detailed flew chart by type of operation.

The software for the automated system was written in machine language

code. At the time this project was started, the higher order languages

were not developed for small computers to the extent to make it a practical

approach to software. In the present generation of minicomputers, the

higher order languages of Fortran and Basic are more fully developed for

these machines. In planning for new systems, use of the higher order

languages may be practical. However, the system designer should be prepared

to invest in larger amounts of memory to handle the higher order languages.

One of the most frequent criticisms of real-time systems using machine

language code for programming is poor documentation. Programs written by

one person are often quite difficult to understand and modify by another

person. For this reason the entire software package is included in this

report with documentation for easier understanding of the machine language

coding.

The following FLAGS are used throughout the software.

EXCITER (SHAKER) FLAG: This flag tells which exciter is being used for a test. The program miist know this in order to know which data to use in the

DATA BLOCK since each exciter requires different programming. It is also

needed when the test sensitivity is calculated since each exciter has a different calibration for the standard accelerometer -sensitivity.

INVERSE FLAG: This flag tells which circuit to use: a or b. For test

accelerometers with high sensitivities, circuit b must be used to calibrate

the accelerometer.

THRU FLAG: This flag tells the program if the program has cycled "thru"

once to check for overranging on the test ac/dc converter. If program

has checked for the overrange condition, it does not recheck it again.

LOW/NORM FLAG: If the sensitivity of the test accelerometer is so low that

only four digits of significant data can be read (first digit zero on DVM)

,

this flag is set to indicate a LOW signal from the accelerometer. This is

used in the computation of the test sensitivity to extend the printout to one extra digit. For example: 9.954 instead of 9.95 mV/g. This feature

can be used to regulate the number of digits typed out by adjusting the

voltage divider to give only four significant digits on the DVM at the

point where an extra digit of typeout is desired.

* This figure is at the end of the report.

4-1
STABLE/UNSTABLE FLAG: This flag is set if the data do not meet the

program requirements of the Multiple Readings program (see Section 4.39).

It indicates the test accelerometer does not jmeet the stability

requirements in this program. In the typeout, it triggers a diagnostic

message to be typed beside the sensitivity typeout.

RANGE FLAG: This flag is set for 0001 for a range of one volt on the

test ac/dc converter or 0010 for a range of 10 volts on the test ac/dc

converter. The range of the converter is needed in the computation of

the test sensitivity.

4.1 Hexi decimal- to-Decimal Conversion for Test Sensitivity

This routine takes the test sensitivity in hexidecimal and converts

it to decimal for type out. It also calculates where to place the decimal

point. Three parameters calculated here are used in the Store Data program.

These are:

1. Total number of digits to be typed =C1 (01A8)

- 2. Nuiii)er of digits typed before decimal point ^C2 (01A6)

'

3. C1-C2 = C3 (09E0)

Hexidecimal-to-Decimal Conversion for Test Sensitivity;

Set Typeout Constants.

01 00 40.'.O 09FA SAVE TEST SENSITIVITY

0104 4oro 0 1A4 SAVE RE

01 OP 4?00 0000 MOP

01 oc C8^0 ?710 LOAD CONSTANTS FOR COMVERSIPM

01 1 0 cppn

01 1 4 CP5 0 nnf>/-i

01 1 P 0 8 70 00 OA

01 !C OF 2 2 CLEAR R2 FOR Dl'/JSinri usF

0 1 1 f 0200 NOP

01 ?n OP 2'^ DIVIDE HEX. MO. PY FIRST COMST.

o\?? 0200 MOP

IN ON R3

OUT ON RA, RB,

RC, RD,

RE

4-2
01?4 CeA3 PUT QUOT. IN PA (FIRST DECIMAL UIGIT)

01?6 0?.OCi '''OP

01?8 0^3? PUT Pt^,AIND£h IN R3

012A OF?? CL.FAP F2

012C 0028 DIVIDE BY SFCOND CONST.

01 2E 0200 NOP

0130 08B3 PUT QUOT. IN F.B (2 ND. DECIMAL DIGIT)

0132 0200 NOP

0134 0832 PUT PF[»1AINDEF IN R3 .

0136 0P22 CLEAR F2

0158 4200 0000 , NO?

013C 0D25 DIVIDE REMAINDER 3 "D CONST.

01 3F 0900 NOP

0140 08C3 PUT GUOT. IM FC (3 FD. DECIMAL DIGIT)

0142 0200 NOP

0144 0«^3r PUT -EMAlNDEF IN R3

0146 0P2^ CLFA- F2

0148 0D27 DIVIDE REI*1A1NDEF PY 4 TH. CONST.

014A 0200 NOP

014C 08D3 PUT OUOT. IN FD (4 TH DECIMAL DIGIT)

OME 0200 NOP

0150 08E? PUT REMAINDER IN PE ( 5 TH DECIMAL DIGIT)

0152 0B44 CLEAR R4

0154 4540 09F6 WAS THE FIRST DIGIT IN RII ZERO?

0158 4330 0168 IF SO GO TO 0K8

4-3
015C CP?0 000?

0160 ^0?0 01A6

0164 AiOn 0170

0168 Ce?0 000?

016C 40P0 01A6

0170 4200 0000

01 74 4?00 0000

0178 C3A0 0000

017C 4350 018C

0180 C8?0 0004

0184 4020 01A8

0188 4300 0198

018C C820 0005

0190 4 02 0 OlAB

0|=)4 4?00 0000

019P 40F0 OlAA

019C 4830 01A6

OlAO 4300 OlAC

01 A 4 OOP 6

01A6 0005

01A8 0005

OlAA 0005

OlAC 4860 09EE

OlDO C580 0000

OIP 4 4330 OICO

IF NOT, LOAD 3 INTO R?

STORF IN STORAGE. LOG. (# DIGITS PRINTED BEFORE DE

PT

BRANCH

LOAD 2 INTO R2

STORE (# DIGITS PRINTED BEFORE DEC. PT.)

NOP

NOP

IS FIRST DECIMAL DIGIT ZERO ?

IF SO BRANCH

IF NOT LOAD 4 INTO R2

STORE THIS NUMBER ( # DIGITS TO BE PRINTED OUT)

BRANCH

LOAD 5 I NTO R2

STORE THIS NUMBER ( 0 DIGITS TO BE PRINTED OUT)

NOP

STORE 5 TH. DECIMAL DIGIT FOR LATER USE

LOAD 0 DIGITS BEFORE DFCI(»1AL PT. CODE

BRANCH

STORAGE LOC. CNOT liSFD)

STORAGE LOC. ( 0 DIGITS PFFOPE DEC. PT.)

STORAGE LOC. ( # OF DIGITS PRINTED OUT)

STORAGE FOP FITH DECIMAL DIGIT

LOAD INVERSE PATIO FLAG

NOT SFT?

IF NOT SFT, BRANCH TO CONTINUE

4-4
OIB? C830 0005

OIBC 4030 01A6

OICO 48?0 01A8

01C4 0^23

01C6 0^00

01C« 4P2P O^FO

OICC 470C IPOO

IT IS SET, LOAD 5 INTO R5

STORE THIS DUMBER (#DIGITS BEFORE DEC. PT.)

LOAD CODE FOR # DIGITS TO PE PRINTED OUT

SUPTPACT THESE ? JUMPERS

NOP

STO^F THIS MUr»iPFF (USED IN STORE DATA IN TABLES)

GO TO STCRF DATA IN TAPLES PROGRAM

4-5
HEX NO.

0100

2710

REMAINDER

03E8

QUOT.

IN RA

1ST DIGIT

QUOT.

IN RB

2ND DIGIT

REM.

0064

QUOT.

-•^ IN RC

3RD DIGIT

REM.

OOOA

QUOT.

IN RD

4TH DIGIT

C2 = 0002 C2 = 0003

CI = 0005 CI = 0004

NO y INVERSES YES

^LAG SETT/

C2 = 0005

STORE

1800 1 DATA

ROUTINE

FIGURE 4-1. HEXIDECIMAL-TO-DECIMAL CONVERSION

4-6
4.2 Range Test for Test Accelerometer

This routine activates the exciter for 2000 Hz at 2 g, reads the test

accelerometer voltage, and compares this reading to an upper limit. For

test voltages below this upper limit the INVERSE FLAG is reset (0000 is

stored in core location 09EE) , and for test voltages above this limit,

the INVERSE FLAG is set (0001 in location 09EE) . The INVERSE FLAG will be

used later on to determine which ratio circuit will be used for the voltage

ratio reading of standard- to- test accelerometer output. The upper limit

voltage is set to get the maximum accuracy from the voltage ratio circuit.

For the present circuit configuration, the upper limit is 800 mV rms for

2 g peak acceleration at 2000 Hz.

Range Test for Test Accelerometer

CI DO C^30 007? LOAD FELAY FA \'K ? DFVICE

01D4 DA 50 1 40F SFT CAPITAMCf AT ZFRO

OlD^^ DA 5 0 ! 409

OlDC CP 7 0 OOCF LOAD OSCILLATOF DF^'ICF *

OlFO CF 60 OC5 0 SFT INDFX FFG. FOP Fr^OOO

0 1 F /. 4 1 ^0 1 6C0 PAL TO SFT UP OSC. CODF

OlF^ SFN'SF STATUS OF OSC.

0 1

055r ^•LSY ?

OlFC OIF F IF SO SS fiGAir

OlFO DA If. OC?C '*RITF DATA T^ nsC.

01F4 OA 60 0001 ADD I TO INDEX

C ! F^ C5 60 005 4 HAVF 4 PYTFS FFFN WFITTFN?

OlFC OlFP IF NOT, WP.lTt AGAIN

0^:00 ^200 0 000 MOP

020A CFDO 0004 LOAD A INTO nD

02 0& C830 OOCA LOAD DVM DEVICE ADDFESS

4-7
020C DE50 0B24 ENABLE INTERUPTS FOR DVM

0?1 0 9F4 4 CLFAR INTEfyUPTS

0? 1 ? 0200 NOP

0? I ^ CPCO 000? LOAD VO^LTAGF CODF

0? 1 ^ 11- 30 SFT DVr' FOF VOLTAGF P^ODF

0? 1 A 0?0C MOP

.0?, 1 C C^AO 00 7 1 LOAD FFLAY "^^ANK 1 DFVICF ADDFFSS

C P 4 0 0000 LOAD 1 VOLT -ANGF CODF F^P SIG. COMVERTFR

0^50 OOF? . LOAD COD[ FOF FATIO I, FAST f^^ODE

•^A A 5 l-:rT F FLAYS

o?r'A -^^A 4

/ 1 QO OF 7^ DFLAY

0?5 0 LOAD INDEX INTO F9

0?.3?' oc«^r; ;. riILT INDFX FY 4, STOFF IM

4 0Q0 0 9C4 STO,-F CAPACITANCF I NDFX IN COKE

4 I 4 V, 1 OFO PAL TO CONST . 0 SLF

.

0?3C CJr 30 OOCA FFSTORF LiVf', DFVICF ADDFFSS

n?4 0 cpoo 0071 LOAD RELAY LAND 1 DFVICF AI^DRE'SS

0 00/: LOAD 10 VOLl -ANOF CODF

0^4? C 9 0 OOC? LOAD RATIO 11 C^DF

or 4 C ^AO?' SFT F FLAYS

0? 4F lA O/i

0^.3 0 4 MO OF 1 E PAL TO MULTIPLF f-,FA DINGS OF DV^ SUB.

cr^5 4 4 2 00 0000 NOP

4-8
025 8 4 200 cooo MOP

no ^ r" A r K f'l 0 W 1 F [) G F I N T F R IJ P T S

IS IT THF DV^i?

OP 6 0 4 2 30 02 3 C IF NOT LOOK AGAIN

OP 7 7 CLFAR P7

0200 MOP

PP f OP^O 0005 LOA D' LU:i T I NT 0 F ^

n?6C CF ^0 000 1 LOAD I MCPE^F NT I NTO F e

P ? 7 02^8 n.FAb DATA INTO CopE

A 1 r 0 10 10 D F 1 A Y

C 170 02 7 0 rXLF (LOOP )

G?7C 4 POO 00 00 f'OP

no c p 4 1 05 Of"' PAD TO DECODt DV.^^ D^TA

4 2 0^ 0000 M op

4 !- i; 05 5 4 DOAD 1 SI Dion I no P2

'- c C J 'f' COO C" COKPAJ~L n T^-. 0

' 0290 4230 02A4 BRANCH ON NOT - TO SET INVERSE FLAG

n 9 Q Zi 4P20 05 5 6 LOAD DIGITS 2-4 INTO F2

i 0298 C520 M A A A gooo COMPARE TO 8000 ( 800 WV VOLTS

/-\ o P ^G '\ 0 ' 1 U / u c RFANCH ON NOT + TO PFTUR N

02A 0

/, o f> n 4 / u '

)

o n o n I ; U u NOP

0?A ^. 0000 PFSFT P^ TO DFSIFFD STA^ TING FFFO.

C2A P AO en 09C4 CLFAr INDFX ST"-AOF A^FA

0?AC CP2 0 000 1 LOAD 1 (SFTS INV'LFSF. FlAG)

4-9
C2n0 4C?0 09FE

o?_?A 43nn oppc

op^c r 7:0 0000

U2C0 0000

02c? 0000

0?C4 /;?.00 0000

02CH CP?0 0000

02CC 4020 09FE '

02D0 Ce;60 0000

02D4 4 3 00 OFAO

STOFE FLAG LOCATION IN COf^F

hFTlJF N STOFAGF

STOFAGF

NOP

LOAD 0 INTO S2 (FESFTS IMV'EFSF FLAG)

STORE FLAG

CLEAR R6 (Or SET FOR DESIRED STARTING FREO . )

GO TO SET RELAYS

4-10
SET EXCITER

2000 Hz

2g

I

01 DO

SET DVM:

10 VOLT

RANGE

VOLT MODE

I

READ TEST

VOLTAGE

NO YES

1

RESET

INVERSE

FLAG

1

SET INVERSE

FLAG

SET RELAYS

ROUTINE

FIGURE RANGE TEST FOR TEST ACCELEROMETER FLOWCHART

4-11
4,3 Check for INVERSE FLAG and Set Relays

This routine checks the INVERSE FLAG. If it is not set, the circuit

remains in the a position (see Hardware Section). In this case, the

relays are set as described in Section 4.15.

If the INVERSE FLAG is set, this is because the output of the test

accelerometer is too high for circuit a and circuit b must be used as described in the Hardware Section of this report. In this case, relay

eight must be activated (closed) and the binary code for the relays will

be:

0000 0000 1110 0001 for "SLOW" mode, and

. 0000 0000 1110 0011 for "FAST" mode.

This can be seen schematically in figure 2-6. The solid line with the arrow at the end represents an 0 condition in the binary coding; a 1

condition in the binary coding is represented with no line connecting

the pins. In this case only RII will be read.

Check for Inverse Flag and Set Relays

0300 4P'^0 0 9FF LOAD INVLFSF FLAO

030 4 Ci>?0 000 1 IC IT SLT?

030? 4330 03 1 ^ FPAMCH or = TO SFT FFLAY F FOR IN'VERSF

030C CFCO 000 1 LOAD ^ATIO CODF

03 1 0 ^ 3 00 OA 6 A GO PACK TO f*^A I V PHOG.^A^

031 4 A?nn 0000 NOP

03 1 « CFCO 000 1 LOAD FAT 10 CODF

03 IC CP 00 007 1 LOAD FELAY PA N'K 1 DEVICF AD DRFSS

03?0 CF40 0000 LOAD I VOLT CODF

03? 4 /: C ^' P 0676 FFSTOPE F P-^ CFAST/GLOl/ CODE)

03?^ CA ? 0 0 00 ! ADD 1 TO CFl rELAY P

03 rc ^roo 0000 MOP

4-12
033 0 ^Aor033?. ')''^0^i

0334 /i?00 OtOO

033 K A?Or) 0000

03 3C 4 5 00 OAF 4

0340 0000

034? 0 000

0344 0000

03 4 6 000^

03 4 P o^ro

03 4^' OOOO

03 4 0 0 000

03-^?" CO 00

035n cnnn

035? '

03 5 4 ^f^OO

035 f> ro.'if!

035 £ r;or!f)

035^^ ''O'-^O

Sf T LA Y ANK I

NOP

r'OP

GOTO RATI n I I PROGHAf'.

4-13
0300

f

SET RELAYS:

INVERSE

CIRCUIT

FIGURE A-3. CHECK FOR INVERSE FLAG AND SET RELAYS FLOWCHART

>
4.4 Check for INVERSE FLAG and Calculate Calibration Factor

for Test Accelerometer if Set

This routine determines if the INVERSE FLAG is set (circuit b as outlined in the Hardware Section). If set, the program will calculate

the test accelerometer sensitivity and then go to Hexidecimal-to-Decimal

routine. If the INVERSE FLAG is not set the program will continue at 0AD4.

Check for INVERSE FLAG and Calculate Calibration Factor

0560 4200 0000 NOP

0564 4820 09FF LOAD I NVEF.SE FLAG

0568 C520 0000 IS IT NOT SET?

05 60 4550 0AD4 BRANCH IF NOT SET TO RETURN TO MAIN PROG.

05 70 4200 0000 NOP

05 74 4850 09F8 LOAD RII

05 75? 0200 NOP

05 7A 0200 NOP

05 7C 4200 0000 NOP

05?0 487F OF 5 4 LOAD CAL. FACTOP OF STANDARD

05P4 C830 05F8 LOAD 1000 OR 10000 (THIS IS SET IN DECODING

05eP or 4 4 CLEAR F4

058A 0200 NOP

0580 0C47 MULT. CAL OF STANDARD PY CONSTANT ABOVE

058F 0200 NOP

0590 0D45 DIVIDE THIS PY RII

0592 0200 NOP

0594 0853 SAVF R5 I N R5

0596 0200 NOP

0598 4500 0100 CONVERT TO DECIMAL

05 90 4200 0000 NOP

> 4-15
0360

1

CONTINUE

AT HEX. TO

DEC. ROUTINE

I FIGURE 4-4. CHECK FOR INVERSE FLAG AND CALCULATE IF SET FLOW CHART

4-16
Table of Constants

Used in Accelerometer Data Block Entry Program

Note: The following code is part of Section 4.46, Accelerometer Data

Block Entry Program.

03A0 C64E D44E FN TN

03 A 4 C341 504D CA PM

U3A8 504E 5053 PN PS

03AC 41 4D 414E AM AN

03B 0 4153 C355 AS CU

03B ^^ 44C3 C5B 1 DC E 1

03B 8 C5B2 538 1 E2 S 1

038 C 53B2 474 1 S2 GA

03C 0 D748 41D4 WH AT

05C A 3FA0 8D0A ? CR.LF

03C8 D748 C9C3 WH IC

03CC 483F 8D0A H ? CR.LF

03D0 50C9 C34B PI CK

03D4 5550 A04D UP M

03DB CF44 A04E OD N 03DC CF3F 8D0A 0? CR ,LF

03 EO 41 4D 50A0 AM P

03E4 4PCF 44A0 MO D

03E8 4ECF 3F8D NO ?CR

03EC OAAO LF.

03EE 0000

4-17
4.5 Clear Tables for Accelerometer Data Block

The first program on the following pages is used in the PAKTIAL

entry mode of the Entry Program (3740). When a parameter is called

for in the PARTIAL mode, the existing record space is erased (set

equal to 0000 for all bytes) for that parameter. The second program

is used in the ALL entry mode of the Entry Program (3740). When ALL

is typed in response to the question "All or Partial Changes?", the

entire record space is cleared for the parameter entry program.

Clear Tables for Accelerometer Data Block

0400 4200 0000 NOP

0404 OBI I CLEAR Rl

0406 0B22 CLEAR R2

0408 4200 0000 NOP

040C 4200 0000 NOP

041 0 401 2 2B00 CLEAR LOCATION (2800 + (R2)

041 4 C520 0100 X: 100?

04 1 g 4330 0424 BRANCH ON : TO EXIT

041C CA20 0002 ADD 2 TO X

04?0 4300 04 10 CONTINUE

0424 4300 3790 EXIT CLEAR TABLES ROUTINE

0428 0000

042A 0000

042C 0000

042E 0000

0430 4843 3PA6 LOAD # BYTES TO BE CLEARED

0434 OB I 1 CLEAR Rl

4-18
0436 0B55

0438 4823 38A4

043C 4200 0000

0440 D212 0000

0444 CA50 0001

0448 CA20 0001

044C 4200 0000

0450 0554

0452 0200

0454 4230 0440

0458 4300 37PC

CLEAR R5

LOAD START LOCATION FOR CLEARING

NOP

CLEAR LOCATION ( (R2) ) ADD I TO COUNTER 1 ADD 1 TO COUNTER 2

NOP

COMPARE COUNTER TO # PYTES TO CLEAR

NOP

BRANCH ON NOT - TO CONTINUE CLEARING

EXIT CLEAR TAPLES ROUTINE

4-19
Table of Messages

Note : The following memory locations are a storage area for messages

throughout the software programs.

P

0460 ?DOA 4FCF

0464 A041 4444

0468 C9D4 C9CF

046C 4E4 1 CCAO

0470 C6C9 CCC5

0474 A 0C6 CF55

047? 4E44 A0C6

047C CFD2 A0P4

04P0 4PC^ 55AC

04P4 50C9 C54P

04^8 5550 °DOA

048C 0000

C4PE 0003

0490 0000

0492 0000

0494 0000

0496 0000

0498 0000

4-20
4.6 *Round-Off Subroutine

Called on RE

This subroutine is used for data from the digital voltmeter. The

DVM gives five digits of data, of which four digits would overload

registers in certain operations (addition for example).

Entry Requirements: Five digit decimal number RO, Rl and core location

0554, 0556.

Output Hexidecimal number equivalent to the decimal entry

number rounded to four digits, output in R3 and

core location 26EC.

* Round-Off Subroutine

049C 40F0 04F4 SAVE RE

04A0 C500 0000 IS FIRST DECIMAL DIGIT ZERO?

04A A 4530 04E0 BRANCH ON - (<9999)

04Ag CDOO OOOC SHIFT LEFT C BITS

04AC CCIO 0004 SHIFT RIGHT 4 BITS

04P0 OA 10 R 1+R0:R

04B2 OBOO CLEAR RO

04B 4 4200 0000 NOP

04P 8 4 1 90 OE 9A DECIMAL TO HEX (BACK ON R3)

04PC 4850 0556 LOAD DECIMAL # (LAST 4 DIGITS)

04C0 C450 OOOF PICK OFF LAST DIGIT^D

04C 4 CB50 0005 D-5:R5

04C8 4210 04D0 BRANCH ON NEGATIVE

04CC CA30 0001 ADD 1 TO HEX. #

IN ON RO, Rl AND

0554, 0556

OUT ON R3 AND 26EC

4-21
04D0 4030 ?.SEC

04D4 C840 OOOA

04D8 4040 04F6

04DC 4300 04F8

04E0 4190 0E9A

04E4 4030 26EC

04E8 C840 0001

04EC 4040 04F6

04F0 4300 04F8

04F4 26E0 OOOA

04F8 48F0 04F4

04FC 030E :

SAVE

LOAD MULTIPLIER CODE

SAVE

GO TO EXIT

DECIMAL TO HEX (R3)

SAVE

LOAD MULTIPLIER CODE

SAVE

GO TO EXIT

STORAGE FOR RE AND MULTIPLIER

RESTORE RE

EXIT

4-22
4.7 *ASCII-to-Decimal Subroutine

Call on R9

This subroutine converts five bytes of ASCII code to two half-word

decimal code. \

Input Requirements: ASCII code in core locations 02B9-02BD.

Output; Decimal code in core locations 055 A and 0556.

*ASCII-to-Decimal Subroutine

5 00 ^?00 000 0 NOP

0504 C3A0 0?F^ l.OA D DATA I K 1 n

05 O'f^ D 3F.0 02PA

05 00 n3C0 ..

05 1 0 P3P0 o?r^c

05 1 A "3F0 ri o r - r> ''<:.-

05 1 ^ C 4 0 OOOF PICK Of- F LAST

05 10 00 OF

05 ?0 O-iCO OOOF

05?^ 0 4ro OOOF

C AfO OOOF

05 ?C err 0 00 OC SF I FT LI FI If

05 3 0 coco 00 Ot SHIFT Lf Fl p

0534 cnno 0004 SHI FT L r F T 4

05 3 8 OA':- c F- P +Fi C

05 3A CAE-'D pr +nD

0530 OAF'F PL -t-PE

4-23
053E 0200

0540 40A0 0554

0544 40B0 0556

0548 4200 0000

054C ^200 0000

05 5 0 030'^

0552 0200 •

.

05 5 4 0000 '

055 6 01 56

C55& 0000

05 5. 00 00

05 5C COOC

05 5E CDOO :

STORF PA (FIRST DIGIT)

STORF RP (LAST 4 DIGITS)

FFTUFN

STOFAGF A^.fA

4-24
0500

LOAD

BYTE 1 -^RA

2 —RB

3-^RC

4-^RD

5-*-RE

ZL

PICK OFF

LAST 4 BITS

EACH BYTE

BECOMES

1ST SHIFT LEFT-^ OBITS 1ST DEC. DIGIT

2ND 12 2ND

3RD — 8 3RD

4TH 4TH

5TH 0 5TH

i

ADD BYTES

2,3,4,5

SAVE

(246E)

EXAMPLE:

B1 B2 B3 B4 B5

BECOMES

0001 2345

SAVE

1ST BYTE (246C)

FIGURE 4-5. FIVE BYTE ASCII-TO-DECIMAL FLOWCHART

4-25
4.8 Check for UNSTABLE/FLAG and Type Message if Set

This routine checks the STABLE/UN STABLE FLAG. This flag is set for

either 0000 or 0001 in the Multiple Readings program. This flag indicates

that the test accelerometer data fall within the stability requirements

or that the data do not fall within the requirements. The data must not

show a scatter of more than 0.1 percent to meet the requirements in the

Multiple Readings program. In the case of unstable data, a diagnostic

is typed out after the calibration factor on the TTY.

Check for UNSTABLE/FLAG and Type Message if Set

05B 0 4810 230E LOAD STABLE/UNSTAPLE ELAG

05B A C5 1 0 0000 COMPARE TO 0 (STAPLE?)

05B 8 4330 1 020 BRANCH ON - TO LOOK FOR H OR

05PC 4 lEO 3478 TYPE OUT MESSAGE

05C0 05D0 STARTING ADDRESS OF MESSAGE

05C2 05E7 ENDING ADDRESS OF MESSAGE

05C4 000! CODE INDICATING ASCII FORMAT

05C6 09.00 NOP

05CP 4300 1020 . GO LOOK FOR H OR S

05CC AOAO AOAO STORAGE FOR MESSAGE

05 DO AOAO AOAO

05 D 4 A OAO AOAO

05D8 554E 53D4

05DC 4 1 A?. CCC5

05E0 A 05 3 C947

05 I

A

4E4! CCAO

05E8 A OAO AOAO

05 EC A OAO AOAO

>

4-26
Storage For Save Registers Subroutine

Saves All Registers Except E

Note: The following memory locations are reserved for the Save Registers

Subroutine Section 4.9.

? ^50 0 1010

Of 74 f, 30 0 15 10

3 10 1 30 1 0

^.f 70 50 10

55 7 1 T^IO

06P^ 7f 7r 09 1 0

06 ^ ^ ^^1 0

Of cc ^"^7 1 '^'^

1 1

7 1 •39 I 9

>

4-27
4.9 *Save Registers Subroutine

(Call on RE)

06C£ 4?00 COCO MOP

C6DC 4?00 0000 rop

06F0 4010 Of 74 SAVE F 1 If: L^^CATI CN' 0674

Of F 4 4 000 Of 7f FTC.

06Ee 4 0 3P Of 7P

OfFC 4 0 4n Of 7 A

Of FO 405 0 Of 7C

Of F4 4 o e 0 067f^

4P70 Of P P

Of FC / r p 1 0 f ^ ^

070^ z ^ ^0 CGF4

4 A 0 f F f

4 0- 0 0 f F P

0700 ^oco 0 f F A

0710 4 0 T' 0 Of PC

07 I ^ 4 0F0 Pf PF

07 1 t 4 0 00 Of 00

071C 05 OF 'wFTUFN TO CALL

07 IF 0200

>,

4-28
A. 10 *Restore Registers Subroutine

(Call on RE)

C7?0 A^CC 06^0 RFSTOF^E RO

01? A A°\r, OeiA ETC.

C7?? AF20 neie,

r7rc 4p3r n67r

Clio A^AO 067ft

r-j^/^ ic<^r. OCIC

01 }C A^IC CGfC

r^740 ^'t^^O ^6*''^

o 7 /I r Q r r ^ c< /;

n74C^'^^iCi^f^f.

C7-iC ^ P'- 0 C6f t

r75 0 /^CO 06'""

073-^ A^r;) ctpc

^75? AfFC C6PF

C75C C50F RETUFN TO CALL

4-29
4.11 Calibration Factors Exciter

1 p n C3

I 0 u ^

1 U 'J ^ 1 u u y n 7 p U / D c

1 n n Q i U U

t n n Q 1 U U V

Q 1 DL 1 A r> 100 9

1 n o

1 uus

1 J U 7

1 n n 0

07 7/ 1 n n Q 1 u u y1 o n o 1 U U 7 OOlio 7 7 C 1 n n Q 1 u u ^

1 n n Q 1 U u ^ n 7 7r 11 nU nU Q7 1 U U 7 n 7 P n u / c u 1 u I u 1 U 1 u 1010 1010

07F5 1010 1010

07FC 1010 1010

07 '90 101 1 1011

0794 1012 1012

0798 1012 1012

C79C 1013 1013

C7AC 1013 1014

07A4 1014 1014

07AP 1014 0300

>

4-30
4.12 Calibration Factors Exciter

07F0 2004 2004

07E4 2004 2004

07ER 2004 2004

07EC 2004 2004

07F0 2004 2004

07F4 200.^ 2006

07Fg 200P 2010

07FC 2012 201.^

OPOO 2018 2020

0P04 2023 2023

080P, 2023 2029

080C 2030 203 1

OP 10 2031 2023

4-31
4.13 Start 1

Location 08LA is the starting location for the automated accelerometer

calibration program for exciter 1. The calibration factors for this

exciter are converted to hexideclmal and transferred into the working

storage area starting at location 0F54. The RANGE FLAG is reset to 0001

and saved in location 09E4. The SHAKER FLAG is set equal to 140C and

saved in location O9C0. Register 6 is cleared for starting the program

at the initial frequency.

Start 1

STA^T 1 (SHAKFR ! )

081 A OPFF

08 IC OR A A .

08 IE OB 00

0820 481 A 07E0

0824 4190 0E9A

0828 405A 0F54

082C CAAO 0002

0850 C5A0 0032

0854 4250 0820

0858 4820 0E90

085C 4020 0E8C

0840 C810 0001

0844 4010 09F4

0848 0B22

CLEAR RF

CLEAR RA

• CLEAR RO

LOAD SHAKER I CAL. FACTOR

CONVERT TO HEX

.

STORE IN MAIN PROGRAM

ADD 2 TO RA

COMPARE TO UPPER LIMIT

IF NOT : GO LOAD ANOTHER FACTOR

LOAD CUT OFF FRFQ. CODE

STORE CODE

LOAD 1

SET RANGE FLAG --

\

CLEAR R2

4-32
084A A0?0 0A02

084E opon

0850 C8I0 140C

0854 4010 09C0

085 8 OB 6

6

085A 4300 OlDO

CLFAR THIS LOG. FOR MAG. TAPE PROG

r'OP

LOAD SHAKER 1 FLAG

STORE

CLEAR P6 TO START AT FIRST TEST FREQ.

GO TO SET RELAYS PROG.

4-33
4.14 Start 2

Location 085E is the starting location for the automated accelerometer

calibration program for exciter 2. This program performs the same function

as Start 1 except for setting the SHAKER FLAG equal to 1408.

Start 2

***** START 2 (SHAKEP 2)

085E OBFF CLEAR RF

0860 4820 0E8E LOAD CUT OFF FREO. CODE

0864 4020 0E8C STORE IN MAIN PROG.

0868 OPAA CLEAR RA

086A OEOO CLEAR RO

086C 481A 0760 LOAD SHAKER 2 CALIBRATION FACTOR

0870 4190 0E9A CONVERT IT TO HEX.

0874 403A 0F54 STORE IN MAIN PROG.

0878 CAAO 0002 ADD 2 TO RA

087C C5A0 004A COMPARE TO UPPER LIMIT

0880 4230 086C IF NOT - LOAD ANOTHER FACTOR

0884 C8 10 0001 SET RANGE FLAG -- \ AND SAVE

0888 4010 09E4

088C 4200 0000

0890 0B22 CLEAR R2

0892 0200

0894 C810 1408 LOAD SHAKER 2 FLAG

0898 401 0 09C0 STORE FLAG

08 9C 4300 OlDO GO TO RANGE TEST

>

4-34
4.15 Set Relays for Ratio I, Output Oscillator Code,

Read Frequency Counter, Type it on TTY

4.15.1 Programming Relay Banks 1 and 2 . This routine sets up relay

banks 1 and 2. Relay bank 1 sets up the electrical circuit for either

Ratio I or Ratio II (see figure 1-1). In this program, the relays will

be set up to read Ratio I. The Ratio I readings will be:

_ Standard Accelerometer Voltage

Standard Accelerometer Voltage-G^

where G = the gain of the amplifying circuit in figure 1-1.

The hexidecimal code, OOEO , is found in location 08B6. Converting this

to binary:

0000 0000 1110 0000

Disregarding the first eight bits .because a Write Data statement uses only the last eight bits, the useful part is:

1110 0000.

The first bit on the left represents the position of relay 1, the second

bit of relay 2, etcetera up to bit eight which represents the position of

relay 8. In figure 1-1, the schematic of the voltage ratio circuit is given.

The relays 1 through 14 are shown. The solid line with the arrow at the

end represents a 0 condition in the binary coding, and no line represents

a 1 condition in the binary coding.

The binary code for relays 9 through 16 is:

0000 0000,

which indicates that in figure 1-1, relays 13 and 14 are set in the solid

line position.

The following table summarizes the coding for relays 1 through 16.

4-35
TABLE 4-1. Relay Bank 1 Coding

Relay Number Code 0 Code 1

1

2

3

4

5

6

7

8

. 9

10

11

12

13

14

15

16

Connects relay 6 to

Connects relay 5 to

Connects test converter to

Connects output of test

converter to

Connects test signal to

Connects reference signal to

Sets ac/dc converters to

Connects reference ac/dc

converter input to

Controls polarity of power

supply output to wave

analyzer circuit (see fig. 2-4)

See figure 2-4 Power Supply

Reference ac/dc converter range

Signal ac/dc converter range

Contact for "seek" on oscilloscope

Ref. signal 2

Test signal 2 Test signal

DVM input

Relay 3

Relay 6

"Slow" mode

Output of

amp

.

Negative

Disconnected

1 Volt

1 Volt

Opens

Ref. signal 1 Test signal 1 Ref. signal

Wave analyzer

Wave analyzer

"Fast" mode

Test signal

Positive

Connected

10 Volts

10 Volts

Closes

4-36
Relays 17 through 32 control a bank of capacitors. Tliis is for

impedance matching of the exciter drive coil to the p'ower amplifier,

and is connected in series between the power amplifier output and the

exciter drive coil. The following table gives the values of the

capacitors which each relay controls.

TABLE 4-2. Relay Bank 2 Coding

Rp 1 ;^\7 N 1 imh p r Capacitance (pF)*

17 0.1

18 0.2

19 0. 3 20 0.4

21 0.5

22 1.0

23 2.0

24 3.0

25 4.0

26 5.0

27 1 n 0

28 20.0

29 30.0

30 40.0

31 100.0

32 Shunt

*The binary code of 0 disconnects a capacitor; a code of 1 connects a capacitor. (See figure 2-5.)

4-37
The following diagram illustrates the binary coding for the two

bytes of code which control the capacitance bank. The number in the

boxes is the number of the relay.

17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

A 0 code disconnects a capacitor; a code of 1 connects a capacitor.

The following examples of the capacitor bank coding are found in the 1400

Data Block Control Constants.

Example 1: at core location 140C, the hexidecimal coding is 0001.

This code will mean all capacitors except number 32 are disconnected

from the circuit. On the previous chart, relay nuiii)er 32 is a shunt.

Example 2: at location 147C, the hexidecimal coding is 00A6 . This

converted to binary is 0000 0000 1010 0110. From the diagram above this

is found to mean capacitors corresponding to relays 25, 27, 30, 31 are connected. The capacitor bank is wired so that these selected capacitors

are connected in parallel. The capacitance is then the sum in the above

example which is 154mE. The total available capacitance is 221. 5nF,

excluding the shunt.

4.15.2 Programming the Decade Oscillator . The oscillator has the following

decade controls:

Voltage: 1 volt increments from 1 to 9 volts

0.1 volt increments from 1.0 to 0.9

0.01 volt increments from 0.01 to 0.09

Frequency: 100 Hz increments from 100 to 900

10 Hz increments from 10 to 90

1 Hz increments from 1 to 9

0.1 Hz increments from 0.1 to 0.9

Multiplier of any of the above: XI, XIO, XIOO.

The oscillator is programmed by four successive Write Data instructions.

The coding must be in the following format:

First byte of coding: 0.1 volt increment

0.01 volt increment

Second byte: 0.1 Hz increment

1 volt increment

Third byte: 10 Hz increment

1 Hz increment

Fourth byte: Multiplier, 100 Hz increment

4-38
The subroutine at 16C0 translates the code of the 1400 DATA BLOCK

to the previous format. The first two columns in the 1400 DATA BLOCK

entitled "FREQ" are reformated for each test frequency prior to

programming the oscillator. This routine programs the oscillator

|{ initially. The Constant Acceleration Subroutine (see Section 4.27)

' programs the oscillator for a desired acceleration level.

4.15.3 Reading the Frequency Counter . To read the frequency counter

the following operations are required:

1. Execute an output command to start the counter, and

2. Sense status of counter and, when "not busy" condition is reached,

execute six Read Data instructions.

3. The counter can be stopped by an output command to stop.

The code read into computer core is in the ASCII format, which is ready

to be sent to the teletype. In the present program, it is desirable

to start the counter counting after the initial count is finished in

order that the operator can see the current test frequency displayed

on the counter (see location 0A30).

Set

Read

Relays for Ratio I, Output Oscillator Code,

Frequency Counter, Type i t on TTY

0? AO C83C 0004 LOAD COUNTER STOP COMMAND

08 A 4 4060 09C4 CLEAR INDEX STORAGE AREA

08A8 C800 OOOE LOAD COUNTER DEVICE ADDRESS INTO RO

08AC 9E05 STOP COUNTER

08 A E 0B33 CLEAR Rl FOR RELAY CODE

08B0 C800 0071 LOAD RELAY BANK 1 DEVICE ADDRESS INTO RO

08B4 0820 OOEO LOAD CODE FOR RELAY BANK 1

08 B8 9A02 WRITE DATA TO RELAY BANK 1 FOR-FI RATIO

08 8 A 9A05 //

08BC 0322 CLEAR R2

4-39
(Jo D C PP 7 n nno \j w \j Fr

08 C2 9D75

08 C4 0552

08C6 4250 08C2

nR PA u ^UU

UBu r. CO o w

UiSUc. Ha "7

n

DA

UoUH nr Rn

UoUt An on U yt. c.

Uo LU u u

UcLc. nnUD HA AH

H O O U VJ O H

r>Q FR DR FF

nQ F f (JO C K/

no rn Uc r U nnn U U U iI no r / n A n F U ft u t.

08 F6 A n r> n 40 UO n n o

Uc r A noon U<iUU

ORUc Fr rL. HASP L> M ^ C

U ^ V W L/ M O 1 409

0904 4 190 1600

0908 9D75

090@ 0552

LOAD OSCILLATOR DEVICE ADDRESS

SENSE STATUS OF OSCILLATOR

BUSY?

IF SO, SENSE AGAIN

LOAD SHAKER FLAG INTO RE (TO IDENTIFY WHICH SHAKE

TURN OFF OSCILLATOR

STORE 0000 (USED IN CHECK FREQ. ROUTINE)

CLEAR RA (USED TO OUTPUT CODE TO OSCILLATOR)

LOAD CAPACITOR INDEX INTO R8

STORE SHAKER FLAG BELOW TO SET RELAYS

LOAD RELAY BANK 2 DEVICE ADDRESS (FOR CAPACITORS)

LOAD 1 INTO RD

ADD 1 TO SHAKER FLAG TO SET RELAYS

STOHE BELOW FOR OUTPUT TO /RELAY BANK 2

NOP

WRITE DATA TO RELAY BANK 2 (CAPACITORS)

BAL TO SET UP OSCILLATOR CODE FOR THIS FREQ.

SENSE STATUS OF OSC

BUSY?

4-AO
o^oc 4230 0908 IF SO, GO SENSE AGAIN

0910 DA76 0C8C WRITE DATA TO OSCILLATOR

0914 0B88 CLEAR R8

0916 OEOO CLEAR RO

09 1 S 45 60 0E8C IS THIS THE LAST TEST POINT?

OQ 1 P uy 1 0 ** 0 ou nu rFQ5> rc.

r A /s n nnn i u U U 1 Ann 1 Tn tudcy prcTCTFD

0924 4200 0000 NOP

0928 CAAO 0001 ADD 1 TO OSC. COUNTER INDEX

092 C C5 AO 0004 HAVE 4 BYTES BEEN WRITTEN TO OSC?

0950 4230 0908 IF NOT, GO WRITE ANOTHER BYTE

0934 0896 LOAD INDEX REG. INTO R9

0936 C8A0 0004 LOAD 4 INTO RA

093A 0C8A R9*RA PUT RESULTS INTO R8,R9

093C 4090 09C4 STORE CAPACITOR INDEX

0940 C810 0000 LOAD 0

0944 4010 09EA CLEAR THRU r LA u CUbtf in nHwuc ic^ji /

0948

t C800 OOOE LOAD COUNTER DEVICE ADDRESS INTO RO

094C C810 0002 LOAD TTW DEVICE AUUKtbb INIU Kl

0950 0830 0004 LOAD STOP COpiriANU r On LUUNILK INIU no

095 4 C840 0008 LOAD START COnnANL) r OH uOUNitn iWIU ni

0958 4 190 0E78 BAL TO DELAY ROUTlNt rOn LUUNItn

095C 9E04 STARTS COUNTER

095E 9D09 SENSE STATUS OF COUNTER

0960 4280 095 E IF BUSY SENSE STATUS AGAIN

4-41
0964 OBBB

0966 C8C0 0001

096A 08D4

096C DBOB 0986

0970 CIBO 096C

0974 9E03

09 76 4300 25 60

097 A C8D0 0006

097E C880 OOOS

0982 OBBB

0984 DEIO 09B2

0988 DAIB 09B4

098C 9D1E

098E 4280 098C

0^9'" C I

' r O^f 8

0996 Cc30 0002

09^A DF5 0 C^FO

099f^ A}-^.n 0^30

CLEAR RB

LOAD I INTO RC (INCREMENT REGISTER FOR LOOP)

LOAD 2 INTO RD (LIMIT REGISTER FOR LOOP)

READ COUNTER INTO MEMORY

BXLE

STOPS COUNTER i BRANCH TO CHECK FOR PROPER FREQ.

LOAD 6 INTO RD (LIMIT REGISTER FOR TTW LOOP)

LOAD 6 INTO R8

CLEAR RB (BXLE REGISTER)

PUT TTW IN WRITE MODE

OUTPUT TO TTWj CR,LF, FREQ. DATA

SENSE STATUS OF TTW

IF BUSY GO SENSE STATUS AGAIN

^:Xlf (L'^OP F^-r TTY PRIN'TnUT)

LOAF 2 INTO F,.^

PUT TTY If -EAF r^DF (TO ACCFPT ^ OF S)

C^NTIN'Jf VI TF fAIK' P^^G-Ai^'

4-42
STORAGE LOCATIONS

09A2

09A4

09A6

09AA

09AE

09B0

j 09B2

! 09B 4

098 8

I; 098 C

I 09C0

09C4

; 09C6

J 09Cg

09CA

! 09CC

i 09CE

' 09D0

I 09D2

I 09D6

i 09DA

I 09DC

, 09DE

09F2

0000

FOOO 0000

8000 3340

0000

9400

9898

8D8A BOBO

B0B5 BOBO

BOBO BOOO

1408 0000

0040

0005

0000

0014

0000

0000

0000

8000 2864

8000 3320

0000 . 0904

0A5E

TEMP, STOP COMMAND

READ MODE CODE FOR TTY

WRITE MODE CODE FOR TTY

CODE FOR CR,LF, FREQ DATA STORAGE

FREQ DATA STORAGE

SHAKER FLAG STORAGE 140C=SHAKER 1, 1408=SHAKER

STORAGE FOR R9 (TTY DATA)

STORAGE FOR R9 (INDEX FOR CAPACITOR CODES)

STOR. FOR LOOP COUNTER FOR CONST G. ROUTINE

STOR. FOR R5 IN SUB. CONST G

TEMP. STOP COMMANDS

ADDRESS OF PSW

STORAGE FOR R4

4-43
09E0 0002

09E2 0000

09EA 0001

09E6 OOOA

09E8 8677 0000

09EC 055E

09EE 0000

09F0 0000

09F2 OOEO

09F4 0000

09F6 0000

09Fg IBgD 2756

09FC 03E8

09FE 2710 0000

OA 02 ooon

0A04 A400 FOGG

OAOg IpgF FOOO

OAOC 0000

OAOE FOOO 0000

OA 12 FOOO 0000

OA ! 6 FOGG 0000

OA lA FOGG OGOG

OA IE FOOO GOOD

0A22 FOGG OGOO

GA26 FOGG GGGG

GA2A FOGG 0000

0A2E 0000

STOR. FOR R5 IN DECODE DATA ROUTI NE (TELLS WHERE

DEC. PT. IS)

STOR. FOR COUNTER IN CHECK FREQ. ROUTINE

STOR. FOR RANGE FLAG FOR SIGNAL CONV. 1 OR 10 RANGE

STOR. FOR ,RI . (RATIO I DECIMAL)

STORAGE FOR RII (RATIO II DEC.)

STOR. FOR # TIMES THRU RANGE CHECK ROUTINE

STOR. FOR RI (RATIO I HEX.)

INVERSE FLAG (OrNOT INVERSE; 1=INVERSE)

STOR. FOR R2,R4 (RELAY CODES)

STORAGE FOR ZERO/NON ZERO FLAG(FIRST DIGIT OF RH

RATIO II (HEX) TEST CAL FACTOR(HEX) ^ NOT ASSIGNED

NOT ASSIGNED fvOJ ASSIGNED

STORAGE FOR COUNTER IN (tag TAPE PFGG.

TTY UNBLOCK, READ STORAGE FOR R3 IN DEC/HEX

HEX # IN 09EA ROUTU'F NOT ASSIGNED

NOT ASSIGNED

4-44
Set Relays for Ration I, Set Acceleration Level, Read Ratio

OA 30 9E04 TURN COUNTER BACK ON (FOR CONTINUOUS

0A32 41A0 12D0 BAL TO SCOPE SCALE ROUTINE

1

j OA 36 C840 0000 LOAD RELAY CODE IN R4

0A3A C800 0071 LOAD RELAY BANK 1 DEVICE ADDRESS

0A3E

0A42

41E0

4020

1 7B4

09F2

BAL TO DETERMINE FAST/SLOW FOR AC/DC

(SETS UP R2)

SAVE R2

OA 4 6 4040 09F4 SAVE R4

OA 4 A 9A02 WRITE DATA TO RELAY BANK I

0A4C 9A04 M

0A4E DE30 0B24 ENABLE INTERUPT FOR DV«

0A52 9F44 CLEAR PENDING INTERUPTS

0A54 C8C0 0002 LOAD VOLT CODE

0A58 9E3C SET DVM FOR VOLT READ

0A5A 4140 lOFO BAL TO SET ACCELERATION LEVEL

0A5E 4200 0000 NOP

0A62 C830 OOCA LOAD DVM DEVICE ADDRESS

0A66 4300 0300 GO CHECK FOR INVERSE FLAG

0A6A 9E3C SET DVM FOR RATIO

0A6C 41 90 lAOO BAL TO MULTIPLE READINGS SUBROUTINE

OA 70 481 0 23 DC LOAD AVERAGE RATIO I (HEX)

OA 74 401 0 09EC SAVE

0A7g C81 0 0001 RESET RANGE FLAG r 1

4-45
0A7C 4010 09E4

0A80 4200 0000 NOP

0Ag4 4300 OAAO GO TO RII PROGRAM

0A88 0000

0A8A 0000

OA 8C 0000

0A8E 0000

OA 90 0000

OA 92 0000

OA 94 0000

OA 96 0000

OA 98 0000

0A9A 0000

0A9C 0000

0A9E 0000 - .

4-46
4.16 Set Relays for Ratio II, Calculate

Test Accelerometer Sensitivity

4.16.1 Programming Relay Banks 1 and 2 . This routine sets up relay

bank 1 fur Ratio II readings.

j^jj _ Test Accelerometer Voltage

Standard Accel. Voltage -G

'

where G is the gain of the amplifying circuit in figure 1-1. The binary

code for this will be:

0000 0000 1100 0000 for the "SLOW" position of converters, and

0000 0000 1100 0010 for the "FAST" position of converters.

See figure 1-1 and explanation under Programming Relays for RI for explanations.

4.16.2 Calculation of Test Accelerometer Calibration Factor . The calibration

factor for the test accelerometer is given by:

= Rl^-S (Standard)

^ Test RI

The RANGE FLAG is 0001 if test converter was set for 1 volt full scale and

0010 if test converter was set for 10 volts full scale. This converter

range is automatically tested at each test point at the routine at 19A0. If

the INVERSE FLAG is set (set at Range Test program OlDO) a different formula

is used in the computation of the Test Accelerometer Sensitivity. In this case

,

(1000 or lOOOQ)- S(Standard)

Test RII

The multiplying constant is set at 1000 if the LOW/NORM FLAG is 1 and is set

at 10000 if the LOW/NORM FLAG is 0. The LOW/NORM FLAG is determined when

S.II is read; a Ratio II with the first digit of zero sets the LOW/NORM FLAG

at 0 and a non-zero digit sets the flag at 1-1. (See Read Data Subroutine

location 2000)

.

4-47
Set Relays for Ratio II, Read Ratio II,

Calculate Test Acceleroraeter Sensitivity

nAAO C800 0071 LOAD RELAY BANK 1 DEVICE ADDRESS

0AA4 4 lEO ! 7D8 PAL TO DETERMINE FAST/SLOW MODE FOR CONVERTERS

OA A 8 41A0 12D4 BAL TO SCOPE SCALE

OA AC C840 0000 RELOAD RELAY CODE

OABO 9A02 SET RELAY BANK 1

0AB2 9A04

0AB4 C830 OOCA LOAD DVn DEVICE ADDRESS

OA 8 8 DE30 0B24 ENABLE INTERUPTS FOR DVM

OABC 9F44 CLEAR INTERUPTS

DABF 9F3C SET DVM FOR RATIO

OA CO 4 ! 90 1 AOO PAL TO MULTIPLE READINGS SUBROUTINE

OA C4 4810 230C LOAD RATIO I I (HEX )

OA CP 4010 09F8 SAVE

OACC 4200 0000 NOP

OADO 4300 0B04 CHECK FOR INVERSE FLAG

0AD4 4FB0 09F8 LOAD RATIO II (HEX)

OA D8 4 300 1 9A0 CHECK FOR CORRECT RANGE OF TEST CONVERTER

OADC 4830 09F8 RELOAD RATIO I I (HEX

)

OAEO 4870 09EC LOAD RATIO I 0AE4 485F OF 5 4 LOAD CAL. FACTOR OF STANDARD

0AE8 CAFO 0002 ADD 2 TO INDEX

OAEC 4890 09F4 LOAD RANGE FLAG (0001 OR OOOA

)

4-48
oafo 0C25 RATIO II * CAL, FACTOR OF STD.

OAF 2 0D27 DIVIDE BY RATIO I

0AF4 0C29 MULT. BY RANGE (0001 OR OOOA

)

0AF6 0200 NOP

OAFS 4200 0000 NOP

OAFC 4200 0000 NOP

OB 00 4300 0100 GO- CONVERT CAL. FACTOR TO DECIMAL

0B04 4840 09F6 LOAD LOW/NORM FLAG

OB 08 C540 0000 EQUAL TO 0?

OBOC 4330 OB 18 BRANCH ON :

OB 10 C890 03F8 LOAD CONST.

03 14 4300 OBIC BRANCH

OP 18 C890 2710 LOAD CONST.

OPIC 4090 0386 STORE CONST. IN CALCULATION PROGRAM

0E20 4300 0360 CHECK FOR INVERSE FLAG

0P24 4030 0000 CODE FOR DEVICE INTFRUPT E NA RLE , OUTPUT

FOR DVM

0R28 0000

0B2A 0000

0B2C 0000

0R2E 0000

OB 30 0000

OB 32 0000

08 34 0000

OB 36 0000

4-49
0B38 0000

0B3A 0000

0B5C 0000

0B3E 0000

OP 40 0000

0B42 0000

0B44 0000

0B46 0000

OB 48 0000

0B4A 0000

0B4C 0000

0B4E 0000
Storage Space for Digital Filter Subroutine

Note: The following memory locations are reserved for the Multiple

Readings subroutine Section 4.39.

0B50

0C6E

A-51
4.17 Storage Table for Oscillator Code

Note; The following memory locations are reserved for storage for

oscillator code as calculated in Section 4.33.

0C80 0000 0CF8 709 1 *f O i-- 0C82 0000 OCFC 709 ! yo cj 0C84 0000 ODOO 75 71 4826

0C86 0000 0D04 8161 9RP^=^

0C88 0000 ' ODOR I J J c *iO<L 1 0C8A 0000 ODOC 904 ^ c 1 *t 0C8C 4000 101,0 nnoF 9R? J C> C 71 0C90 8500 15 10 nn 1 n Qn/i 1 0C94 4401 3010 nn\JU 1

1 9 *i C e\.0 f *i O I 0C98 490i 5010 nnUU t1 D

0C9C 7071 9910 UiJ 1 o ^o*l 1 OCAO 8470 9910 UU 1 H

>k Q O Q 1 A A O

OCA 4 3370 9910 UU 1

1

OCAS 7371 991 1 OCAC 975 1 OCAE 991 2

OCBO 1 452 9913

0CB4 3 75 2 981 4

0CB8 5842 98 1 5 : OCBC 8032 9716

OCCO 0423

0CC2 971 7

0CC4 2703 9718

0CC8' 5003 0021

OCCC 71 94 4921

OCDO 0695

0CD2 692 1 7995

0CD6 9921

0CD8 8592 992 1 OCDC 1 391 9921

OCEO 3477 4922

0CE4 5276 9922

0CE8 0867

OCEA 4923 2767

OCEE 9923

OCFO 001 0

0CF2 4924 6101

0CF6 9924

4-52
4.18 TTY Printout

This routine types the test acceleroiiieter calibration factor on the

teletype. There are three codes which arp. important here. They

are

Decimal Point Code: Number of digits to be typed before decimal

point is typed,

Digits to be Printed Code: Total number of digits to be typed,

INVERSE FLAG: _ Determined which ratio circuit was used

to calculate calibrat ion factor (set in

Range Test OlDO) . If the flag is set, a different printout routine is used.

The first two codes above were set in the OlDO Hexidecimal-to-Decimal

routine for Test Accelerome ter Sensitivity. From TTY Printout routine, the

program branches to 0B50 to test for STABLE /UNSTABLE condition.

TTY Printout

ODAO DEIO 09B2 PUT TTY IN WRITE MODE

0DA4 4180 OEEC BAL TO WAIT

0DA8 DA 10 0E5C OUTPUT SPACE

ODAC 4 180 OEEC WAIT

ODRO DA 10 0F5C OUTPUT SPACE

CDE A 41PC OEEC WAIT

0DP8 9A lA OUTPUT FIRST DIGIT

ODBA 0200 NOP

ODBC 4 180 OEEC WAIT

ODCO 9A IB OUTPUT SECOND DIGIT

0DC2 0200 NOP

0DC4 4180 OEEC WAIT

0DC8 4820 01A6 LOAD DEC. PT. CODE

ODCC C520 0002 IS IT 2?

4-53
ODDO 4330 ODEO

0DD4 4300 0E20

0DD8 4 190 0EF6

ODDC 4300 ODEC

ODEO 4190 0EF6

0DE4 4180 OEEC

ODE 8 9A1C

ODEA 02.00

ODEC 4180 OEEC

ODFO 9A ID

0DF2 0200

0DF4 4820 01A8

0DF8 C 5 2C 0005

ODFC ^230 CEIO

OEOO 4180 OEEC

0E04 4200 0000

0E08 4200 0000

OEOC 9A1E

OEOE 0200

OEIO C870 OOOF

0E14 4180 OEEC

0E18 4300 05B0

OEIC 0000

OEIE 0000

IF SO, BRANCH

30 CHECK FOR INVERSE FLAG

OUTPUT DECIMAL PT.

BRANCH

OUTPUT DECIMAL PT.

WA I

T

OUTPUT THIRD DIGIT

NOP

WAIT

OUTPUT FOURTH DIGIT

NOP

LOAD # DIGITS TO BE PRINTED CODE

IS IT 5 ? BRANCH ON NOT -

WA I T

NOP

NOP

OUTPUT FIFTH DIGIT

NOP

LOAD OSC, DEVICE ADDRESS

WAIT

LOOK FOR STABLE/UNSTABLE FLAG

4-54
0E20 4820 09EE

0E24 C 5 20 0000

0E28 4330 0E4C

0E2C 9A1C

0E2E 0200

0E30 4180 OEEC

0E34 9A1D

0E36 0200

0E38 4 180 OEEC

0E3C 9A1E

0E3E 0200

0E40 4 180 OEEC

0E44 4190 0EF6

0E48 4300 0E18

OE 4C 9A 1

C

0E4E 0200

0E50 4300 0DD8

LOAD INVERSE FLAG

IS IT NOT SET ? BRANCH ON -

OUTPUT THIRD DIGIT

NOP

WAIT

OUTPUT FOURTH DIGIT

NOP

WAIT

OUTPUT FIFTH DIGIT

NOP

WAIT

OUTPUT DECIMAL PT

,

EXIT

OUTPUT THIRD DIGIT

NOP

RETURN

4-55
4.19 Table of Defined Constants

0E58 FOOO 0000

0E5C AOAO 0000 SPACE, SPACE

0E60 8700 0000 BELL

0E64 FOOO 0000

0E68 FOOO 0000

0E6C FOOO 0000

0E70 FOOO 0000

OE 74 FOOO 0000

DELAY ROUTINE FOR FREQ. COUNTER

CLEAR RB

NOP

ADD 1 TO RF

COMPARE COUNTER TO DESIRED LIMIT

IF NOT EQUAL, ADD ONE MORE TO THE COUNT

RETURN

DEFINED CONSTANTS

E8C 0064 CUT OFF FREQ. CODECPROG. SETS THIS VALUE)

0E8E 0094 CUT OFF FREQ. CODE FOR SHAKER 2

0E90 0064 CUT OFF FREQ. CODE FOR SHAKER 1 0E92 FOOO 0000

0E96 FOOO 0000

4-56

0F7P OPPP

0F7A 4200 0000

0E7E CAPO 000 1

OF 82 C5P0 0800

0E86 4230 OE 7E

0E8A 0309
SET: TTY

WRITE

ODAO

TYPE:

SPACE

SPACE

1ST DIGIT

2ND "

CI -DEC. PT. CODE

YES

LOAD

INVERSE

FLAG

TYPE:

DEC. PT. 3RD DIGIT

4TH "

TYPE:

3RD DIGIT

DEC. PT. 4TH DIGIT

0B50

FIGURE 4-6. TELETYPEWRITER PRINTOUT FLOW CHART

4-57
4.20 *Decimal-to-Hexidecimal Subroutine

Call on R9

Input requirements: Decimal number up to five digits in RO and Rl,

Ebcample : decimal number: 29345

(RO) = 0002

(Rl) = 9345

Output requirements: Four digit hexidecimal nuniier in R3.

Decimal-to-Hexidecimal Subroutine

(Call on R9 in on RO , Rl Out on R3)

0E9A 08F9

0E9C 085!

0E9E C450 FOOD

0EA2 0891

0EA4 0200

0EA6 C490 OFOO

OEAA C870 0064

OEAE CC90 0008

0EB2 OOP

7

0EB4 C830 03E8

0EB8 CC50 OOOC

OEBC 0C25

OEBE 0A39

OECO 0200

0EC2 0891

LOAD R9 INTO RA TO SAVE IT

LOAD DEC. # INTO R5 (LAST 4 DIGITS)

PICK OFF BITS 0-3

RELOAD DEC. #

NOP

PICK OFF BITS 4-7

LOAD 64

SHIFT R9 RIGHT 8 BITS

MULT THIRD DEC. DIGIT BY 64

LOAD 03E8

SHIFT RIGHT 12 BITS

MULT FOURTH DIGIT BY 03E8

ADD R3 AND R9

NOP

LOAD DEC. #

4-58
nFC4 C490 OOFO

0EC8 C870 OOOA

OECC CC90 0004

OEDO 0C87

0ED2 0A39

0ED4 0891

0ED6 C490 OOOF

OEDA 0A39

OEDC 0890 2710

OEEO 0C80

'JP o ^

0EE4 4030 OA 08

0EE8 030E

PICK OFF BITS 8-11

LOAD A

SHIFT RIGHT 4 BITS

MULT SECOND DIGIT BY A

ADD THIS TO SUM

LOAD ^DEC #

PICK OFF BITS 12-15

ADD THIS TO SUM

LOAD 2710

MULT FIFTH DEC. DIGIT BY 2710

ADD THIS TO SUM

SAVE HEX. #

RETURN

4-59
LOAD 2ND

DECIMAL NO.

PICK OFF

4TH DIGIT

PICK OFF

2ND DIGIT

PICK OFF

1ST DIGIT

LOAD

5TH DIGIT

RO: 5 R1: 4 3 2 1

SHIFT

RIGHT

4 BITS

MULT. BY

Ai6

SHIFT

RIGHT 12 BITS

MULT. BY

03E8,,

PICK OFF

3RD DIGIT

1

SHIFT

RIGHT

8 BITS

MULT. BY

1

MULT. BY

2710,

e

ADD

DIGITS

1,2,3,4,5

FIGURE 4-7. DECIMAL-TO-HEXIDECIMAL FLOWCHART

4-60
4.21 *Wait Subroutine for TTY

(Call on R8)

OEEC 9D19 SENSE STATUS OF TTY

OEEE 4280 OEEC IF BUSY SENSE AGAIN

0EF2 0308 IF NOT BUSY RETURN TO CALL

4.22 *Decimal Point Typeout

(Call on R9)

0EF6 0200

0EF8 4090 OFOE

OEFC 4180 OEEC

OFOO C830 OOAE

OF 04 9AI3

0F06 0200

0F08 4890 OFOE

OFOC 0309

OFOE ODDC

NOP

SAVE R9

WAIT

LOAD DEC. PT. CODE

OUTPUT DEC. PT.

NOP

RESTORE R9

RETURN

STORAGE

4-61
4.23 Storage Table for Exciter Calibration Factors (Hexi decimal)

This table stores the calibration factors for the current exciter

perforiaing a calibration. These hexidecimal numbers are stored in this

table by either START 1 (Section 4.13) or START 2 (Section 4.1A).

. Storage Table for Ejtciter Calibration Factors (Hexi decimal)

OF54

0F56

0F58

0F5A

0F5C

0F5E

0F60

0F62

0F64

0F66

0F68

0F6A

0F6C

0F6E

0F70

0F72

OFT A 0F76

0F78

0F7A

0F7C

0F7E

0F80

0F82

0F84

0F86

0F88

0F8A

0F8C

0F8E

0F90

0F92

0F94

0F96

0F98

0F9A

0F9C

07D4

07D4

07D4

07D4

07D4

07D4

07D4

07D4

07D4

07D4

07D3

07D6

07D8

07DA

07DC

07DD

07E2

07E4

07E7

07E7

07E7

07EE

07ED

07D2

07D4

07D6

07D8

07DB

07DF

07E4

07E9

07EF

07F5

07FC

0803

08 OB

0813

4-62
4.24 Shut Off Oscillator, Ring Bell, Start Over

This routine shuts off the oscillator and rings the teletypewriter

bell five times to indicate an end of test. The program is routed here

after the last frequency test point in the Data Block has been completed

or after a STOP command has been entered on the TTY.

Shut Off Oscillator, Ring Bells, Start Over

0F9E C8 1 0

n rv o

Or F\ Z L»c 1 U PUT rUi TTY ill TKl IN WPwnlir T T F f^TlDF iiUUC.

Ur A b

/s o n n ^ u u UUUU IN ur

Of A A OBZZ PI C A D DO

Or A C

n A "7 n uA f U

r\f* 7A UL 'A TiiPM lUnW OFF urr n<;rTi woL<iL,L,Hi<jn i ator

Or B 0

n A T n

OFF 4 D A 7 n OC 7C

Ur D r n A "7 o LA / . J UL f U

Or b L ^ I r

'

n r C" r CFWcrr c;TATIl<^ IIF TTY

OFCO DA 1 0 0E60 r 1 Nu rt LL

CFC^ 4 1 PD OEFG s s

OFCg DA 1 0 or6o PING BELL

OFCC• 4 IPO OEFC S S

CFDO DA 1 0 0F60 PING BELL

0FD4 4 no 0E78 DELAY

OFDg A IPO OEEC S S

OFDC DA 1 0 0E60 RING BELL

OFEO 4 180 OEEC S S

4-6 3
0FE4 DA 10 0E60

0FE8 4 180 OEEC

OPEC DA 10 09B5

OFFO OBFF

0FF2 OP 6 6

0FF4 4060 09C4

0FF8 C200 OFFC

OFFC 0000

OFFE 01 DO

RING BELL

S S

OUTPUT LINE FEED TO TTY

CLEAR RF

CLEAR R6

CLEAR STORAGE AREA OF CAPACITOR CODE INDES

LPSW

DISABLE INTERUPTS CODE

TRANSFER TO RANGE TEST

1000 FFFF FFFF

1004 FFFF FFFF

1008 FFFF FFFF

lOOC FFFF 0200

4-64
4.25 *Delay for DVM Subroutine

Call on R2

This subroutine is used by the Read Data Subroutine CSection 4.39).

Its purpose is to delay the sequential Read instructions of the computer.

It was found that without this delay between Read instruction, errors would occur in the recorded data. This was due to timing differences

(supposedly) between the DVM and the computer.

*Delay for DVM Subroutine (Used by DVM Read Program)

lOOE 0200

1010 OEBB CLEAR RB

1012 CABO 000! ADD 1 TO RB

1016 C5B0 0100 COMPARE RB TO 0100

lOlA 4230 1012 IF NOT : GO ADD I TO RB

lOlE 0302 RETURN TO CALL

>

4-65
4.26 Halt, Stop, or Continue

After the completion of each test point, this routine checks for any 1 operator input to the teletypewriter. This routine allows the operator

to type an S or H after the frequency has been typed. This is read and

stored in core. This routine checks this and alters the direction of the ' program accordingly.

S: STOP The STOP commaxid halts the program, leaves the exciter

energized, and waits for an execute by the operator.

When the execute button is pushed, the program is j started over at the first test point in the Data Block. •

H: HALT The HALT command halts the program, leaves the exciter I energized, and waits for an execute by the operator.

When the execute button is pushed, the program is

started at the next test point in line to be executed.

Any character other than H or S is presently ignored by the program. This

can be expanded to include other interactions with the operator and conqjuterJ

For example, a command could be given to go back one or two test points and

repeat them. I

Halt

,

Stop, or Continue (Comes Here from 0E12)

1020 C830 0002 LOAD TTY DEVICE ADDRESS INTO R3

1024 DE30 09B0 OUTPUT TO TTY: D I SA BLE .BLOCK , AND READ

1028 4200 0000 NOP

102C 0B88 CLEAR R8

102E 0200 NOP

1030 9D34 SENSE STATUS OF TTY INTO R4

1032 0844 LOAD R4 TO SET CONDITION CODE

1034 4330 1 044 IF ANY INPUT GO TO READ

1038 4890 09C2 LOAD ANY TTY DATA TAKEN AFTER FREQ. PRINTOUT

103C 4080 09C? CLEAR OUT STORAGE AREA FOR TTY DATA

1 040 4300 1046 GO TO TEST FOR H OR S

4-66
104 4 9E3Q

1046 C590 0048

104A 4350 1062

104E C 5 90 0053

1052 4330 1076

1056 4300 106E

105A FOOO 0000

105E 0B66

1060 0200

1062 C200 1066

1066 gOOO 08AE

106A FFFF

1060 FFFF

106E C200 1072

1072 0000

1074 08AF

1076 0B66

1078 DE30 09B2

1070 DA30 0985

1080 0813

1082 4180 OEEC

1086 C200 108A

108A 8000 0FA6

READ DATA FR OK TTY

IS IT H7

IF SO, GO TO HALT ROUTINE

IS IT S?

IF SO, GO TO STOP ROUTINE

IF NEITHER, CONTINUE

CLEAR R6 TO START AT FIRST TEST FREQ,

NOP

LPSW

RETURN TO 08AE AND STOP

COPIES HERE IF INPUT IS NEITHER H OR S

LPSW

DISAFLE INTERUPTS AND GO TO 08AE

STOP ROUTINE **** CLEAR R6 TO START OVER

PUT TTY IN WRITE MODE

WRITE DATA TO TTY LINE FEED

LOAD R3 INTO Rl (TO PUT DEVICE ADDRESS IN Rl)

BAL TO WAIT FOR TTY

LPSW

DISAPLE INTERUPTS, STOP AT OFAC (RING BELLS, ETC.)

4-67
SET TTY:

READ

1020

NO

input;>

YES

LOAD

PREVIOUS

TTY DATA

YES

GO TO NEXT

DATA FT. WAIT FOR

EXECUTE

I08AE)

YES

CONTINUE

WITH NEXT

TEST PT. (08AE)

CLEAR

FREQ

INDEX

SET TTY:

WRITE

READ TTY

OUTPUT:

LINE FEED

I

WAIT FOR

EXECUTE,

START OVER

(0FA6)

FIGURE 4-8. HALT, STOP, OR CONTINUE FLOWCHART

4-6 8
4.27 *Constant Acceleration Closed Loop Control Subroutine

Call on R4

This is a closed-loop control of acceleration level. The standard

accelerometer voltage output is read by the DVM and compared to column 6

(exciter 2) or column 8 (exciter 1) of the 1400 Data Block. These column

give the desired voltage levels for the test point. Any deviation of

standard accelerometer voltage from desired level over one millivolt

triggers the program to trim the oscillator to obtain the desired value.

An upper limit is set on the number of trimming operations to prevent an endless loop in case the desired value cannot be obtained. The trimmed

oscillator voltage is stored in the DATA BLOCK at column 4 (exciter 1) or column 3 (exciter 2)

.

*Constant Acceleration Closed Loop Control

1 OFO OF PPv_ CLEAR R8

1 n F? 4080 09C6 STORE 0000 IN LOOP COUNTER

10F6 4040 09DE SAVE R4

lOFA 41E0 06D8 BAL TO SAVE REGISTERS

lOFE 0200 NOP

1 100 0B88 CLEAR R8

1 102 obbb CLEAR RB

1 104 CABO 0001 ADD 1 TO RB

1 ICF C360 0004 COMPARE R6(INDEX COUNTER) TO 4 (

1 ICC 4350 1118 IF : , GO TO 10 HZ. PROGRAM

1110 4500 1 3CC GO TO SET SPEED OF DVM READINGS

1 114 4300 I 1 10

1 1 le C5B0 0500 COMPARE COUNTER OT 0500

11 IC 4230 1 104 IF NOT : CONTINUE COUNTING

1 120 CA8C 0001 ADD 1 TO Re

4-69
1 124 DE30 0825 OUTPUT CONVERT DVM

1 128 C580 OOOA HAS THE DVM TAKEN 10 READINGS?

I2C 4230 1 102 IF NOT, GO READ ANOTHER TIME

130 9F8S CLEAR INTERUPTS

132 4300 1 146 BRANCH

136 FOOO 0000

I3A FOOO. 0000

13E FOOO 0000

142 FOOO 0000

146 9F95 ACKNOWLEDGE INTERUPTS

148 0539 IS IT THE DVM?

1 4A 4330 1 152 IF SO CONTINUE

14E 4 300 1 146 IF NOT, GO BACK TO AIR

152 0B77 CLEAR R7

READS VOLTAGE INTO COFE, ROUNDS OFF

TO NEAREST MV, LEAVES OPS. MV. IN RI

154 4 20 0 0000 NOP

158 C890 0005 LOAD BXLE LIMIT REGISTER FOR READING

15C C8B0 0001 LOAD BXLE INCREMENT REGISTER

160 De37 1 29C READ DATA INTO CORE STARTING AT 129C

164 4120 1010 DELAY

168 C170 1 160 BXLE

16C 4200 0000 NOP

170 4200 0000 NOP

174 D3A0 129D LOAD FIRST DIGIT OF DATA INTO RA

1 78 D3B0 129E 2

• ND RB

4-70
I 1 7C C3C0 1 29F 3

' RD RC

1 180 D3D0 1 2 AO A TH RD

1 184 D3 EO 1 2 Al 5 TH RE

1 1 88 4 190 1 300 BAL TO ROUNDOFF ROUTINE

1 18C OB 1 1 CLEAR Rl

1 1 8E OBOO CLEAR RO

1 I "^0 93 1 A LOAD FIRST DIGIT INTO Rl

1 1 92 C4 1 0 COOF PICK OFF' BITS 12-15

1 196 CDIO OOOC SHIFT LEFT 12 BITS

1 1 9A OBOO CLEAR RO

1 1 9C 0200 NOP

• 1 or

! I 9t 0o2B LUAU c NU Ulbil

1 1 AO C420 OOOF PICK OFF BITS 12-15

1 1 A4 CD20 0008 SHIFT LEFT 8 BITS

1 1 A8 OA 1

ADD FIRST AND SEC. DIGIT, PUT INTO Rl

I 1 A A 93 3 C LOAD 3 RD DIGIT INTO R3

I 1 AC C430 OOOF PICK OFF BITS 12-15

ft 1 n r\

1 1 BO CD3C 0004 SHIrT LErT 4 BITS

1 IB4 0A13 ADD ON 3*RD DIGIT TO Rl

GETS DESIRED MV FROf^ TABLE , CALCULA TES

CALCULATES FOR OSCILLATOR

11B6 CCIO 0004 SHIFT RIGHT 4 BITS (MV OES. NOW IN R

1 ISA OfiBB CLEAR R8

1 1 BC C8A0 0002

IICO 4190 0E9A

LOAD 2 INTO RA

BAL TO CONVERT OBS. VALUE TO HEX. (BACK IN R3)

4-71
1 1 C4 48C0 09C4 LOAD TABLE OF VALUES INDEX INTO RC

1 I C8 4&P0 09C0 LOAD SHAKER FLAG (ADDRESS OF TABLE) INTO RB

1 1 CC CABO 0002 ADD 2 TO THIS ADDRESS TO GET MV LOCATION

1 1 DO CBCO 00 10 SUBTRACT 10 FROM RC TO GET CORRECT INDEX

1

1

!I 04U N 4OR0 1 1 DA STORE MV. TABLE ADDRESS BELOW

I 1 UC i1 40"i w Ari LOAD MV. DESIRED INTO Rl

1 I DC 084 3 LOAD OBS. VALUE(HEX.) INTO R4

1 IDE CB60 0004 SUBTRACT 4 FRON INDEX

1 ! E2 4 I 90 0E9A BAL TO CONVERT DES. VALUE TO HEX.

! 1E6 0823 PUT MV. DESIRED IN P2 (HEX.)

1 t VP OP 9 A MV. DESIRED-MV. OBSERVED ^AMV.

l 1 C H u C. u u NOP

1 1 EC CB20 0001 SUBTRACT i FROMAMV.

! I FO 4320 1 2AC IF NOT PLUS GO TO TEST FOR 0

1 1 F4 4 \J300SJ 1 284 GO TEST LOOP COUNTER FOR MAX. NO. OF TRIES

8 s r o \1 *J3F4l L "f BAL TO CALCULATE AV FOR OSCILLATOR (OUT ON R5 )

! 1 FC 48 1 0 09C0 LOAD SHAKER FLAG

\ 9 no C5 1 0 '• 408 "i W t-J IS IT SHAKER 2?

1 204 4330 1210 IF SO, BRANCH

1 208 48 1 C I 406 LOAD OSC. VOLTAGE INTO Rl

I 20C 4300 1214 BRANCH

1210 48 1 C 1 404 COMES HERE FOR SHAKER 2 LOAD OSC. VOLTAGE T N

J 2 1 4 405 0 09CA STORE R5 (AV FOR OSCILLATOR)

! 2 1 P 4080 ^ \J \J \J C9C6 STORE LOOP COUNTER

121C A 1 90 0E9A BAL TO CONVERT VOLTAGE (OLD) TO HEX.

1220 4850 09CA RESTORE R5 (AV FOR OACILLATOR)

p- 4-72
CALCULATES CORRECTED VOLTAGE FOR

OSCILLATOR, OUTPUTS CODE TO OSC

1224 CD30 0004 SHIFT LEFT 4 PITS

1228 0A35 ADD AV TO OLD VOLTAGE VALUE

122A 0200 NOP

122C CC30 0004 SHIFT RIGHT 4 BITS

1230 4 190 1370 BAL TO CONVERT NEW VOLTAGE TO DECIMAL (BACK IN RZ)

1234 4810 09C0 LOAD SHAKER FLAG

1238 C5 10 1 408 IS IT SHAKER 2

123C 4330 1248 IF SO GO TO 1248

1240 4C2C 1 406 STORE OSC CODE IN TABLE

1244 4300 124C BRANCH

1248 402C 1404 COMES HERE IF SHAKER 2, STORE OSC CODE IN TABLE

124C 4190 1 6C0 PAL TO CONVERT TO ORIGINAL OSC. CODE FORMAT

1250 C870 OOOF LOAD OSC DEVICE NO.

1254 0P22 CLEAT ^?

125 6 OPAA CLEAR PA

1258 9D75 SENSE STATUS

125A 0552 IS OSC. BUSY?

125C 4230 1258 IF SO, SENSE AGAIN

1260 DA76 0C8C WRITE DATA TO OSC.

1264 CA60 0001 ADD 1 TO INDEX REGISTER

1268 CAAO 0001 ADD 1 TO RA

126C C5A0 0004 HAVE 4 BYTES BEEN WRITTEN?

1270 4230 125A IF NOT, WRITE AGAIN

1274 4200 0000 NOP

4-73
1278 C830 OOCA

127C 4 500 1 100

1280 4300 12C4

1284 CA20 0001

1288 4880 09C6

LOAD DV(*i DEVICE ADDRESS

GO READ VOLTAGE AGAIN

GO TO RESTORE R4 AND EXIT

ADD ONE TO R?(TO RESTORE TO ORIG. VALUE)

LOAD LOOP COUNTER

128C CA60 0001

1290 0580 0020

1294 4330 12BC

1298 4300 1 I Fe

129C ABBl B4B0

12a0 B1B3 OBll

12A4 0000

12A6 0000

12A8 FOOO 0000

12AC 4350 12BC

12B0 C52C FFFF

12B4 4330 12BC

1288 4300 I 1 F4

12BC CA60 0004

I2C0 4300 1280

12C4 4840 09DE

12C8 0304

LOOP COUNTER TEST.Af^^V TESTED FOR

-1 CONDITION, PREPARE TO LEAVE SUP.

ADD 1 TO LOOP COUNTER

COMPARE TO UPPER LIMIT

IF = , GO TO EXIT

GO BACK TO CALCULATE A MV.

STORAGE FOR VOLTAGE READINGS OF DVM

IF At*lV. =0 EXIT

COMPARE A MV. TO - 1

IF EXIT

IF NOT, CONTINUE

COMES HERE IF LOOP COUNTER IS IN LIMIT

ADD 4 TO INDEX

GO TO EXIT

RESTORE R4 (BAL REGISTER FOR THIS SUBROUTINE).

EXIT (RETURN TO CALL) I

4-74

4.28 *Scope Scaling Subroutine

Call on RA

This subroutine permits a relay (relay 16) in bank. 1 to close and

thereby activating the "seek" feature of the oscilloscope. This seek

feature triggers the scope and automatically sets the time base and

amplifier units for a constant display of number of cycles and amplitude

of the display^

In this subroutine, the relay closes and opens twice. This is

necessary sometimes because the first closing may not get a proper

triggering.

Scope Scaling Subroutine

12D0 Cg20 OOEO LOAD RELAY CODE FOR RATIO I (RATIO

12D4

12D8

C800

CA40

00 71

0001 .

LOAD RELAY BANK 1 DEVICE ADDRESS

(RATIO II PROG. ENTERS HERE)

ADD 1 FOR SCOPE RELAY

I 2DC 9A 02 WRITE DATA TO RELAY BANK 1

12DE 9A04

12E0 4 190 0E78 DELAY

12E4 C840 0000 LOAD RELAY CODE TO DEACTIVATE SCOPE

12E8 9A02 DEACTI VATE SCOPE RELAY

12EA 9A 04

12EC 4 1 90 OF 7p DELAY

12F0 C840 0001 LOAD CODE TO ACTIVATE SCOPE RELAY

\2FA 9A02 ACTIVATE SCOPE RELAY

I2F6 9A04 ft

12F8 4 1 90 OF 78 DELAY

12FC 030A RETURN TO CALL

12FE 0B9A

HERE )

A-76
4.29 *Rouncl Off Subroutine (for Constant Acceleration)

Call on R9

This subroutine takes a five digit number (base ten) in registers

RA, RB, RC, RD, RE and rounds the number to a four digit number in

registers RA, RB , RC , RD. This subroutine is used in the Constant

Acceleration routine (Section 4.27).

*Round Off Subroutine

1300 C4A0 OOOF PICK OFF BITS 12-15 CF RA

1304 C4B0 OOOF RB

1308 C4C0 OOOF RC

130C C4D0 OOOF

tt RD

1310 C4E0 OOOF

fff RE

1314 CBDO 0005 SUBTRACT 5 FROM RD

131? 4220 1320 IF PLUS GO TO 1320

131C 4210 1354 IF MINUS GO TO 1354

1320 Or Co 0009 SUBTRACT 9 FROM RC

1324 4210 1350 IF MINUS GO TO 1350

1328 C3B0 0009 SUBTRACT 9 FROM RE

1320 4210 1344 IF MINUS GO TO 1544

1330 4 200 0000 NOP

135 4 CAAO 0001 ADD 1 TO RA

1338 C8P0 0000 LOAD C INTO RF

135C C8C0 0000 LOAD 0 INTO RC

1340 4300 1354 GO TO 1354

4-77
liAA CABO OOOA

1548 C8C0 0000

134C 4300 1354

1350 CACO OOOA

1354 4200 0000

1358 0309

ADD A TO RE (1 PLUS 9 THAT WAS SUBTRACTED)

LOAD 0 INTO RC

GO TO 1354

ADD A TO RC

NOP

RETURN TO CALL

4-78
4.30 *Hexidecimal-to-Decimal Subroutine

Call on R9

Input requirements: Hex! decimal number in R3.

Output requirements: Up to four digits decimal nunijer in R2

.

Haxidecimal- to- Decimal Subroutine

Converts a Four Digit Hex Number to a Decimal Number In on R3, Out on R2

1370 C880 03 E8 LOAD 03Ee INTO R8

1374 0850 0064 LOAD 0064 INTO R5

1378 C870 OOOA LOAD OOOA INTO RA

137C 0E22 CLEAR R2

137E 0D28 DIVIDE 'HEX NO. BY 03E8,QU0T IN R3, REM.

1380 08A3 PUT QUOT. IN RA (I'ST DECIMAL DIGIT)

1382 0832 PUT REM. IN R3

1384 0B22 CLEAR R2

1386 0D25 DIVIDE THIS BY 64

1388 08B3 PUT OUOT IN RB (2*ND DIGIT)

138A 0200 NOP

138C 0832 PUT REM. IN R3

138E 0200 NOP

1390 0B22 CLEAR R2

1392 0D27 DIVIDE THIS BY A

1394 08E3 PUT QUOT. IN RE (3'RD DIGIT)

1396 08D2 PUT REM. IN RD (4*TH DIGIT)

1398 CDAO OOOC SHIFT RA LEFT 12 PITS

4-79
139C CDBO 0008

15A0 CDEO 0004

OAAB

I3A6 OAAE

I3A8 OAAD

13AA 082

A

13AC 0309

SHIFT RE LEFT 8 BITS

SHIFT RE LEFT 4 BITS

ADD RB TO RA

ADD RE TO RA

ADD RD TO RA

LOAD RA INTO R2

RETURN TO CALL

4-80
1370

HEX NO.

03E8

I

REMAINDER

0064

QUOT.

1ST DIGIT

i

REMAINDER

OOOA

QUOT.

= 2ND

REMAINDER 4TH DIGIT

1

DIGIT 12

3

4

SHIFT LEFT 12 BITS

8

"

4

"

0

"

t

ADD DIGITS

1,2,3,4

EXIT

DECIMAL NO.

FIGURE A- 10. HEXIDECIMAL-TO-DECIMAL SUBROUTINE FLOWCHART

4-81
Note

4.27(con't) ^Constant Acceleration Closed Loop Control

Speed Set For DVM

The following is part of Section 4.27, Constant Acceleration Closed

Loop Control.

13CC C560 OOlC

13D0 4320 I3DC

13D4 C5B0 0020

13D8 4300 1 I

U

13DC C3B0 0200

13F:0 4300 1\IA

FRFQ: 200 HZ.

BRANCH ON NEG . (<200 HZ.

)

COMPARE COUNTER TO UPPER LIMIT

RETURN TO MAIN PROG.

COMPARE COUNTER TO UPPER LIMIT FOR F<200 HZ

RETURN TO MAIN PROG.

A- 82
4.31 *Calculate Delta V Subroutine

Call on R9

This subroutine is used by the Constant Acceleration Control

subroutine (Section 4.27) to calculate the trinnnlng voltage for output

to the oscillator. At present, the delta millivolt of the standard

accelerometer is multiplied by a constant to trim the oscillator to

approximately 70 percent of the desired value.

From figure 1-1, it can be seen that approximately two volts is

needed for an acceleration of 10 g on exciter 2. A typical value for the

standard accelerometer voltage output is 140 mV for one NBS exciter and

70 mV for another exciter at 10 g. For the 140 mV exciter, a change of

14 mV of oscillator voltage will produce one millivolt change in

accelerometer voltage. The equation used to compute the trim voltage

for this exciter is;

Delta V -= Delta mV-(lO)

where Delta V: amount of trim voltage for oscillator, and

Delta mV: millivolt standard accelerometer differs from desired

value

.

For the 70 mV exciter (10 g) the equation vised is:

Delta V- Delta mV-(8).

The constant in these equations will vary with the exciter being used in

the system and the power amplifier gain. A value for this constant should

be used to trim the voltage output of the oscillator from 60 to 80 percent

of the desired difference per cycle so as not to overshoot the final

desired value.

Calculate Delta V Subroutine

CP53 GOOA LOAT A

13Ef 0 DELTA rV*A LQAO r.V^^FI3EC C9C0 C5aO IF IT SHAKE- 21

13FC 1 40^

1 ^F? ^^3 0 ! 3FC IF "OT F'^'JAL, E = A"CH

\}Tf C"5 0 OQor LOAD 8 INTO F

5

13 FA CC4^ EELT^ rv^8

13FC 03 C"^ 'ETL'-N , .

4-83
4.32 Data Block Control Constants (1400 Tables)

This table contains the control parameters for the test points.

Each row represents a test point and contains the frequency, oscillator

voltage for the first try, code for selecting the proper capacitance

match, and the desired millivolt output from the standard accelerometer.

This table is set up for two exciters, but could be expanded to contain

data for additional exciters that may be added to the setup. The code

for the capacitor match is explained in Section 4.15.1.

The program selects the test point corresponding to the data in the

first row. After completing this test point, the second test point

corresponding to the second row is processed, etcetera, until the last

test point is finished. Upon finishing the last test point, the program

starts over again at the first test point.

The data in columns 3 and 4 are updated each time a calibration is

run, as explained in Section 4.27.

4.33 *Voltage/Frequency Data Modified to Proper Oscillator Code

Call on R9

This subroutine converts the 1400 DATA BLOCK data columns 1, 2, 3, 4

which will program the oscillator. See Section 4.15.2 for a description

of the proper oscillator fonnat.

Input requirements: R6 must contain proper index number (in hexidecimal)

for the desired frequency. The index number is

four* (test point number). The test point number

. ' starts at zero and ends at N. In the present program

N = 38.

Output requirements: The properly coded output is stored in the Storage

Table for Oscillator Code (0C8C)

.

This subroutine is called for each test point processed. It does not

set up the entire 0C8C table with one call instruction.

4-84
Data Block Control Constants

Voltage Cap. mV. Cap. mV.

"*~ Exciter > Frequency 1 2 2 2 1

1

J.

1 1 1 1

1 H M 1 ' "1

1400 00 1

0

000 1 0029 0043 0001 0028 0001 0028

1410 0015 000 1 0071 0088 0001 0070 0001 0070

1420 W uo u 000 1 0147 0149 0001 0140 0001 0140

1430 0050 000

0155 0144 0001 0140 0001 01 40

1440 0099 700 1 0167 0155 0001 0140 0001 0140

1450 0099 700 1 0083 0076 0001 0070 0001 0070

1460 0099 700

0032 0029 0001 0028 0001 0028

1470 0199 700 1 01 75 0156 0001 0140 00A6 0140

1480 0299 5001 0187 0171 00A6 0140 0054 0140

1490 039Q 5 00 1 0185 0175 020A 0140 00A4 0140

14A0 049^^ 500

0187 0187 0002 0140 0208 0140

14B0 05 98 400 1 0188 0198 oocc 0140 0210 0140

14C0 0697 300

0191 0208 00E4 0140 0260 0140

14D0 0797 200 1 0191 0220 00C4 0140 0120 0140

14E0 0897 000 1 0193 0233 0204 0140 0420 0140

14F0 0 1 no 0002 \J \J \J 0191 0247 0088 0140 OOCO 01 40

15 00 014 9 9002 0194 0301 0060 0140 0080 0140

15 10 0169 9002 0196 0321 0120 0140 0900 0140

1520 0 199 90C? y \j \j 0200 0355 0020 01 40 1200 0140

1530 0 1 99 9002 0098 0172 0020 0070 1200 0070

1540 0 1 9^ 9002 0039 0069 0020 0028 1200 0028

1550 0249 7002 0197 0425 0440 0140 8 COO 01 40

1560 0299 7002 0206 0473 0080 01 40 4400 01 40

1570 0349 6002 0205 0000 4 100 0140 0000 0000

1580 039^ 6002 0208 0000 OAOO 01 40 0000 0000

1590 0449 1002 0214 0000 0200 0140 0000 0000

15A0 0499 0002 0214 0000 2C0O 0140 0000 0000

15B0 054P 9002 0219 0000 1400 0140 0000 0000

15C0 0598 9002 0262 0000 0400 01 40 0000 0000

15D0 0648 7002 0229 0000 0400 0140 0000 0000

15E0 0698 6002 0241 0000 2800 0140 0000 0000

15F0 0748 5002 0246 0000 4800 0140 0000 0000

1600 0798 4002 0274 0000 8800 0140 0000 0000

1610 0848 4002 0246 0000 8800 0140 0000 0000

1620 0898 3002 0270 0000 0800 0140 0000 0000

1630 0948 2002 0250 0000 0800 0140 0000 0000

1640 0998 2002 0259 0000 0800 0140 0000 0000

4-85
*Voltage/Frequency Data Modified to Proper Oscillator Code

16C0 C8B0 0004

16C4 0CA6

16C6 081B

16C8 4200 0000

tscc 4050 16F8

16D0 4850 09C0

16D4 C550 1408

16D8 4330 16E0

16DC 4500 16EC

16E0 4831 1405

[SKA 4841 1404

16E8 4300 1 700

16EC 4831 1407

16F0 4841 1 406

16F4 4300 1 700

16F8 00 72

16FA 0000

16FC 4200 0000

1700 4200 0000

1704 0200

1706 0200

1708 4200 0000

LOAD 4 INTO RB

R6*4 RESULT IN RA,RE

LOAD RB INTO Rl

NOP

STORE R5

LOAD SHAKER FLAG INTO R5

IS IT 2017

IF SO , GO TO 16E0

IF NOT, GO TO 16EC

LOAD VOLTAGE FROM TABLE INTO R3

BRANCH

LOAD VOLTAGE FROM TABLE INTO R3

BRANCH

STORAGE FOR R5

NOP

4-86
17CC 08A3 LOAD VOLTAGE INTO RA

170E 0200

1710 C4A0 OOFO MASK OFF 3'RD DIGIT (.1 VOLTS)

1714 CDAO 0008 SHIFT LEFT 8 BITS

1718 08BA LOAD VOLTAGE INTO RB

171A 08A3 LOAD VOLTAGE INTO RA

171 C 0200 NOP

171E C4A0 OOOF MASK OFF 4'TH DIGIT (.01 VOLTS)

1722 CDAO 0008 SHIFT LEFT 8 BITS

1726 OABA ADD THIS TO RB

1728 D3A1 1402 LOAD FREQ. INFORMATION INTO RA

172C C4A0 OOFO MASK OFF 3 'RD DIGIT ( . 1 HZ.

)

1730 OABA ADD THIS TO RB

1732 08A4 LOAD VOLTAGE INTO RA

1734 0200 NOP

1736 C4A0 OFOO MASK OFF 2*ND DIGIT (VOLTS)

173A CCAO 0008 SHIFT RIGHT 8 BITS

173E OABA ADD THIS TO RB

1740 40B6 0C8C STORE RB IN 0C8C (INDEX R6

)

1744 4200 0000 NOP

1748 4200 0000

174C 4200 0000

n ^ A 1 UO A

!

I 4 U 1

1 HAH C C r D TUCnD T kl T r> OA

1754 C4A0 OOFO MASK OFF 3*RD DIGIT (!0 HZ.)

1758 CDAO 0008 SHIFT LEFT 8 BITS

4-87
175C 08CA PUT THIS IN RC

175E D3A1 1401 LOAD SOME MORE CODE INTO RA

1762 C4A0 OOOF MASK OFF 4*TH DIGIT (1 HZ.)

1766 CDAO 0008 SHIFT LEFT 8 BITS

1 76 A OACA v n w n ADD THI<; TO RC

1 76C D3A1 1 403 LOAD MORE CODE INTO RA

I 770 C4A0 OOOF MASK OFF 4'TH DIGIT (MULTIPLIER)

1 774 CDAO 0004 SHIFT LEFT 4 BITS

1 778 OACA ADD THIS TO RC

1 77A D3A I 1 400 LOAD MORE CODE INTO RA

1 77E C4A0 OOOF MASK OFF 4*TH DIGIT ( 100 HZ.

)

1782 OACA ADD THIS TO RC

1 784 40C6 0C8E STORE RC IN 0C8E (INDEX R6

)

1 788 C870 OOOF LOAD OSC. DEVICE NO. IN R7

178C OBAA CLEAR RA

I ICC CLEAR RO

1 790 4850 16Fg RESTORE R5

1794 4200 0000 NOP

1 798 4200 0000

11 7Qr 1 7 U o w u nnnn

1 7A0 4200 0000

1 7A4 4200 0000

I 7 A8 4200 " (t-< w W 0000

17AC 4200 0000

1730 0309 RETURN TO CALL

NOTE**** NEW CODE NOW LOOKS LIKE THIS:

( .IV .OIV .IHZ IV 10 HZ IHZ

4-88
4-89
4.34 *Set Slow/Fast Code for ac/dc Converters Subroutine

Call on RE

This subroutine sets up the code for either slow (frequency <200 Hz) or fast mode (frequency equal to or greater than 200 Hz) for the ac/dc

converters. This mode is controlled by relay 7 (see Section 4.15.1). This

subroutine has two entry points, one if RATIO I is being taken and one if

Ratio II is being taken.

^

*Set Slow/Fast Code for ac/dc Converters Subroutine

Ratio I Program

17B 4 0B36

17B 6 0200

!7B8 CB30 OOlC

178 C 4220 I7C4

I7C0 4300 17CC

17C 4 C820 00E2

17C8 4300 17D0

17CC C820 OOEO

17D0 C830 OOCA

17D4 030E

17D6 0200

LOAD R6 INTO R3

NOP

SUBTRACT IC FROM R3 CICrCODE FOR 200 HZ .

)

BRANCH ON +

CONTINUE IN SLOW MODE

LOAD 'FAST* CODE INTO R2

BRANCH

LOAD 'SLOWCODE INTO R2

RESTORE R3

RETURN

4-90
PROGRAM FOR RII

17D8 0836

i7DA 0200

I7DC CB30 OOlC

I7E0 4220 17E8

I7E4 4300 17F0

I7E8 C820 00C2

17eC 4300 17F4

17F0 C820 OOCO

17F4 C830 OOCA

17F8 030E

LOAD R6 INTO R3

NOP

SUBTRACT IC FROM R3

BRANCH ON +

CONT. IN SLOW MODE

LOAD 'FAST* CODE INTO R2

BRANCH TO EXIT

LOAD 'SLOW CODE INTO R2

RESTORE R3

RETURN

4-91
4.35 Store Calibration Data in Tables

This routine stores the calibration frequency and sensitivity in core

as the test points are being performed. The locations set aside for this

purpose are

Exciter 1: 2C00-2E00

Exciter 2: 2E00-3000

The following examples illustrate the foirmat of the stored data.

0000 0010 1009 0002 10 Hz , 10.09 mV/g

0000 1500 99 88 0003 1500 Hz, 9.988 mV/g

The purpose of this storage is to transfer these data to magnetic tape for

storage at the end of a test. Additional storage space is set aside as shown in table 4-3.

The data starting at 2B00 are entered into the computer by the

Accelerometer Data Block Entry program (see Section 4.45). The data

from 2C00-3000 are stored as the calibration program steps through the

test points. The summary data starting at 3000 are read in by paper tape

or typed in on the TTY. The summary data are these which are reported in a calibration report. It includes all data used to make up a complete

calibration. Usually they are prepared by feeding all the data into a time-sharing computer program. This program combines the data by

averaging techniques to provide final output report data.

The interferometer data consist of data on three piezoelectric

exciters for each accelerometer calibrated. These data are kept on paper

tape. It is desirable to keep not only the final summary, but all the

data collected on the accelerometer on the magnetic tape files. These

data can then easily be recalled for future checking and comparisons.

Store Calibration Data in Tables

SAVE REGISTERS

BAL TO DECODE FREQ. DATA

NOP

LOAD FIRST DIGIT (CAL. FACTOR OF TEST)

SHIFT LEFT C BITS

LOAD 2* ND DIGIT

1800 41E0 06E0

1804 41E0 23FC

1808 0200

180A 081 A

180C CD 10 OOOC

1810 082B

4-92
1 Q 1 O I O 1 ^ U <sUU N Ur

I o 1 4 4ooU 1 nAH CTDCT CDCA t\ 1 n J t LuAU rlKbl PKtfJ, UIGIT

1 o 1 o

f*r\on UUUo SH I P T LtrT c BITS

t o 1 r*

1 1

r\a\r UcOL L UA U o nU Uluil

tote n o n n MAD Nur

1 820 CD30 0004 SHIFT LrFT 4 BITS

AUU Ann Dinl ANU Aun don<r

t o o c

I O ^ D Ufl I 0 Ann Di Awn ci

1 828 A c; o r\ LOAD 4 TH DIGIT

1 82A rv o n n MAD

1 O O O

1 82C OA 1 Z Ann TUT^ TA ADAtlC* r'llM ADD IHlb 10 ABOVt Sun

1 o o c r\ o A o ftl A D NOP

1 OOU Lo 4 U

1 AA n o LUA U c.

1 d5 4 no X c Uoo o

1 AAn CDCA TkinC"V^D^\ LOAD rKt-Q INDLaCHS)

1 836 r\ r\ r\ 0200 N OP

1 CO O

f\C O A 0C«c4 nUL 1 « BY 2

1 ooA U2UU ftl AD NOP

4890 O A cc 246t LOAD rnlQ, DIGITS 2-5

1 840 n o o A DC"I AAn CTDCT niPTT

U^UU lU AD IN ur

I O A A

1 844 4<d>50 toco CDAKir^U AW MAT A b n A NLn UN N 0 I U

I o4 o UU 1 0 0004 (nA-U; bnlrl Ltrl 4 Bllb

I84t AO on 4o^U n 1 A A 1 AA n n T r* T T LUA u U 1 u 1 1 J

1850 OA 12 ADD IT TO SUM

1852 0200 NOP

A-93
1854 4200 0000

185 8 4200 0000

1850 4200 0000

I860 4200 0000

1864 4200 0000

1868 4840 09F0

186C 4820 09C0

1870 C520 I40C

1874 4250 1 88C

1878 4013 2BFC

187C 4083 2BF8

1880 4093 2BFA

1884 4043 2BFE

1888 4300 18A0

188C 4013 2DFC

1890 4083 2DF8

1894 4093 2DFA

1898 4043 2DFE

189C 4200 0000

18A0 41F0 0720

18A4 4300 18FC

NOP

LOAD DEC. PT. CODEdELLS WHERE DEC. PT. IS LOCATED]

LOAD SHAKER ID

SHAKER 2?

IF NOT, BRANCH i STORE TEST CAL. FACTOR (FOR SHAKER 1)

STORE FREQ.

STORE DEC. PT. CODE

BRANCH

STORE TEST CAL. FACTOR (FOR SHAKER 2)

STORE FREQ. DATA

STORE DEC. PT. CODE

NOP

RESTORE REGISTERS

GO TO DEC/ASCII ROUTINE ^

4-94
TABLE 4-3.' Data File Format

2900

Interferometer fringe disappearance data

2'^°

2 4 5 8 A C E

* ********

2B00 /file number/test number / xxx /

2B10 /pickup mfgr. /pickup s.n /

2B20 /pickup model nunijer / xxx /

2B30 /amp. mfgr. /amp. s.n. /

2B40 /amp. model number / xxx /

2B50 /customer /

2B60 /date of calib /exciter 1/excitcr 2/xxx /

2B70 /std. 1 /std. 2 /capacitance /

2B80 gain

II 2BF0 "

2C00 Exciter 1 data

2DF0 "

2E00 Exciter 2 data

• II

2EF0

3000 Sunmiary Data (data reported in a calibration)

•

31F0 "

4-95
4.36 Decimal to ASCII Routine (5 digits)

This routine converts five digits of decimal code to five digits

of ASCII code. This routine utilized siibroutine Section 4.37.

Decimal to ASCII Routine (5 digits)

(In/Out on RA, RB , RC , RD, RE)

IPFC ^^FO Ol^A

1 900 OPOA

1902 0200

1904 4190 1954

1908 0FA2

190A 0200

190C 080P

190L 0200

1910 4 1 90 1 954

1914 0RB2

1916 OPOC

191? 4 190 1^54

I^IC 0PC2

19 IE OP or;

1920 4190 1^54

1924 08D2

1926 080F

1928 4190 1954

1920 08E2

FFSTOFF^ FIFTH DIGIT

LOAD FIRST HEX. *

PAL TO ASCII CONVFFT

PUT ASCI 1 INTO RA

'

SAf^E FOP 2 'ND *

SAf^E FOR 5 'RD

SAME FOR 4 'TH

SAME FOR 5 'TH

4-96
192E 0200

1930 C8I0 0002

1934 9D15

1936 0S55

1938 4330 1940

193C 4300 ODAO

1940 9B19

1942 4090 09C2

1946 4300 ODAO

194A 0200

LOAD TTY device: ADDRESS

SENSE STATUS OF TTY

LOAD TO SET CO

BRANCH ON ZERO

BRANCH TO PRINTOUT

READ TTY

STORE DATA

BRANCH TO PRINTOUT

4-9 7
4.37 *Decimal -to-ASCII Subroutine (1 Digit)

Call on R9

This subroutine converts a one digit decimal number to ASCII code.

Input requirements: decimal number in RO

Output requirements: ASCII code in R2 ^ \ .

*Decimal/ASGII Subroutine (1 Digit)

194C 4200 0000

195 0 A200 0000

1954 081 0 LOAD

1956 0200

1958 CSl 0 0009 R

1 -9:R

1

195C 4 220 1 968 BRA NCH ON +

19 60 C600 OOBO OP

1964 0820 LOAD

1966 0309 RETURN

196P C6 1 0 OOCO OR, MUST EE ALPHA CHAR.

196C 0821 LOAD

196E 0509 RETURN

4-9 8
NO

194C

YES

1

MUST BE

ALPHA

DEC. NO.

LOGICAL OR

WITH BO '

I

DEC. NO. -9

LOGICAL OR

WITH CO

FIGURE 4-12. DECIMAL TO ASCII FLOWCHART

4-99
4.38 Check for Correct Range of Signal ac/dc Converter

This routine checks Ratio II for all nines (out of range) and if this

condition if found, the code for the relays is set to program the signal

converter for 10-volt range. The RANGE FLAG is set for OOOA: the THRU FLAG

is set for 0001. The THRU FLAG is set to indicate that this routine has

been executed once and should not be repeated on the next pass for this

test point. If the converter is set for 10-volt range, the program is

transferred to read Ratio II again; if the one-volt range is sufficient,

the program continues with the calculation of the test accelerometer

sensitivity (OADC) in Section 4.16.

Check for Correct Range of Signal ac/dc Converter

19A0 4300 19E8 BHANCH 10 UHhUK IHKU hLAli"

19A4 C5B0 2710 ALL 9*S (DEC) IN RII7

19A8 4230 19C0 BRANCH ON NOT =

19AC C840 0004 LOAD CODE FOR 10 VOLT RANGE

19B0 C810 OOOA LOAD 10 VOLT RANGE FLAG

19B4 4010 09E4 STORE FLAG

19B8 C800 0071 RELOAD RELAY BANK 1 DEVICE ADDRESS

19BC 4300 19D8 BRANCH

I9C0 C8'i0 0001 SET FLAG FOR I VOLT RANGE

19C4 4010 09E4 STORE RANGE FLAG

19C8 C810 0000 LOAD 0000

19CC 4010 09EA STORE "NOT THRU^FLAG

19D0 4200 0000 NOP

19D4 4300 OADC CONTINUE WITH MAIN PROG.

19D8 C8C0 0001 RESET RATIO MODE CODE FOR DVM

I9DC C810 0001 LOAD 0001

19E0 4010 09EA STORE "THRU" FLAG

4-100
19E4 4500 19F8 RETURN

19E8 4810 09EA LOAD "THRU'TLAG

19EC C5I0 0001 HAVE I BEEN HERE BEFORE?

19F0 4230 19A4 BRANCH IF NOT TO CHECK FOR OVERANGE C0ND.(9999)

19F4 4300 OADC HAS BEEN THRU, BY PASS THIS ROUTINE

19F8 41E0 17D8 BAL TO FAST/SLOW ROUTINE FOR CONVERTERS (FIXES UP R2)

19FC 4300 OAPO RETURN

4-101
A-102
4.39 *Multlple Readings (DVM) and Digital Filter Subroutine

Call on R9

This subroutine handles the actual data collection by the DVM. The

first part of the subroutine sets up the timing delays for the frequency

ranges . The three ranges are

10 Hz Typical delay constant = 3000 (1A36)

10<F<100 " " " = 500 (1A2E)

F>100 " " " = 100 (1A3E)

This delay allows for settling time for the exciter and also for the

ac/dc converters. The larger the constant, the longer the delay.

COUNTER 1 counts up to the delay constant before a ratio is read by the

DVM.

After the timing delay is set up, the program executes three output

convert instructions. An output convert instruction triggers the DVM to

take a reading but does not read the data into core. The reason for

executing these initial output convert instructions is to take care of

any transient signals that may occur because of the switching circuitry.

These readings are not saved and do not enter into the subsequent

calculations.

COUNTER 2 keeps track of the number of ratio readings in the

subroutine. Starting with reading number four, the data are stored in a table. Beginning with reading number five, deviations are calculated

as shown in the acconqjanying flow chart (see figure 4-13) . As can be

seen from this flow chart, deviations are calculated from the current

ratios as follows;

delta R . - R^_^

The reason for going three readings back to calculate the deviations is

to catch any slow drift in the system. Since a decision on whether or not to accept a series of readings is based on the percentage deviation

of the readings, a slow drift in the readings would not be detected if

the deviations were based on a R^ - daviation calculation. Once seven readings have been taken, the program then has three deviations to

look at. These deviations are converted to absolute values, and the

maximum of the three is picked out and save€. If this maximum deviation

is less than 0.1 percent of the average of the last three readings, this

average is saved as the desired ratio and the STABLE /UNSTABLE FLAG is

reset (0000). If the deviation is equal or greater than 0.1 percent,

another reading is taken. The last three readings are then compared as above. This process is continued until three readings are taken

successively which are acceptable or an upper limit is reached of 32

readings. It the upper limit is reached and three acceptable readings

4-103
were not found, the average of the last three Is used and the STABLE/

UNSTABLE FLAG is set (0001). If set, the UNSTABLE FLAG causes a message

to be typed after the calibration for this test point: UNSTABLE

SIGNAL".

Important Core Locations ;

(2303) Nuniier of ratios taken to get 0.1 percent maximum delt

(2304) Ratio (N-2)

(2306) Ratio (N-1)

(2308) Ratio (N)

(230A) Maximum deviation of last three ratios tested

(230C) Average of last three ratios taken

(230E) STABLE/UNSTABLE FLAG (0000, stable; 0001, unstable)

Input Requirements :

DVM must be in ratio mode.

*Multiple Reading (DVM) and Digital Filter Subroutine

lAOO 4200 0000 NOP

1A04 4200 oooo ; NOP

1A08 0B88 CLEAR R8 (TABLF INDEX)

lAOA 0200 NOP

SAOC C830 OOCA LOAD DVM DEVICE ADDRESS

lAlO OBBB CLEAR RB (COUNTER INDEX)

lA 12 0200 NOP

lA 1 4 4200 0000 NOP

lA 18 C560 0004 Frio HZ.?

• lA IC 4330 1A34 IF SO BRANCH

1A20 0876 IF NOT, LOAD FREO. INDEX REGISTER

1A22 0200 NOP

1A24 CB70 OOlC SUBTRACT IC

4-104
1J A28 r1 w 4220 1 A3C IF F>100 HZ. BRANCH

1 A2C C870 0500 10<F<100 SET T=500 T IS

lA 30 4300 1 A40 BRANCH

lA 34 C870 3000 F: 10 HZ. , SET T:3000

IA38 4300 1 A40 BRANCH

1A3C C870 0100 F>100 HZ. SET T= 100

1 A 40 05B 7 RBtR7 COMPARE COUNTER TO T

1A42 0200 NOP

1 A 44 4330 1 A50 BRANCH ON =

1A48 CABO 000

ADD 1 TO COUNTER

1 A4C 4300 I A40 GO TEST FOR UPPER LIMIT

I A 50 CA 80 0001 ADD 1 TO # OF READINGS INDEX

1 A 54 DE30 0B25 OUTPUT CONVFRT DV/M

1A58 0878 LOAD

1A5A 088 8 LOAD

1A5C CB70 0004 SUP. 4 FROM # OF READINGS

lA60 431 0 1 A68 RRANrn IF fRFADINGS IS^4

1A64 43nn ^ <J \J KJ 1 AOC IF < 4 BRANCH BACK

1A68 C820 0008 LOAD 8

1 n vj 0CA2 MULT fREADINGS 8

1I A6F n vj c 08AB LOAD INTO RA

lA 70 4200 0000 NOP

IA74 CBAO 0020 SUB. 20 FROM ABOVE PRODUCT

1A78 0878 LOAD #READINGS INTO R7

1A7A 0200 NOP

T IS A TIMING PARAMETER

A-105
1A7C CB70 0005 SUBTRACT 5

1A80 4320 IA9C BRANCH ON NOT + (#EQUAL OR LESS

IA84 C580 0006 # READINGS :6?

1A88 4230 IBOC IF NOT BRANCH

1A8C 41C0 2000 # READINGS r6 BAL TO READ

1A90 4830 26EC RESTORE RATIO

1A94 4300 lAAC GO CALCULATE DELTA 1

1A98 4200 0000 NOP

1A9C 41C0 2000 BAL TO READ DATA

lAAO 4850 26EC RESTORE RATIO

1AA4 403A 0B50 STORE RATIO IN TABLE

IAA8 4300 lAOC GO TAKE ANOTHER RATIO READING

lAAC 403A 0B50 STORE RATIO 6

lABO 4840 OB 58 LOAD RATIO 5

1AB4 4200 0000 NOP

IAB8 4200 0000 NOP

lABC 4830 OB 50 LOAD RATIO 4

lACO 4200 0000 NOP

1AC4 4200 0000 NOP

1AC8 OB 43 RATIO 5-RATIO 4

lACA 0834 LOAD

lACC 4200 0000 NOP

lADO 4030 0B5A STORE DELTA 1 IN TABLE

1AD4 4200 0000 NOP

1AD8 4840 0B60 LOAD RATIO 6

4-106
1 A HP uuuu kl AD ft Ur

1 A tr n Ad\J\j uuuu M AD N Ur

t AC A 1AE4 4Z00 UUUU kl AP W ur

lAEo 4830 OB 50 1 ntrs RAT TO A

1 AEC 4200 0000 MOP n Ur

I AFO 4200 0000 MOP

1 A C A OB 4 3

1 A r < 1 A r & 0200 N Ur

I A p 8 4200 0000 U AD N Ur

lAFC 4040 0B62 STORE DELTA 2

IB 00 4200 0000 U AD N Ur

ID n A ID DA 4300 2310 bU TnlU TAlfC" lAiNC. HboULUlC. ARCnillTC" 11VALUt At lie* ACUr nnuc. T AC L 1 Ad

to no IB 08 4300 lAOC LUNllNUt Kt-AUlNob

IB OC 0878 1 AAH M DCAnTUPC

ID nC" ID Ut 0200 MAD NUr

ID 1 f\

I U CB70 0023 ouDlnALl CIIDTDAAT AITir IIDPrD 1 T M T T AC M Ur r Urrtn Linll Ur w ntA Ui Nbo

ID 1 A IB 1 A 4220 22F0 TC MAVTMIIM M UAO DCCkl C C A f*\J C r\ Ir nAAlnUn # HAS BttN HEACHED D D A ftl ^1 f , BRA NCH

IB 18 41C0 2000 IF NOT, BAL TO READ DATA

IB IC 4830 26EC RESTORE RATIO N

IB 20 4080 2302 SAVE # TRIES

1 D O A IB C.A 403A OB 50 o 1 UnC. n A I 1 U P!

1B28 4 200 0000 NOP

1B2C 4200 0000 NOP

IB 30 4200 0000 NOP

4-107
!B34 0843

1B36 0200

IB 38 4200 0000

IB3C 4200 0000

!B 40 CBAO 0018

IB 44 481 A OB 50

1B48 4200 0000

IB4C 4200 0000

IB 50 OB 41

IB 52 0834

IB 54 4310 1B60

IB 58 C850 FFFF

IB 5C 0C44

1B5E 0845

IB 60 CAAO 0018

1B64 404A OB 56

1B68 4300 2200

1B6C 0872

LOAD RATIO N

NOP

LOAD PATI0(N-3)

NOP

RATIO N- RATI0(N-3)= DELTA N LOAD

BRANCH ON NOT MINUS

LOAD -1

MULT DELTA N BY -

1

LOAD

ADD 18 TO RESTORE INDEX

STORE ABSOLUTE VALUE OF DELTA

GO TO MORE SPACE

STORAGE FOR R8 ^

4-108
4.40 *Read Data Subroutine

Call on RC

This subroutine programs th.e DVM to read one time. The decimal

reading is stored in R9 and core locations 0554 and 0556. If the

first digit is zero, the LOW/NORM FLAG is set at 0000 and if the first

digit is not zero, the flag is reset at 0001. This subroutine also calls

the Round Off Subroutine (049C) (see Section 4.29) which gives, as output,

a hexidecimal number equivalent to the decimal entry rounded to four

digits. This will be stored in 26EC.

Input Requirements: DVM must be set for Ratio or Voltage mode as desired.

Output Requirements: Decimal data will be in core locations 0554, 0556 and R9.

Hexidecimal data equivalent to rounded decimal data

will be in core location 26EC.

*Read Data Subroutine

(Data will be In R9 and 0554, 0556)

2000 C830 OOCA LOAD DVM DEVICE ADDRESS

2004 DE30 0B24 ENABLE INTERUPTS FOR DVM

2008 41E0 06D8 SAVE REGISTERS

200C 9F95 ACKNOWLEDGE INTERUPTS

200E 0539 IS IT DVM?

2010 4330 2018 IF SO, BRANCH TO READ DATA

201 4 4300 2008 IF NOT, LOOK AGAIN FOR INTERUPT

2018 0B77 CLEAR R7

201A 0200 NOP

201C C890 0005 LOAD LIMIT I NTO R9

2020 C880 0001 LOAD INCREMENT INTO R8

2024 DB37 0288 READ DATA INTO CORE

2028 4120 1010 DELAY

202C C! 70 2024 BXLE

4-109
2030 4200 0000

2034 4200 0000

2038 41 90 0500

203C 4870 0554

2040 4230 205C

2044 C840 0000

2048 4040 09F6

204C 4890 0556

205 0 4800 0554

2054 0819

2056 0200

2058 4300 26C8

205C C840 000 1

2060 4040 09F6

2o64 4800 0554

2068 4810 0556

206C 4200 0000

2070 4200 0000

2074 4200 0000

2078 4300 26D0

>

NOP

BAL TO ASCII/DEC. ROUTINE

LOAD FIRST DEC. DIGIT

BRANCH ON NOT 0

LOAD 0

SET LOW/NORM FLAG:

1

LOAD 2*ND HALFWORD OF DEC. #

LOAD 1 'ST HALFWORD

LOAD

NOP

BRANCH

LOAD 1

SET LOW/NORM FLAG z\

LOAD FIRST HALFWORD

LOAD SECOND HALFWORD

NOP

NOP

NOP

BRANCH TO NEW SPACE

4-110
READ DATA

INTO

CORE

2000

Ascn/

DECIMAL

NO

LOW / NORM

FLAG

= 1

YES

LOW / NORM

FLAG

= 0

ROUNDOFF

DEC. / HEX.

FIGURE 4-14. READ

0

DATA SUBROUTINE FLOWCHART

4-111
Multiple Readings and Digital Filter Siobroutine

Calculate Max Delta of Last Three Deltas

Note: The following is part of Section A. 39, Multiple Readings Subroutine.

2200 483A 0B56 LOAD DELTA N

2204 CBAO 0008 SUB. 8 FROM INDEX

2208 482A OB 56 LOAD DELTA (N- 1 ) 220C CBAO 0008 SUB. 8 FROM INDEX

2210 481A 08 56 LOAD DELTA(N-2)

221 4 CAAO 0010 ADD 10 TO INDEX TO RESTORE

2218 0512 COMPARE DELTA(N-2):DELTA (N-l)

221 A 0200 NOP

221C 4280 2228 BRANCH ON LOW DELTA CN- 2)<DELTA

2220 0841 LOAD DELTA (N-2) AS MAX 1 2222 0200 NOP

2224 4300 222C SKIP NEXT INSTR.

2228 0842 LOAD DELTA (N- 1 ) AS MAX I

222A 0200 NOP

222C 0543 COMPARE MAXltDELTA N 222E 0200 NOP

2230 4280 223C BRANCH IF MAX 1 < DELTA N

2234 0854 SAVE MAX 1 AS MAX DELTA IN R5

2236 0200 NOP

2238 4300 2240 SKIP NEXT INST.

223C 0853 DELTA N IS MAX DELTA, SAVE IN R5

4-112
223E 0200 NOP

2240 4050 230A STORE MAX DELTA

2244 4200 0000 NOP

2248 4200 0000

22 4C 4200 0000

Calculate Average of Last Three Ratios

225 0 483A 08 50 LOAD RATIO N

2254 CBAO 0008 SUB. 8 FROM INDEX

2258 482A 0850 LOAD RATIO (N- 1

)

225C CBAO 0008 SUB. 8 FROM INDEX

2260 481A 0850 LOAD RATIO (N-2)

2264 CAAO 0010 ADD 10 TO INDEX TO RESTORE

2268 4200 0000 NOP

226C 4200 0000 •

22 70 4010 2304 SAVE RATIO CN-2)

2274 4020 2306 SAVF RATI 0 (N- 1

)

2278 4030 2308 SAVE RATIO N N WILL BE LAST

22 7C 4200 0000 NOP

2280 4200 0000

2284 4200 0000

2288 4200 0000

2280 4A30 2306 N+(N- 1

)

2290 4A30 2304 N+(N-1 )+(N-2)

4-113
0000

4200 0000

C840 0003

0B22

OOh C.C.H AH

OOA C 0900

22A 8

22AC C830 03t o

22B U

AC 9 O 9 ^OA

OCR 4 * L* c- w

22i3 A 0900

/i o 9 n M u 1 A or

PRL> O 1i nU nnnn

/I O 1 o CO ur.

OUOU^O QT

U U VJ

rV/ BC 1I nu noo 1

rto ST ^ AO 1 n

c.C.r O *f V w 0000

22 FC 4200 0000

2300 0309

2302 0008

LOAD ^

, CLEAR R2

(N+(N-l)+(N-2))/3 OUOT. IN R3 (AVERAGE OF 3 RATIOS

SAVE AVERAGE

LOAD CONST.

1000*DELTA (r«AX )

1000*DELTA(MAX)/AVER. RATIO

LOAD TO SET CONDITION CODE

BRANCH ON + (QUOT. > 0) TO CONTINUE READINGS

LOAD 0

STORE "STABLE" FLAG MAX DELTA < .17. OF RATIO AV

RETURN TO CALL

^

LOAD I '

STORE "UNSTABLE FLAG"

RETURN TO CALL

STORAGE # OF RATIOS READ TO GET .1% MAX DELTA

4-114
2304 1B8D 1B8D RATIO (N-2) RATIO (N- 1)

2308 1B8E 0001 RATIO N MAX DELTA

IRlo RHoU nnnn Hvr.nHot. nHilU olADLt/UiVolflBLn. "Lfto

Calculate Absolute Value of Deltas

23 1 n *i O *i w nR62 \J D \J LOAD DELTA 1

23 1 4 4200 ~ C» W \J 0000

231 8 4200 0000

23 IC 4200 0000

2320 43 10 23 2C BRANCH ON NOT -

2324 C850 FFFF LOAD -1

2328 0C44 DELTA !*(-!)

232A 0845 LOAD QUOT

232C 4040 0B66 STORE /DELTA 1/ IN TABLE

2330 4200 0000

2334 4840 08 72 LOAD DELTA 2

2338 4200 0000

233C 4200 0000

2340 4200 0000

2344 43 1 0 2350 BRANCH ON NOT +

2348 C850 FFFF LOAD -1

23 4C OC 44 DELTA 2 * (- 1 )

23 4E 0845 LOAD QUOT.

2350 4040 OB 7 6 STORE /DELTA 2/ IN TABLE

235 4 4200 r\ r% rt f\ 0000

2358 4300 1B08 RETURN TO MAIN PROG.

> 4-115
A. 41 *ASCI I /Decimal Subroutine

Call on RE

This subroutine converts five bytes of ASCII code to decimal code,

Input Requirements: ASCII code in locations 09B6-09BA

Output Requirements: Decimal data in locations 246C-246F

This subroutine saves all registers except RE (see figure 4-15.)

*ASCI I /Decimal Subroutine

23FC 40F0 PAIO

2400 4IF0 06E0

2404 D3A0 09B7

240? D5B0 09Bg

240C D3C0 09B9

241C D3D0 09PA

2414 D3E0 09B6

24 18 OB 1 1

241A 0B77

241C OBOO

241F 0200

2420 930A

2422 0200

2424 0810

2426 0200

2428 041 0 OOOF

2420 CD 10 OOOC

SAVE FE

BAL TO SAVE FEGISTEPS

LOAD ASCII #'S INTO REGISTERS

CLEAR R 1 CLEAR R7

CLEAR FO

LOAD FIRST ASCII #

ALSO INTO R

1

PICK OFF BITS 12-15

SHIFT LEFT 12

4-116
2450 930B

?43? 0200

?434 0820

2436 0200

2438 C420 OOOF

243C CD20 0008

2440 0A12

2442 0200

2444 953C

2446 0200

2448 C430 OOOF

244C CD30 0004

2450 OA 13

2452 0200

2454 933D

2456 0200

2458 C430 OOOF

2450 OA 1 3

245E 0200

2460 933E

2462 0200

2464 0430 OOOF

2468 4300 2474

LOAD SEC. #

ALSO IN R2

PICK OFF BITS 12-15

SHIFT LEFT 8

ADD R2 TO Rl

LOAD 3'RD # '

PICK OFF PITS 12-15

SHIFT LEFT 4 PITS

ADD R3 TO R

LOAD 4'TH #

PICK OFF BITS 12-15

ADD R3 TO Rl (R 1 NOW CONTAINS FIRST 4 DIGITS)

LOAD 5 TH DIGIT

PICK OFF PITS 12-15

PRA NCH

4-117
246C OOCO STOPAGF '

?46E 3000 1808

247? 0000

2474 ^200 0000

2478 4200 0000

247C 4030 246C STOHE FIRST DIGIT

2480 4010 246E STORE LAST 4 DIGITS

2484 41E0 0720 RESTORE REGISTERS

2488 48E0 2470 RESTORE RE

248C 030E RETURN

>

4-118
23 FC

LOAD

BYTE 1—RA

3—RC

4 —RD

5 —RE

PICK OFF

LAST 4 BITS

EACH BYTE

1ST SHIFT LEFT-^ OBITS

2ND —-12

3RD — 8

4TH -m- 4

5TH — 0

BECOMES

1ST DEC. DIGIT

2ND

3RD

4TH

5TH

ADD BYTES

2.3.4,5

SAVE

(246E)

SAVE

1ST BYTE (246C)

EXAMPLE:

B1 B2 B3 B4 B5

BECOMES

0001 2345

FIGURE 4-15. ASCII-TO-DECIMAL SUBROUTINE FLOWCHART

4-119
4.42 Desired Frequency Table

This table gives a set of desired frequency test points which is

used to check against the reading of the frequency counter. These

desired frequencies are compared to the counter reading in the Check

for Proper Frequency program (see Section 4.43).

Desired Frequency Table

U UUU 24D6 0400 25 06 25 00 0000

no I n U U 1 u 24Dc o r> n n 25 OA 3 000 0000

C.AB A n n A n UUUU Z4UA 05 00

r,: 25 OF 3500 r\ r\ 0000

O AD C UUlJ 24DC 0000 25 12 4000 0000

Z*lb c UUUU c.Aut o o n U o u u

O 1 ^5 I O UUUU n n n n

O yiD A U U 0 u 24t 0 0000 1

A

5 000 n r\ n 0000

2ABC r\ r\ r\ 0000 24E2 0700 25 IE 5500 0000

24BE 0050 24F4 0000 2522 6000 0000

24C0 r\ r\ f\ r\ 0000 24F 6 0800 2526 6500 0000

24C2 0100 24Fg 0000 25 2A 7000 0000

- 24C4 0000 24FA 09cn 252E 7500 0000

24C6 0100 24EC occo 2532 8000 0000

24C? 0000 . 24EE 1000 0000 25 36 8500 0000

24CA 0100 24F2 1500 0000 253A 9000

24CC 0000 24F6 1 700 0000 2530 0000

24CE 0200 24FA 2000 0000 253E 9500

24D0 0000 24FE 2000 0000 2540 0001

24D? 03 00 2502 2000 0000 2542 0000

24D4 0000 >

4-120
4.43 *Check for Proper Frequency Subroutine

Call on R8

This subroutine con^ares the frequency counter reading with a desired

frequency and if the two do not agree, reprograms the oscillator again and

reads the frequency again. This is repeated up to three times. After

three tries, the program continues with whatever frequency exists at that

time.

*Check for Proper Frequency Subroutine

2560 4ir0 06E0

?564 4200 0000

2568 41E0 23FC

2560 4200 0000

2570 4880 246C

2574 4890 246E

2578 4586 24^0

257C 4530 2588

2580 4300 25A0

2584 4200 OOOO

2588 4596 24AE

2580 4230 25A0

2590 4200 0000

2594 4200 0000

2598 4IF0 0720

2590 4300 097A

25A0 4200 0000

BAL TO SAVE REGISTERS

BAL TO DECODE FREQ DATA

LOAD FREQ . DATA DIGIT 1

2-5

COMPARE FIRST DIGIT WITH TABLE VALUE

BRANCH ON :

GO TO TRY AGAIN

COMPARE DIGITS 2-5

BRANCH ON NOT: TO TRY AGAIN

BAL TO RESTORE REGISTERS

CONTINUE

4-121
25A4 ^870 09F2

25A8 C570 0003

25AC 4530 25 98

25B0 CA70 0001

25B4 4070 09F2

25B8 4200 0000

25BC 41E0 0720

25C0 0870 OOOF

2504 C8A0 0000

2508 CB60 0004

25CC 4300 0908

LOAD COUNTER IN F7

IS IT 3?

BRANCH ON = TO RESTORE AND CONT.

ADD I TO R7

STORE COUNTER

BAL TO RESTORE REGISTERS

LOAD OSC. DEVICE ADDRESS

CLEAR RA

SUB. 4 FROM P6

RETURN

A-122
Note: The

*Read Data Siibroutine (Continued from Section 4.40)

following is part of Section 4.40 Read Data subroutine.

26BC 4200 0000

26C0 4200 0000

26C4 4200 0000

26C8 4200 0000

26CC 4200 0000

26D0 4200 0000

26D4 4200 0000

26D8 4200 0000

U *J w» 26E0 4200 0000

26E4 41E0 0720

26E8 030C

26EA 0000

26EC 1B8E 6356

26F0 B564 3269

26F4 3232 3559

26F8 6935 6435

26FC 3332 6944

NOP

BAL TO ROUND OFF, DEC/HEX ROUTINE

NOP

RESTORE REGISTERS

RETURN TO CALL

HEX, STORAGE

STORAGE

4-123
4. 44 *Type-Out Subroutine

Call on RE

This subroutine permits type-out of a message or data by a subroutine

call with three transfer parameters. The calling sequence Is as follows:

xxxx 41E0 3478

Parameter 1 Parameter 2 , Parameter 3

Parameter 1: starting address of type message or data.

Parameter 2: ending address of type message or data.

Parameter 3: either 0000 for binary data or 0001 for ASCII data.

If the data to be typed are in ASCII code, the type-out will be as stored in the core without any additional spaces, carriage returns or line feeds. These

must be supplied In the table of constants in core to be typed. Messages

to be typed may be entered by using the Message Entry Sub routine (3600) .Sect . 4.4f

If the data to be typed are in binary, spaces will be placed after every

two bytes typed out. A carriage return, line feed will be output after the

maximum bytes per line. This constant (maximum bytes per line) is entered

in location 340A. '

*Type-Out Subroutine

5478 4200 0000 NOP -

347C 40E0 3554 SAVE RETURN ADDRESS

3480 488E 0000 LOAD ADDRESS OF START

3484 OB 55 CLEAR

3486 0200

3488 4050 3558 STORE COUNTER X

348C 4050 355A STORE COUNTER 1 3490 4050 355C STORE COUNTER 2

3494 4080 355E SAVE STARTING ADDRESS

3498 CAEO 0002 ADD 2 TO RETURN ADDRESS

34 9C 488E 0000 LOAD END ADDRESS

4-124
34A0 4300 3598

34A4 4870 355E

34AB 4A70 3558

34AC D307 0000

34B0 0830

34B2 C400 OOFO

34B6 CCOO 0004

34BA C430 OOOF

34BE 4190 1954

34C2 41E0 3564

34C6 0803

34C8 4190 1954

34CC 41E0 3564

34D0 4850 355A

34D4 CA50 0001

34D8 4050 355A

34DC C550 0002

34E0 4230 54F4

34E4 D320 0E5C

34E8 41E0 3564

34EC OB 5 5

34EE 0200

34F0 4050 355A

34F4 48A0 3558

34F8 CAAO 0001

GO CHECK FOR ASCII CODE

(COMES HERE IF NOT ASCII) LOAD START ADDRESS

ADD X

LOAD BYTE TO BE TYPED

LOAD

PICK OFF 1 ST. CHARACTER

SHIFT RIGHT

PICK OFF 2 ND. CHAR.

BAL. DEC/ASCII

TYPE FIRST CHAR.

LOAD 2 ND. CHAR.

DEC/ASCII

TYPE 2 ND. CHAR.

LOAD COUNTER 1 ADD 1 STORE COUNTER 1 COUNTER 2 - 2?

BRANCH ON NOT :

LOAD SPACE CHAR.

TYPE IT

CLEAR COUNTER 1

STORE

LOAD COUNTER X

ADD 1

4-125
34FC 4850 355C

3500 CA50 0001

3504 4050 355C

3508 C550 0008

35 OC 4230 3548

35 10 D320 09B4

35 1 4 4 lEO 3564

35 1 8 D320 09B 5

35 IC 41E0 3564

35?0 4200 0000

35 24 4820 35 60

3528 4840 355E

35 2C 0B24

352E 0200

3530 CA20 0001

3534 0B2A

3536 0200

3538 4220 3540

^5 4*7 w^00vy V/ 35 7C

3540 0200

3542 0B77

3544 4070 355C

3548 40A 0 355 8

35 4C 4200 0000

3550 4300 34A4

LOAD COUNTER 2

ADD I STORE COUNTER 2

COUNTER 2 - MAX. BYTES PER LINE?

IF NOT BRANCH

LOAD CARRIAGE RETURN CODE

TYPE OUT

LOAD LINE FEED CODE

TYPE OUT

LOAD END ADDRESS

LOAD START ADDRESS

SUBTRACT

ADD 1 TO ABOVE DIFFERENCE

SUBTRACT OFF 0 TIMES THRU

BRANCH ON ( NOT FINISHED)

BRANCH

RETURN

CLEAR COUNTER 2

SAVE X

CONTINUE

4-126
3554 05C0 STORAGE FOR RE

355 6 0000

3558 0018 COUNTER X

355A 0000 COUNTER 1

355C 0000 COUNTER 2

355E 05D0 START

35 60 05E7 END

35 62 0000

35 64 C81 0 0002 LOAD TTY DEVICE ADDRESS

35 68 DE 10 09E2 PUT TTY IN WRITE MODE

35 6C 4 1 80 OEEC WAIT

35 70 9A 12 TYPE

35 72 0200

35 74 030E RETURN

35 76 0200

35 78 0000

35 7A 0000

35 7C 48E0 3554 RESTORE RE

35 80 CAEO 0006 ADD 6

3584 030E RETURN

3586 0200

3588 0000

35 8A 0000

4-127
3f)98 4080 3560

359C 48E0 3554

35A0 CAEO 0004

35A4 480E 0000

35A8 C500 0000

35AC 4330 34A4

35B0 4870 355E

35B 4 4A70 3558

35B 8 D327 0000

35BC 0882

35BE 0200

35C0 48A0 3558

35C4 4200 0000

35C8 4200 0000

35CC 4200 0000

35D0 4820 3560

35D4 4840 355E

35D8 0P24

35DA 0200

35DC CA20 0001

35E0 0200

35E2 0B2A

35E4 4220 35EC

SAVE ENn ADDRESS

RESTORE RE

ADD 4

LOAD CODE FOR ASCII OR BINARY IDENTIFICATION

IS IT 0 ? BRANCH ON = TO CONTINUE

LOAD START ADDRESS

ADD COUNTER X

LOAD BYTE TO BY TYPED

SAVE IT IN RB

LOAD COUNTER X

LOAD END ADDRESS

LOAD START ADDRESS

SUBTRACT

ADD 1

(END -START)- # TIMES THRU

BRANCH ON + (NOT FINISHED)

4-128
35E8 4300 357C

35EC 082B

35EE 0200

35F0 41E0 3564

35F4 CAAO 0001

35Fg 40A0 3558

35FC 4300 35B 0

GO TO EXIT

LOAD

TYPE BYTE

ADD I TO COUNTER X

SAVE COUNTER X

EXIT

4-129
A. 45 *Message Entry Subroutine

Call on RE

This subroutine permits entry of messages to be typed out by the

Type-Out Subroutine (see Section 4.44). This siibroutine has two transfer

parameters. The calling sequence is as follows:

xxxx 41E0 3600

Parameter 1 Parameter 2

Parameter 1: nunfcer of bytes allowed in the message.

Parameter 2: starting address for stored message (core location)

Upon calling this subroutine, a message can be typed and transferred

directly into core (ASCII code). Upon reaching the maximum bytes allowed,

a message is typed on the TTY: NO MORE MESSAGE SPACE. If end-of-message

is reached before all the message space is used, control A will cause the

program to terminate and exit to the monitor. If a mistake is made in

typing a character or characters the backward arrow < will backspace one character (one ASCII byte) for each < typed. The correct character or characters then may be typed.

*Message Entry Subroutine

5600 4500 ,^6E0 GO TO MORE SPACF

5604 4200 0000

5608 4200 0000

560C OPOO CLEAR RO

560E 0200

5610 4000 56CF SAVE COUNTER X

5614 C850 0002 PUT TTY IN READ rODE

561 P DF 5 0 OA 04

561C ^D54 SENSE STATUS, LOAD COND. CODE

561F 0844 ' , 5620 4250 561C BRANCH ON FUSY TO SENSE STATUS

4-130
I

r 3^

p6?6 0?00

4300 3 708

'\U?c 0 5 90 OOPl

4330 3 6D0

U \J V/ ~ 4B 1 0 36CA

' B638 r 4310 3678

B63C

r C590 0021

h640

J 4330 3 664

4P1 0 3608

D?91 3 720

P64C

ti OA 1 0 0001

fe65 0 4010 3 6C8

•5654 4200 0000

1(5658

1 4?00 0000

it365C 4300 36 10

AZU') DUUU

15664 41E0 3478

1^668 368E 369F

366C 0001

0200

'3670 4300 36D0

,3674 r

4200 0000

|3678 4 1 E 0 3 4 78

j!367C 36A8 3 6C1

READ DATA

GO CHECK FOR < CHARACTER (A < IS TYPED TO ERACE

A CHAR. ) IS THE CHAR. A CONTROL A (CHAR. FOR END OF MESSAGE)?

IF SO, GO TO EXIT

HAS ^AXir.Ur^ # OF PYTFS BEEN TYPED?

IF SO, TYPE OUT "NO r^ORE MESSAGE SPACE"

IS THE CHAR. "!"?

BRANCH ON r

LOAD COUNTER

STORE BYTE IN CORE

ADD 1 TO X

SAVE

CONTINUE

COMES HERE IF CHAR IS "I" GO TO TYPE OUT

GO TO EXIT

TYPE OUT "NO MORE MESSAGE SPACE

4-131
3680 0001

3682 0?00

3684 4300 36D0 GO TO FXIT

3688 0000

368A 0000

368C 0000 :

368F 808A C5CE STORAGE FOR TTY CODE CR.LF END OF MESSAGE

3692 C4A0 CFC6

3696 AOCD C5D3

369A D3C1 C7C5

369E 8n8A 0000

36A2 0000

36A4 0000

36A6 0000

36A8 8D8A AOCF

36AC CFAO CDCF

36'^ 0 D2C5 AOCD

36B4 C5D3 030 1

36P8 C7C3 A0D3

56PC DOCl C3C5

36C0 SCPA 0000 STORAGE FOR TTY CONSTANTS

36C4 0000 - ^ . :

'

'

36C6 0000 ..

CR,LF NO MORE MESSAGE;

SPACE

4-132 I
36CP 0003

7 iC r* A O dLA n A n 7

o oC L

7 0 1 A r\r\r\r\ UU U U

7 /T r* ^

nUUUn n A4

O O L'C n 7 nrur

3oL)A r\ 0 r\ r\ 0 LO U

56UC ^^ 0 r\

X cvw 3 6lJt n n n n (J U U (

J

36F 0 4 Of- 0

7 ^ r* r»

0 oh 4

A c 0 r Hccr n n 0 n u U U U

36t 0

7 <c r* A 0 dL A

36EC CA E n

r\ 0 0 0002

36F0 488E 0000

A A 0 n 7 <r A A 0 o4 A

36r 8 43 00 3 604

73E E 73EC

3 700 73EC 73EC

3 MJ 4

"7 7 IT 0 ' 3LC "7 7 IT

? oh 0

I 7 r» 0 A Q I 0

3 70C 0 5 90 003C

3710 A 0 7 4?30 7 ^ r\r> 3 620

3714 CP 10 0001

371 F 4010 3 6C8

371C 4300 361C

STORAGE FOR COUNTER

MAXIf^UM /C BYTES ALLOWED IN MESSAGE

RE

RESTORE RE

ADD 4 RETURN

SAVE RE

LOAD ( (RE ) ) I NTO R6

SAVE MAxirrur^ # of pytes

ADD 2 TO RE

LOAD ( (RE ) ) I NTO h8

SAVE STARTING LOCATION

GO BACK AND CONTI NUE

LOAD COUNTER

IS IT "<"?

BRANCH ON NOT - SUBTRACT I FROf*' COUNTER

STORE

CONTINUE

4-133
3720 FFD7 D7D4

3724 C941 CCOO

3728 0000

572A 75EA 73EC

372F 73EC 73EC

5732 73FC 41F0

3736 3600 0020

373A 05D0

373C 4300 ICgO

> ,

STORAGE FOR REPLY

SAnPlF PROG FOR USING r^ESSAGE ENTRY

BAL TO MESSAGE ENTRY

FIRST PARAMETER* # OF BYTES ALLOWED

SECOND PARAMETER* STORAGE PLACE FOR ANSWER

GO TO MONITOR

4-134
4.46 Accelerometer Data Block Entry Program

This program allows the user of the system to enter data about the

accelerometer under test such as manufacturer, model numb e r , serial number,

amplifier used, etcetera. The program is started at location 3740 (see

figure 4-16). The program then asks the operator a series of questions

about the accelerometer and associated equlpjnent. As the answers are typed

on the TTY by the operator, the ASCII code is stored in proper locations in

core (see Section 4.35).

There are two options at the beginning of the program, the "PARTIAL"

and the "ALL" modes. If the operator types "ALL" in response to the

question "ALL OR PARTIAL", the program then goes through and asks a series of sixteen questions. At the end of the sixteen questions, the

program returns to Monitor. For the "PARTIAL" option, the operator must

request which parameter he wishes to enter by typing one of the following two

letter codes.

FN for file number AS for amplifier serial number

TN test number CU customer

CA capacitance DC data of calibration

PM accelerometer manufacturer El exciter 1

PN accelerometer model number E2 exciter 2

PS accelerometer serial nuirfjer SI standard 1

AM amplifier manufacturer S2 standard 2

AN amplifier model number OA gain

The operator miost enter one of the codes above. The program then asks the

question corresponding to the code which was entered. In the "PARTIAL"

mode, the program always types "ANOTHER CHANGE?" after each entry. The

proper answer is "YES" or "NO".

The data entered by this program together with the data of the

calibration factors form a data package located in 2900-3200 (see

Section 4.35). This data package can then be entered into a file on magnetic tape by a subroutine call.

4-135
Accelerometer Data Block Entry Program

3740 4 200 0000

3744 4200 0000

3748 41E0 3478 TYPE OUT "ALL OR PARTIAL CHANGES?"

374C 3920 3939

3750 0001

3752 0200

3754 4200 0000

375P 41F0 3 600 PAL TO ENTRY PFOnRAf»" FOP ANSWER

375C 0007 TRANSFER PARAI^ETFRS

375F 3720 03 I 0 LOAD ENTRY

376?. 3720 C410 PICK OFF LAST 4 PITS

3766 OOOF

3768 081 1 LOAD Rl TO SET CONDITION CODE

376A 0200

376C 4330 3 780 PRANCH IF ANSWER WAS "PARHAL"

3 7 70 4200 0000

3774 ceoo 0001 LOAD 1

3778 4000 378C STORE "ALL" FLAT .

377C 4300 0400 CLEAR STORAGE TABLES

3780 C800 0000 LOAD 0

3784 4000 37gC STORE "PARTIAL" FLAG

3788 4300 3844 BRANCH TO CONTINUE

378C 0000 STORAGE FOR ALL/PARTIAL FLAG

378E 0200

4-136
5790 4 ICO 3888

3794 OP 3 3

3796 0?00

3798 4030 3P9C

379C 4P?3 38A0

37A0 4P43 38A2

37A4 0A42

37A6 4020 3 7B2

37AA 4040 3 7P4

3 7AE 41 FO 347P

37B? 0000

37P ^ ooon

37P^ 0001

3 7RP 4300 0430

37PC 4P23 3PA4

37C0 4P43 3FA6

37C4 4020 3 7n 2

37CP 4040 3 70 0

37CC 4 1 FO 3 600

3700 oooc

37D2 2P 7P 4P1 0

37D6 37PC 4330

37DA 3P00 4840

37DE 3 890 4830

3 7F2 3890 4200

OUTPUT CR,LF

CLFAP R3

CLEAR COUNTF^^ X, SAV/E

LOAD START LOCATION

LOAD # BYTEF ALLOWED IN ANSWER

ADD TO GET ENDING LOCATION

STORE START LOCATION

STORE END LOCATION

TYPE QUESTION

CLEAR TABLES

LOAD STORAGE LOCATION

LOAD # PYTFS ALLOWED

STORE

STOf?F

GO TO MESSAGF ENTRY SUP^OUTINE

LOAD ALL/PARTIAL FLAG

PRANCH ON PARTIAL

LOAD INDEX X

4-137
37F6 nonn

37FP CP40 0078 HAS LAST QUESTION BEEN ASKED?

37FC 4310 1C80 IF SO GO TO MONITOR

37Fn CA30 0008 IF NOT, ADD 8 TO INDEX X

37F4 4030 389C STORE

37F8 41C0 3888 OUTPUT CR.LF

37FC 4300 379c CONTINllP

08 00 4200 0000

3804 4 lEO 3478 TYPE "ANOTHER CHANGE?" (ANSWER MUST

3808 39DC 39EF

380C OOol

580F 0200

38 1 0 4 IFO 3600 PAL TO MESSAGE ENTRY FOR REPLY

3814 0003

381 6 3 720 4 83 0 LOAD REPLY

381 A 3720 0530 WAS IT YES?

381E 5 9C5 4330 IF SO, BRANCH

3822 3844 4200

3826 0000

3828 C530 4FCF WASITNO?

382C 4330 1C80 IF SO, GOTO MONITOR

383 0 4 IF

0

3 4 78 IF NEITHER YES OR NO TYPE "WHAT?"

3834 03CO

4-138
3836 03C5

3838 0001

383A 0200

383C 4300 3810 TRY AGAIN

3840 4200 0000

3844 4 lEO 3478 TYPE "WHICH?"

3848 03C6 -

384A 03CF

-

384C 0001

384F 0200

385C 4 IFO 3600 BAL TO MESSAGE ENTRY FOR REPLY

3854 0003

3856 3720 4830 LOAD REPLY

385A 3 720 41C0 TYPE CR LF

385E 3888 OB 55 CLEAR R5

3862 C200

3864 4535 03A0 COMPARE (R3): (03A0+(R5)) WHICH PARAMETER

3868 4230 3878 BRANCH IF THIS IS ^'0T IT

386C C830 0004 LOAD 4

3870 0C25 MULT COUNTER F5 BY 4

38 72 0200

3878 CA50 0002 ADD 2 TO INDEX

38 7C C550 0080 COMPARE COUN'TEf- F. 5 TO UPPER LIMIT

4-139
3?F0 4530

38P4 4300 3864

3888 4!E0 3478

3P8C 03CE

388F 03CF

3890 COO r

389?. 030C

3894 0?00

3896 73EC 73FC

3e9A 73EA 0079

389F 73EC 593A

IF IMPROPEF PAF.AfTFTFP WAS TYPED. TYPE "WHICH?

CONTINUE •

'

OUTPUT CR,LF SUPFOUTINE

XXXX, STORAGE FOR COUNTER

4-lAO
^

START

3740

TYPE "ALL OR PARTIAL CHANGES"

SET M, S GO TO ENTRY

PROG.

M: NUMBER OF BYTES ALLOWED IN REPLY

S: STORAGE

LOC. FOR

REPLY

SET MODE

FLAG - 0 SET MODE

FLAG - 1

CLEAR

ALL TABLES

TYPE QUESTION

INDEX (X)

CLEAR PAR. X STORAGE

LOCATION

SET M, S GO TO ENTRY

NO

TYPE: •WHICH?"

M-4, S GO TO ENTRY

- 3720

LOAD

REPLY

NO

o

NO

TYPE; "WHAT?"

J

CLEAR Y

INDEX

Y- Y + 2 LOAD X INDEX

MULT. BY 8

TYPE: "WHAT?"

FIGURE A- 16. ACCELEROMETER DATA BLOCK ENTRY PROGRAM FLOWCHART

4-141
4.47 Storage Table for Type-Out Constants and Save Locations

This is a storage table for the Accelerometer Data Block Entry

Program (see Section 4.46).

Storage Table for Type-Out Constants and Save Locations

T o A '"1 or H 0 393A 0009 r iM

ocA 4 2B00 0004

o O " o 3944 0008 T N ' i' ^

O O ri 2B 04 OOOg

ODt5 U 394E 0009 LArAL« - f.

X OP A 2B 78 oonc

JouPR Ru 3 95 8 OOOF r 1 U n U r r) ^ r b f

?B 10 0006

0 500 rlLKur riOl) NOr

o8C2 OOOF • - • 38C4 ?R 2 0 OOOA

7 o o 3968 OOOC PICK UP SN-?

38CC 2P 1 6 OOOA

38D0 3976 00 OB ArOP MN'FG:?

38D4 2B3 0 0006 • 38D8 03F0 AMP MOD NO?

38DA OOOF

38DC 2B 40 OOOA

38E0 3982 0009 AMP SN:?

38E4 2B36 OOOA

4-142
58E8 398C OOOP

38EC 2B50 00 10

38F0 5998 OOOF

38F4 ?B60 0006

38F8 39A8 OOOD

38FC 2B66 0004

3900 39P8 OOOD

3904 2B6A 0004

3908 3908 0009

390C 2B 70 0004

3910 39D4 0009

3914 ?B74 0004

3918 39F0 0007

391C 007C

3920 41CC CCAO

3924 CFD2 A050

3928 4 1D2 D4C9

3920 41CC A0C3

3930 4841 4E47

3934 C553 3F8D

3938 OAAO

393A C6C9 CCC5

393E A3Br) 3F8D

3942 OAAO

CUSTOMER?

DATE OF CALIP-7

EXCITER #1:?

EXCITER #2r?.

STD #1=7

STD #2=7

GAI N?

ALL OR PARTIAL CHANGES?

FILE #:?

4-143
3944 D4C5 53D4

3948 A3PD 3F8D

394C OAAO

394F C341 5041

395? C32E PD3F

3956 ROOA 50C9

395A C34P 5550

395E A04n 4EC6

3962 47RD 3F8D

3966 OAAO

3968 50C9 C34P

396C 5550 A053

3970 4FPr) 3F8D

3974 OAAO

3976 4140 50A0

397A 4D4F C647

397F Pn3F FDOA

3982 4140 50A0

3986 534F PD3F

398A 8nOA C355

398E 53D4 CF4D

3992 C5D2 RD3F

3996 FDOA 4441

TEST #:?

CAPAC.= ?

PICKUP f^NFG: 7

AMP MNFGr ?

AMP SNr?

CUSTOMERr ?

DATA OF CALIPr?

PICKUP SNr?

4-144
39qA ^'4C5 AOCF

5^9F C6A0

CCC9 425F

59A6 ^riOA C5np

39A/^ C5C9 n4C5

5^AE rrAO A.'^P 1

r^njF pnoA

3qF6 AOAO C5DP

39^^ A C3C9 ^/iC5

39PF D?An A3P2

39C1'- PD3F P^'OA

39C6 ACAO 53D4

39CA 442F A3R1

39CE BD3F 8D0A

59D2 AOAO 53D4

3'^D6 44 ?F A3P?

39DA ^n5F pnnA

T^nr /M4F cFn4

3)F? ^PC5 n?AO

39^*^ C34P 41 4F

3QFA 4 7C5 3F8n

,5C)pr HA AO

3C)po ''i74 1 C94r

39F4 3FPr' OA AO

FXCITFP /fir?

FXCITEF #2r?

Sir #2:?

ANOTHFS CHAN'GF?

::a I N ?

4-145
IIi
5. DISCUSSION

Accurate reference accelerometers need to be calibrated with a minimum of time spent in recalib ration coiisistent with accuracy requirements.

The automated system for accelerometer calibration was set up to provide a precision calibration facility and to shorten the time required to perform

calibrations. Another advantage of this type of system is that it is possible

to collect more data on control accelerometers. Those control accelerometers

which are known to be reliable are maintained as control units for

measuring the repeatability of the system. One of the control

accelerometers is calibrated each day the system is in vise on two

exciters and the results are kept on file. Although deviations from the

normal sensitivity may be spotted by the operator, checking the deviations

based on data collected over a long time frame is desirable. Data have

been collected over a four-year period on the control accelerometers

using the automated system. Figures 5-1 and 5-2 show the history at

400 Hz over a two-year time span. All the data in figure 5-1 are from

one control accelerometer on one exciter. The data in figure 5-2 are for the same accelerometer (number 1) up to day 256. From day 256 on,

the data 3.re for a second control accelerometer (number 2) with the same nominal sensitivity. Figure 5-3 shows a histogram for 19 72 for control

accelerometer 1 in terms of accumulative average percent deviation from

the mean for a frequency of 400 Hz on two exciters. This is based on 131 data points on each exciter. This gives a measure of the probability

that a given data point will de"viate from the mean sensitivity by a certain amount in percent. For example, figure 5-3 indicates that 90

percent of the time the deviation from the mean at 400 Hz should be

0.5 percent or less. Figure 5-4 shows the same histogram for 1973.

By accumulating data over a long period of time, a data bank can be

valuable for quality control of the system. This type of Information can

be incorporated into a software program in the minicomputer to set upper

and lower bands for deviations of the control accelerometer. For data

falling outside these bands, the computer can be programmed to respond

with messages on the TTY or if desirable, to halt the system. Instead

of a go or no go diagnostic, an analysis of the current data from a control accelerometer could give deviations from the mean based on the

mean in the data bank for each test frequency. These deviations could,

then be translated into frequency of occurence as seen in figures 5-3 and

5-4. A diagnostic message can be printed to indicate in what region the

current data lie in terms of the probability density of the data bank.

5-1
9. 70 9.8C

1

SENblTIVIlY ON DiMOfi LXCIlEh

9.9c ic.cc

2C3

1C«1C 1G-2C

37 •

74-

lie

I

CMONo

pa

D

A

Y

0

F

147-

YE

AR 1831

1

9

7

2

219-

t •

O

o

H

COH

a:

256-

292'

329"

365-1 5-2
9.7C

If—

9*8(

SEMSITI?ITY ON DIMOFF EXCITER 1C2/1C3

9»9C 1C«CC

•f1C.2

37

t •

74

lie •

. :

•

14?

183'

219i

266'

C3> O

PiH

M

MU

O

<3O

H

g

o

>2

Pio

H

M

CM

292

• I

•

329'

• t

o

H

365^

5-3
T

I

I

I

I

I

O O O o o CO ifi (AllSNKl AinmVHOHd)

33N u)Hn:);)0 jo adn 3("io ih i
- o

(AiiSNBQ Ainiavaodd)

33N3adn3DO dO A0N3nD3ad o

M

5-5
II Jii
In Section 2 of this report the hardware components listed a wave

analyzer and dc power supply as equipment for future expansion of the

system. The wave analyzer is tunable by a dc voltage and can be

programmed by remotely tuning it to read harmonic distortion. One of

the digital to analog converters used with the x-y plotter can be used

to tune the analyzer. Since the digital to analog converter has a range of ± 10 volts dc, a dc power supply is needed to supplement it

to give ± 20 volts dc. This can be accomplished by switching in either

a +10 volts or a -10 volts in series with the analog to digital converter.

The software for the analyzer would tune the analyzer for each harmonic

of a given test frequency, one at a time. The output from the analyzer

would then be read by the DVM and the percentage distortion calculated

for each harmonic. This could be printed out after each test point on

the TTY or it could be stored and printed in a summary statement at the

end of a test. Such a procedure would slow down the calibration process

considerably. However, it would add valuable information regarding

the calibration process.

An alternative procedure would be the use of a real time programable

analyzer now commercially available. This could be programmed to take

a spectrum analysis at each test frequency and the harmonic amplitudes

could be stored for analysis and for a summary statement.

The major source of failure in the hardware has been in the

interface cards. These cards were not as reliable as the other

minicomputer hardware. During the course of over four years of operation,

the main frame computer hardware has needed only two service calls. The

interface cards needed several service calls during the first two years of

operation. Apparently, most of the bugs were removed during these two years.

The test instruments which are used by the automated system have proven

reliable except for the ac/dc converters which have a fairly high rate of

failure. A good procedure is to have a backup instrument for each test

instrument used by the system. This is necessary if continuous use is to

be made of the system.

6 . ACKNOWLEDGMENTS

The sponsorship of this project by the Department of the Defense

Calibration Coordination Group is gratefully acknowledged. The success of

this project is indebted to the following people whose contributions are gratefully acknowledged: Seymour Edelman, Roscoe Bloss, and John Ramboz

for planning and encouragement; Carson Meadors and Benton Durley III for

component layout and wiring; Charles Federman for assisting in schematic

drawings; Jim Pollard for checkout and testing; Phillip Stein for use of

his monitor program and magnetic tape drive software; and Linda Ross for

aid in manuscript preparation and typing.

USCOMM-NBS-DC

6-1
7. REFERENCES !

1. B. F. Payne, "Absolute Calibration of Vibration Generators with

Time-Sharing Computer as Integral Part of System", The Shock and

Vibration Bulletin . 36, Part 6, Feb. 1967, pp. 183-19A.

2. Samuel Levy and Raymond R. Bouche, "Calibration of Vibration

Pickups by the Reciprocity Method", Journal of Research NBS 57 ,

. pp. 227-243 (1956) RP2714.

3. T. Dimoff , "Electrodynamic Vibration Standard with a Ceramic

Moving Element", Journal of the Acoustical Society of America , Vol. 40, No. 3, Sept. 1966, pp. 671-676.

4. B. F. Payne, "An Automated Precision Calibration System for

Accelerometers" , 17th National Aerospace Instrumentation

Synq)osium, May 1971.

5. V. A. Schmidt, S. Edelmm, E. R. Smith, and E. T. Pierce,

"Modulated Photoelectric Measurement of Vibration", Journal of

the Acoustical Society of America , Vol 34, No. 4, pp. 445-458

(1962)

.

7-1


[
PATCH PANEL 1

SIGNAL JUNCTION BOX - EXTERNAL CONNECTIONS

(?) ^

^

(16) ^

© (p (5) ^ REF. 1 HEF. 2 TEST 1 TEST 2 wAve

ANAL- tN CATHODE FOLLOWER

DC AMP,

7 OUT

REF. CONV,

TEST CONV,SCOPE

SEEK © ® © © © © © © © ©

OUT © ©

®

OVM ® ®

REF ®

REF, ©TEST ©

TEST © ©

OC POWER ©D / A © © ©

SIGNAL ANALYZER

OUT

CONV.

FUNC. RANGE

CONV.

FUNC. CONV

RANGE

SUPPLY OUTPUT

CH, 1 ANALYZER

TUNING

DASHED LINES INDICATE FRONT

CONNECTIONS ON PATCH PANELS FOR

TYPICAL TEST

33X^

FIGURE 2-1 DIAGRAM OF SYSTEM

INTERCONNECTIONS

SYSTEM INSTRUMENT.S

(T)—II REFERENCE 1

@—I' REFERENCE2 ©-

DRIVE COIL 1
I

c

Bi-iurv^G.^APHIC DATA

j SHEET j NRSTR

2. ( .•••, 3. '. , \ . -n > j.

t. TITLE AND SlKl ITl.E

AN AUTOMATED SYSTEM FOR PRECISION CALIBRATION

OF ACCELEROMETERS

5. Pubiic.uio:i O.-itc April 19 74

6. Performing Organization Code

7 . AUTHOR(S) 8. Performing Organ. Report No.

9:'PERFOR.MiNG ORGANIZATION NAME AND ADDRESS

NATIONAL BUREAU OF STANDARDS

DEPARTMENT OF COMMERCE

WASHINGTON, D.C. 20234

10. Project/Task/'il'ork Unit No.

11. Contract/Grant No.

12. Sponsoring Organization Name and Complete Address (Street, City, State, ZIP) 13. Type of Report & Period

Lovered

14. Sponsoring Agency Code ' CCG 69-13

lis. SUPPLEMENTARY NOTES

5. ABSTRACT (A 200-word or less factual summary oi most sigpilicant information. If document includes a significant

f bibliography or literature survey, mention it here.)

The report describes an automated system for accelerometer calibration under

realtime control by a small, dedicated digital computer. The hardware components

of the system and the software programs are given. The software automatically

regulates the rate and amount of data collected based on analysis of input data.

Printout of the frequency response of test accelerometers is on a teletypewriter

and also can be stored on a magnetic tape. Manual operation of the system is

also described.

17. KEY ^ORDS (six to twelve entries; alphabetical order; capitalize only the first letter of the first key word unless a proper name; separated by semicolons

)

I Acceleration, automation, calibration, measurements, Tniniconqjuter , shakers, standards,

! transducers, vibration, vibration exciters, vibration pickups.

18. AVAiLABlLlT') [X~ Unlimited 19. SECURITY CLASS

(THIS REPORT)

21. NO. OF PAGES

•'~ " For Official Distribution. Do Not Release to NT IS UNCL ASSIFIED

Order i' rom

'A .i-^hington Sup. of Doc, U.S. Government

, D.C. 2U-i'J2. SO Cat. No. CH

Printing Office 20. SECURITY CLASS

(THIS PAGE)

22. Price

Order From

Spr;nj::'ield, National Technical InformationVirginia 22151

Service (NTIS)

UNCLASSIFIED

USCOMM.DC 2tjC42-P74
^ START ^ ^ 081 A ^

START 77^ 085E

LOAD

EXCITER 1 CAL FACTORS

LOAD

EXCITER 2

2 CAL. FACTORS

SET EXCITER FLAG 0-

RESET

INVERSE FLAG

SET EXCITER FLAG

SET INVERSE FLAG (09EEI

SET OSC. ZERO

OUTPUT

CLEAR THRU

FLAG

' READ FREQ. FROM

COUNTER /

SET: OVM - VOLT/

SET g LEVEL / GIVEN IN / DATA BLOCK /

SET: OVM -

RATIO READ RATIO I /

SET: RELAYS - RATIO II

SET; RELAYS - RATIO II

SET LOW / NOR

PICKUP CODE

1 OR 0

SET DVM

10 VOLT RANGE j SET RANGE / FLAG 0010 /

SET RANGE

FLAG 0001

SET THRU

FLAG

fOOOl"! Rll S „- ipoiof

CALCULATE

DEC, PT. LOCATION

CAL. NO. DIGITS TO

TYPE OUT

CAL. NO. DIGITS BEFORE DEC.

STORE FREQ.

S, IN TABLES

SET STABLE

/

UNSTABLE

FLAG

^

STOP AT R ^

CLEAR

TEST PT. COUNTER

SET OSC. ZERO

OUTPUT

TTY:

LF. OR. BELL 0

NOTE: S^ = SENSITIVITY OF

TEST PICKUP S„ = SENSITIVITY OF STANDARD PICKUP BOXES WITH DASHED LINES

INDICATE FUTURE PROGRAM PLANS.

FIGURE 3-4. SUMMARY FLOW CHART

ii