Front End Support for 145 Vacuum Card

Description

There are three types of devices: vacuum average, array of vacuum readings, and individual readings. The vacuum average device also returns a number of other potentially interesting parameters.

VACUUM AVERAGE

Name: M:A1VAC
Properties supported: Reading, Basic Status, Analog Alarm, EMC, Setting, Basic Control
SSDN (all properties):
0 0
0 OID = 71 (hex)
crate slot
0 0
EMCs:
02 (hex) FF (hex)
nn cc
0 0
0 0

05 (hex) FF (hex)
nn cc
0 0
0 0

Where nn is the CAMAC slot and cc is the CAMAC crate.

Reading

The first four bytes of the reading property return the vacuum average in IEEE floating point format. This number will appear when the device is called up on a parameter page, and it can be data logged, etc. The rest of the reading property contains miscellaneous diagnostic information which can be obtained from the card, in the event that an application page wants to display it.

Note that the selective datapool services demand that the reading buffer be padded out to a multiple of four bytes (the default length in the data base). You can read arbitrary slices out of this buffer, but you must always read an exact multiple of four bytes.

The reading data looks like this:

# BytesCamac Func.Meaning
4F(2)A(0-1)*Vacuum Average
2F(0)A(6)# of pumps returning bad readings
2F(0)A(12)# of pumps included in the average
4F(2)A(2-3)*Age (15 hz ticks)
2F(0)A(7)# of vac. interface timeouts
2F(0)A(13)# of vac. interface resets
2F(0)A(14)# of parity errors
2F(0)A(8)# of floating point errors
2F(6)A(1)Firmware version number
2noneSpare word, returned as zero.

(*) For the Vacuum average the front end reads F(2)A(0) first, followed by F(2)A(1). This sequence is guaranteed to produce a whole consistent 4 byte floating point number. The front end word swaps the number so that the console doesn't see "68000 format" IEEE numbers. In other words, the console can use FPIEEE to convert. For the age, the front end reads F(2)A(2) first, followed by F(2)A(3). The result is word swapped by the front end, so that the console sees the least significant part of the age in the low address word.

Basic Status

We combine several sources of status (and other bits related to status) into a single basic status word as follows:

BS BitCamac Func.Meaning
0F(0)A(1)1 = Heart beat OK
1"1 = Vacuum data collection in progress
2"1 = Vacuum interface timeout error
3F(0)A(2)1 = Average is out of tolerance
4"1 = 15 (or more) pumps w/ bad readings
5F(0)A(3)1 = Out of tolerance alarm is masked off
6"1 = 15 (or more) bad rdgs alarm masked off

Setting

Here we control the individual pump unequipped and out of service bits. The whole array (for 64 channels) constitutes the setting property, which can then be saved on the D1 save/restore page. If a 145 card is changed out, it should be possible to restore this information into the new card.

This information is included with the M:A1VAC (general parameters) device, instead of the M:IPA1 (array of pumps) device, so that we will need to restore only the M:A1VAC device.

The setting data buffer is 64 bytes long. It is read with F(17)A(0)/F(1)A(0), and written with F(19)A(1)/F(19)A(0). The format of each byte is as follows:

	Bit 0:  1 = pump equipped (settable)
	Bit 1:  1 = pump in service (settable)
	Bit 5:  1 = bad reading from pump (bad BCD digit)
	Bit 6:	1 = parity error
	Bit 7:  1 = timeout error

Analog Alarm

The two LAM bits (vac avg and to many bad pumps) are controlled TOGETHER as the single analog alarm bypass bit. When alarms are bypassed, both bits are masked. When alarms are enabled, both bits are unmasked. If either bit shows bad, then the analog alarm is issued. The two bits can be examined individually in the basic status word.

The front end forces the module LAM enabled, which is how we should run at all times.

Otherwise the analog alarm property is straight forward:

Good/Bad bit:LAM bits from F(0)A(2) or-ed together
Bypass bit:LAM bits from F(0)A(3) & F(16)A(1) or-ed together
Low limit:Zero (constant)
High limit:F(2)A(4-5) & F(16)A(5)
Tries needed:F(0)A(10) & F(16)A(10)
Tries now:F(0)A(11)
Current reading
(for alarm report):
F(2)A(6-7)

Both the alarm limit and current reading are word swapped by the front end so that they appear in the console in FPIEEE format, not "68000 IEEE" format.

Basic Control

The reset functions are supported. The following basic control word values perform the following functions:

	1   F(24)A(1)  Reset vacuum interface
	2   F(24)A(2)  Reset floating point coprocessor
	3   F(9)A(0)   Reset the module and the works

ARRAY OF READINGS DEVICE and INDIVIDUAL READINGS DEVICES

Names: M:IPA1 (Array of all ion pumps in A1), M:IPA101 - M:IPA163 (63 individual channels)
Properties supported: Reading, Basic Status

The difference between these devices is in the lengths. The array device is long enough for the oscillator output (channel 0) plus all 63 possible pumps. Each individual device is long enough for only one pump.

The default length of the array device is four bytes, so that on a parameter page you will see the value of the oscillator output.

SSDN (Array Device):
0 0
0 OID = 72 (hex)
crate slot
0 0
SSDN (Individual Ion Pump):
0 0
0 OID = 72 (hex)
crate slot
0 aa

Where nn is the CAMAC slot, cc is the CAMAC crate, and aa is the pump number.

Reading Data

Array of 64 readings, each 4 bytes long (for the array device), or a single 4 byte reading. Data is read with F(16)A(0)/F(0)A(0).

Note that the front end word swaps this data, so that it is possible to use the console routine FPIEEE to convert it to DEC floating point format.

Basic Status

One word containing F(1)A(0) status in the low order byte. This is described under the setting property of the general parameter device. For the array device you will get the status byte for the channel 0 oscillator output, otherwise you get the status for the individual pump.

Security, Privacy, Legal