BRENNAN MICHAEL JAMES JR (US)
US2925553A | 1960-02-16 | |||
US3042860A | 1962-07-03 | |||
US4345204A | 1982-08-17 | |||
US3496464A | 1970-02-17 | |||
US3281675A | 1966-10-25 |
1. | Apparatus for automatically measuring various parameters of each of a plurality of capacitors comprising: a predetermined number of test fixtures each test fixture being adapted to receive one of the capacitors to be tested; a plurality of measurement devices each operative to measure at least one predetermined parameter of a capacitor; a relay matrix connected between the test fixtures and the plurality of measurement devices; means for energizing predetermined combinations of relays in the relay matrix accordance with a predetermined sequence thereby to connect predetermined ones of the test fixtures with predetermined ones of the measurement devices; and control means for asserting the particular one of the measurement devices connected to the particular test fixture via the energized relays in the relay matrix to measure the predetermined parameter of the capacitor. |
2. | The apparatus of claim 1 wherein one of the measurement devices is operative to measure the capacitance of the capacitor. |
3. | The apparatus of claim 1 wherein one of the measurement devices is operative to measure the dissipation factor of the capacitor. |
4. | The apparatus of claim 2 wherein a different one of the measurement devices is operative to measure the dissipation factor of the capacitor. 58 . |
5. | The apparatus of claim 1 wherein one of the measurement devices is operative to measure the insulation resistance of the capacitor by measuring the leakage current of the capacitor at a predetermined applied electrical potential. |
6. | The apparatus of claim 3 wherein a different one of the measurement devices is operative to measure the insulation resistance of the capacitor by measuring the leakage current of the capacitor at a predetermined applied electrical potential. |
7. | The apparatus of claim 4 wherein a different one of the measurement devices is operative to measure the insulation resistance of the capacitor by measuring the leakage current of the capacitor at a predetermined applied electrical potential. |
8. | The apparatus of claim 5 further comprising a separate source of high voltage electrical potential operative in response to the control means and in conjunction with the device for measuring the insulation resistance of the capacitor. |
9. | The apparatus of claim 6 further comprising a separate source of high voltage electrical potential operative in response to the control means and in conjunction with the device for measuring the insulation resistance of the capacitor. |
10. | The apparatus of claim 7 further comprising a separate source of high voltage electrical potential operative in response to the control means and in conjunction with the device for measuring the insulation resistance of the capacitor. |
11. | The apparatus of claim 5 wherein the device for measuring the insulation resistance of the cap: itor includes an internal source of electrical potential. 59 . |
12. | The apparatus of claim 6 wherein the device for measuring the insulation resistance of the capacitor includes an internal source of electrical potential. |
13. | The apparatus of claim 7 wherein the device for measuring the insulation resistance of the capacitor includes an internal source of electrical potential. |
14. | The apparatus of claim 1 further comprising: means for generating a signal representative of the temperature of the capacitor connected to the measurement device. |
15. | The apparatus of claim 1 wherein each relay in the relay matrix comprises a high insulation resistance flying lead relay. |
16. | The apparatus of claim 1 wherein the measurement devices and the relays in the relay matrix are connected by coaxial cables, each cable having a first and a second end and having a shield, the shields of the cables being connected to a common potential at the first end of each shield. |
17. | The apparatus of claim 1 further comprising: a metal housing, each of the test fixtures being mounted in the housing, a door on the housing, a door actuated switch connected between the high voltage source and ground potential, the switch being responsive to the opening of the door to prevent an electrical shock hazard to an operator. 60 . |
18. | The apparatus of claim 1 further comprising: capacitor discharge means connected across all of the test fixtures for discharging a capacitor previously connected to the source of high voltage by the energization of a relay. |
19. | The apparatus of claim 14 further comprising: means for recording the signal representative of the temperature of the capacitor connected to the measurement device. |
20. | The apparatus of claim 1 further comprising: means for recording the measured parameters of each of a plurality of capacitors. |
BACKGROUND OF THE INVENTION
Field of the Invention The present invention relates to automated test equipment for the testing of capacitors.
Description of the Prior Art
Capacitors manufactured using a film dielectric are typically characterized by the same electrical parameters as are ceramic or electrolytic capacitors. Representative of such parameters used to characterize film dielectric capacitors are capacitance, insulation resistance (i.e., leakage current), and dissipation factor. These are the parameters typically tested in order to insure that the manufacturing process produces devices that meet acceptable specified limits.
Individual pieces of test equipment are available for testing each of these various parameters. However, in order to obtain statistically significant results a large number of capacitors should be tested. Testing capacitors according to present industry practice is a time-consuming and labor intensive process. To effect such testing each capacitor is presently individually connected in turn to each piece of test apparatus and the appropriate test run on that apparatus. Since the testing of all of the capacitors should be effected under substantially identical test conditions, such as temperature and humidity, it is difficult to guarantee that such will be the case when a large number of capacitors are individually tested. Accordingly, it is believed advantageous to provide an apparatus which will automatically test each of a plurality of
capacitor samples for each of a predetermined number of parameters under substantially identical test conditions.
SUMMARY OF THE INVENTION The present invention relates to an apparatus for automatically measuring characteristics, such as capacitance, dissipation factor and insulation resistance, of each one of a plurality of capacitors. The apparatus includes a predetermined number of test fixtures, each test fixture being adapted to receive one of the capacitors to be tested, and a plurality of measurement devices for measuring various parameters. A relay matrix, having a plurality of relays therein, is connected such that each test fixture may be connected to one of the measurement devices and to a high voltage source of electrical potential. Also included in the test apparatus is means for energizing predetermined ones of the relays in accordance with a predetermined sequence thereby to connect the capacitor associated with each relay to the desired measurement device. Control means is provided for asserting the measurement devices and for controlling the output of the voltage source to apply a predetermined high voltage to each capacitor connected to the source by the energization of a relay.
The apparatus further includes recording means associated with the measurement devices for recording the measured values of the capacitor. In the preferred instance the energizing means, the control means, and the recording means are implemented using a digital computer operating in accordance with a program.
Each test fixture is configured from a socket having a body with a first and a second group of receptacles disposed in the body. Each group contains at least one receptacle. A first lead on each capacitor being tested _is receivable by a receptacle in the first group of receptacles and a second lead on the capacitor is receivable by a receptacle in the second group. The first receptacle is connected to a first contact set and the second receptacle is
connected to a second contact set of the relay associated with the test fixture.
BRIEF DESCRIFΓION OF THE DRAWINGS The invention will be more fully understood from the following detailed description thereof, taken in connection with the accompanying drawings, which form a part of this application and in which:
Figure 1 is a system block diagram of the automatic capacitor testing apparatus in accordance with the present invention;
Figure 2 is a schematic diagram of the interconnection circuitry in the capacitor holding assembly used in the capacitor testing apparatus of the present invention; Figures 3A, 3B and 3C are, respectively, a plan, side elevational and bottom views of the physical structure of a capacitor test socket assembly for use in the capacitor testing apparatus of the present invention; and
Figure 4 is a flow diagram of the operation of the automatic capacitor testing apparatus in accordance with the present invention.
An Appendix containing a listing of a computer program in HP BASIC 2.1 language is appended to this application following the specification preceding the claims. The Appendix forms part of this application.
DETAILED DESCRIPTION OF THE INVENTION Throughout the following detailed description similar reference characters refer to similar elements in all figures of the drawings.
■ >* With referenQe.-to Figure 1 shown is a system block diagram of an automatic capacitor testing apparatus in accordance with the present invention for automatically measuring various predetermined parameters of each of a plurality of capacitors. The
testing apparatus is generally indicated by reference character 10. The parameters able to be tested include capacitance, insulation resistance (i.e., leakage current), and dissipation factor.
The testing apparatus 10 includes a controllable high voltage source 12 of electrical potential, an N position capacitor holding assembly 16, an interface 18, a combination inductance, capacitance and resistance (LCR) measurement device 20, a picoampere current measurement device 22, temperature measuring device 24 and a programmable controller 26. The interface 18 is implemented using a card cage such as that manufactured by Hewlett Packard Inc., Palo Alto, California and sold as the model number HP 6942A multϊprogrammer interface. Suitable for use as the controller 26 is the device manufactured by Hewlett Packard Inc., Palo Alto, California and sold under model number HP 9826. The combination inductance, capacitance and resistance (LCR) device 20 is preferably implemented using a Hewlett Packard HP 4274A instrument. The picoampere current measuring device 22 is preferably a Hewlett Packard HP 4140B instrument. The temperature measuring device 24 is preferably implemented using a device manufactured by John Fluke
Manufacturing Co, Everett, Washington, and sold under model number 2170A. If desired the assembly 16 may be thermally insulated and/or temperature controlled to insure a particular predetermined temperature under which the capacitors are to be tested.
The source 12 is connected by a high voltage input line 32 and a high voltage ground line 34 to the capacitor holding assembly 16. The lines 32 and 34 are implemented as a coaxial cable. The use of a coaxial cable throughout the apparatus 10 is preferred to insure immunity to electrical noise. Suitable for use as the s irce 12 is a high vojtage power supply such as that manufactured and sold by Bertan Company of Syosset, New York and sold as model number 205A-01R. The assembly 16 contains an interconnection network generally indicated by reference numeral
30 and a predetermined number N of test fixtures 38-1 through 38-N. As used herein, high voltage is meant to denote dc voltages up to one thousand (1000) volts. Disposed in the holding assembly 16 in temperature sensing proximity to the fixtures 38 Is a temperature probe 24P connected to the temperature measuring instrument 24 over a line 24L. In the preferred implementation the probe 24P and the line 24L are provided as a part of the instrument 24, but it should be appreciated that a separate probe or probes may be used to measure the temperature of the fixtures and to provide a signal representing the same to the instrument over a suitable interconnection line(s).
.As may be understood from Figure 2, the lines 32 and 34 are connected by a coaxial jack 40, through a relay 98, to a high rail 42 and a common potential point 94. A high resistance (on the order of fifty thousand ohms) and high wattage (on the order of twenty five watts) resistor 46 is connected in series between jack 40 and the high rail 42 to protect the power supply 12. A door interlock switch 48 and a door actuated rail shorting switch 50 are both physically mounted within a metal enclosure provided for the capacitor holding assembly 16. A portion of the enclosure is diagrammatically indicated by the reference character E. The enclosure E is provided with an access door diagrammatically indicated by the reference character D. The enclosure E having the door D therein may be formed by any suitable construction well within the skill of the art or any commercially available electrical box may be used. The interlock switch 48 is implemented using a pair of microswitches 48A, 48B, from which emanate a pair of lines 48L. The lines 48L are connected to a distribution board 52(see Figure 1). The output 54 from the board 52 is connected to the enable terminal of the supply 12. Suitable for use as the
<& ■ x microswitches 48 are devices manufactured by Omron Corp., of Schaumburg, Illinois and sold as model number S-5HL12-IAS-K. The rail shorting switch 50 is formed by a pair of contacts 50X, 50Y that are bridged by a contact disc 50D. The disc 50D is connected
to a spring loaded plunger 50P that physically engages the door D of the enclosure E. When the door D is closed the plunger 50P causes the disc 50D to disengage from the contacts 50X, 50Y. When the door D is opened switches 48 open, thereby disabling the high voltage supply 12 via the board 52 and the line 54 therefrom. .Also, upon further opening of the door D the disc 50D engages the contacts 50X, 50Y and shorts the high rail 42 to chassis ground on enclosure E to prevent an electrical shock hazard to the operator. Figure 2 depicts the disc 50D in the position it occupies relative to the contacts 50X, 50Y when the door D is closed.
As is seen in Figure 2 each test fixture 38 is connected between the high rail 42 and the low rail 44. Each test fixture 38 is adapted to receive one of the capacitors to be tested. Each fixture 38 includes a socket assembly, generally indicated by reference character 60, and a relay 66. Each relay 66 includes two pairs of contacts 66C1 and 66C2 and an actuating coil 66S. The coil 66S of each relay 66 is connected over lines 68 extending to the interface 18 as will be described. Suitable for use as the relays 66 are those high insulation resistance, flying lead relays manufactured by Douglas Randall Company of Pawcatuck, Connecticut as model number 379525.
As seen in Figures 3A through 3C the socket assembly 60 physically comprises a body portion 70 formed of an insulating material such as polyamide-imide, manufactured by Amoco Chemical Co. under the trademark Torlon. The body portion 70 has a predetermined number of receptacles 72 arranged therein. In the preferred instance the receptacles 72 are arranged in two groupings indicated by the reference characters 72A and 72B. In the preferred case the socket assembly 60 is implemented using a zero insertion force, dual in line planar device such as that manufactured and sold by Textool Incorporated, Irving, Texas, under model number 240-3346-00-2402. The assembly contains dual rows of adjacent receptacles, and thus may be used to define a pair of socket assemblies. The assembly is
modified by removing several of the receptacles and associated pins and wiring together the remaining pins to define the receptacle groupings discussed above. This increases the electrical isolation of the receptacles in each grouping. The openings from which the receptacles have been removed are filled with a nonconducting polymeric material such as epoxy.
The interconnection network 30 includes a dedicated relay arrangement adapted to interconnect each of the test devices to the high and low rails 42 and 44, respectively. In general, in the preferred embodiment illustrated the network 30 includes a first relay arrangement 80 that interconnects the LCR instrument 20 to the rails 42 and 44 and a second relay arrangement 85 that interconnects both the measurement and the voltage source terminals of the picoampere instrument 22 to the rails 42 and 44 and a third relay arrangement 86 that interconnects only the measurement terminals of the picoampere instrument 22 and the separate external high voltage source 12 to the rails 42 and 44.
In the preferred embodiment illustrated in Figure 2 the first relay arrangement 80 is implemented using a pair of double pole, normally open relays 81, 82, each identical to the relay 66. The relay 81 includes a dual contact set 81C1, 81C2 and an actuating coil 81S while the relay 82 includes a dual contact set 82C1, 82C2 and an actuating coil 82S. The pair of relays 81, 82 is required to implement the first relay arrangement 80 since the particular measuring instrument (the LCR instrument 20) has four measuring terminals. One side of the contacts of the relays 81, 82 of the first relay arrangement 80 is connected to the instrument 20 over a group 83 of four lines 83L-1, 83L-2, 83L-3 and 83L-4. Each of the lines 83L-1, 83L-2, 83L-3 and 83L-4 is preferably implemented using a coaxial cable. The other side of the contacts 81 Cl and 81C2 of the relay 81 is connected to the high rail 42 over lines 84L-1 and 84L-2. The other side of the contacts 82C1 and 82C2 of the relay 82 is connected to the low rail 44 over lines 84L-
3 and 84L-4. The coils of the relays 81, 82 are wired in parallel and connect to the interface 18 over a pair of control lines 80L.
The second and third relay arrangements 85 and 86 are each implemented using a pair of double pole, normally open relays 87, 88. and 87, 98, respectively, each identical to the relay 81. The relay 87 includes a dual contact set 87C1, 87C2 and an actuating coil 87S while the relay 88 includes a dual contact set 88C1, 88C2 and an actuating coil 88S. The pair of relays 87, 88 is required to implement the second relay arrangement 85 since the particular measuring instrument (the picoampere measuring instrument 22), when using its internal voltage source, has four required connections, two measurement terminals and two voltage terminals. One side of the contacts of the relays 87, 88 of the second relay arrangement 85 is connected to the instrument 22 over a group 90 of four lines 90L1, 90L2, 90L3 and 90L4. The lines 90L1 and 90L2 are preferably implemented as the two inner conductors of a triaxial cable. The lines 90L3 and 90L4 are preferably implemented as the center conductor and the shield of a coaxial cable. A high resistance (on the order of fifty thousand ohms) and high wattage (on the order of twenty five watts) resistor 91 is connected in series between line 90L3 and the high rail 42 to protect the internal voltage source of picoampere instrument 22. The other side of the contact 87C1 of the relay 87 is connected to the low rail 44 over a line 92L1. The other side of the contact 88C1 of the relay 88 is connected to the high rail 42 over a line 92L3. The other side of the contacts 87C2 and 88C2 of the relays 87, 88 are connected to a point of common potential 94. The coils of the relays 87, 88 each connect to the interface 18 over pairs of control lines 87L, 88L. The third relay arrangement 86 is comprised of the pair of relays 87, 98 (each identical to the relay 81). The relay 98 includes a dual contact sel 98C1, 98C2 and an actuating coil 98S. The pair of relays 87, 98 is required to implement the third relay arrangement 86 since the particular measuring instrument (the
picoampere measuring instrument 22), when used with a separate external voltage source, has two required connections (the two measurement terminals) and the separate external voltage source has two required connections. The coil 98S of the relay 98 is connected to the interface 18 over a pair of control lines 98L. One side of the contact 98C1 is connected to the high rail 42. The other side of the contact 98C1 is connected to the supply 12 over the line 32. The first side of the contact 98C2 is connected to the point of common potential 94. The second side of the contact 98C2 is connected to the supply 12 over the line 34.
The interconnection network 30 further includes a discharge relay arrangement 102 comprising a relay 103 identical to the relay 81. The relay 103 includes a dual contact set 103C1, 103C2 and an actuating coil 103S. The coil 103S of the relay 103 is connected to the interface 18 over a pair of control lines 103L. One side of the contact 103C1 is connected to the high rail 42. The other side of the contact 103C1 is connected in series with a high resistance (on the order of fifty thousand ohms) and high wattage (on the order of twenty five watts) resistor 106 to chassis ground of enclosure E. One side of the contact 103C2 is connected to the low rail 44. The other side of the contact 103C2 is connected in series with another high resistance (on the order of fifty thousand ohms) and high wattage (on the order of twenty five watts) resistor 108 to chassis ground of enclosure E. The discharge relay arrangement 102 provides means to dissipate stored energy remaining across a capacitor in the test fixture and thus provides capacitor discharge means connected across the fixtures for discharging a capacitor previously connected to either the internal high voltage source of the picoampere instrument 22 or the separate external high voltage source 12.
The interconnection arrangement above described for interconnecting the particular test instrument to the holding assembly 16 is necessary to permit accurate measurement by the instrument of the desired parameter. The shielding of the cables.
the interconnection of their shields to a common potential, and the very high insulation resistance (on the order of hundreds of thousands of megohms) of the relays used allows an accurate measurement to be made. The key point to note is that even though the capacitor being tested is physically remote from the instrument, in accordance with the present invention it appears as if it is electrically proximal to the instrument.
The relays in the capacitor holding assembly 16 together with the relays in the interconnection network 30 cooperate to form a relay matrix connected between the test fixtures 38 and the plurality of measurement devices 20, 22 (and, when used in conjunction with the test instrument 22, as will be developed, the high voltage supply 12).
Mounted in the interface 18 is a relay output control arrangement generally indicated by reference character 110. The relay output control 110 includes, in the preferred case, one or more output modules such as those manufactured by Hewlett Packard Inc., Palo Alto, California and sold under model number 69730A. The relay control 110 is connected to the relay control lines 68 emanating from the coils of each of the relays 66 respectively disposed in each of the test fixtures 38 and to the relay control lines 80L, 87L, 88L, 98L and 103L. The relay output control 110 is connected to an internal bus 114. The bus 114 is connected through an interface 116 and over a communications bus 120 to the programmable controller 26. The communications bus 120 may be implemented in accordance with IEEE Standard 488. The controller 26 and the relay output control 110 act together to assert the coil 66S associated with a given one of the relays 66 by sending an enabling signal over the control lines 68 associated with the predetermined relay 66. The controller 26 and the relay output control 110 also act-together to assert one or more of the paired coils 8 IS, 82S, the coils 87S and 88S, and the coils 87S and 98S respectively associated with a given one or more of their associated relays by sending an enabling signal over the appropriate
respective control lines 80L, 87L, 88L and 98L. Thus, the controller 26 and the relay output control 1 10 together define means for energizing predetermined combinations of the relays in the relay matrix in accordance with a predetermined sequence thereby to connect a capacitor mounted in predetermined ones of the test fixtures with predetermined ones of the measurement devices. The controller 26 and the relay output control 110 additionally act together to assert the coil 103S associated with the discharge relay 103 by sending an enabling signal over the appropriate control line 103L.
.Also mounted in the interface 18 is a digital output module 122. Preferred for use as the digital output module 122 is the device manufactured by Hewlett Packard Inc., Palo Alto, California and sold under model number 69731 A. The output of the module 122 is applied to the high voltage supply 12 over the lines 124. The digital output module 122 is connected to the internal bus 114 and, thus, to the programmable controller 26. In a manner to be described the controller 26 together with the digital output module 122 to define control means for controlling the output of the voltage source 12 to apply a predetermined high voltage. .Also mounted in the interface 18 is a digital input module 126. Preferred for use as the digital input module 126 is the device manufactured by Hewlett Packard and sold under model number 69771A. The input of the module 126 is connected to the temperature measuring instrument 24 over the lines 128. The module 126 is connected to the internal bus 114 and thus to the programmable controller 26. The probe 24P provides means for generating a signal representative of the temperature on the interior of the capacitor holding assembly 16 and, thus, of a capacitor in a test fixture while the the instrument 24, the module 126 anoVthe controller 26 cooperate to define means for recording the temperature. In the embodiment described the value of the temperature is stored in the memory of the controller 26. Of course, any suitable recording device indicated diagrammatically at
26R could be used in conjunction with the controller 26. As an example, the device 26R may take the form of a magnetic media recording device, a hardcopy printer, a plotter and/or a CRT display. The instruments 20 and 22 are interconnected to the controller 26 over the communications bus 120.
The operation of the apparatus heretofore set forth will be explained in the context of testing multiple capacitors for various parameters, including, for example, capacitance, dissipation factor and insulation resistance. With reference to the block diagram of the program shown in Figure 4, at 150 the operator initializes the apparatus 10 by energizing the hardware and loading the program defining the test protocol into the controller 26. See pages 20 through 25 of the Appendix at reference character 150.
The operator then loads the capacitors to be tested into the appropriate test fixtures 38-1 through 38-N. Not all of the fixtures need be used. The individual capacitors are loaded with one lead of the capacitor inserted into a receptacle in the receptacle group 72A and other lead into a receptacle in receptacle group 72B. The appropriate receptacle in the particular receptacle group is selected based upon the physical size of the capacitor. Once the capacitors are locked in place, the door D of the enclosure surrounding the holding assembly 16 is closed, thus closing the interlock switch 48 and opening the rail shorting switch 50, thereby allowing a voltage to appear across the high rail 42 and the low rail 44.
As also shown at 152, the operator provides sample identification and test details. Examples of the former include sample description, capacitor type (metallized film, • film/foil, electrolytic, multilayer ceramic, etc.), film thickness, and testing date. Test detail information includes operator name, job number, starting sample number, total number of samples, and. the number of voltages and the specific voltage levels at which insulation
resistance is to be measured. See pages 20 and 25 through 29 of the Appendix at reference character 152.
In summary, upon the operator's command, the automatic test sequence begins. The test protocol sequentially discharges all the capacitors to be tested, measures the temperature of the capacitor holding assembly 16, selects a test instrument to be used to make one or more measurements of selected parameters on each capacitor. The capacitors to be tested are then connected sequentially to the selected test instrument, the parameters measured and recorded by the controller. The controller again sequentially discharges all the capacitors. The next test instrument is selected and the capacitors are again connected sequentially, the parameter(s) measured and recorded. This sequence is repeated until all parameters of all capacitors have been recorded. The temperature of the capacitor holding assembly 16 is measured a second time to insure that the temperature has not changed substantially since the testing began. After all parameters have been measured the controller again sequentially discharges all the capacitors. In this way it may be seen that the apparatus in accordance with the present invention automatically tests each of a plurality of capacitor samples for each of a predetermined number of parameters under substantially identical test conditions.
As seen at 154 in Figure 4 the discharge relay 103 is asserted under program control to dissipate any residual charge on the capacitor. The coil 103S of the discharge relay 103 is asserted over the line 103L by the control module 110 in response to the controller 26. After a predetermined delay (typically six seconds), to dissipate any remaining charge on the capacitor, the relay 103 is opened. The listing of the routine
154*is set forth at pages 3i and 32 of the Appendix. Calls to the routine 154 are made throughout the program listing and are indicated therein by the dashed suffix following the reference character 154. See, for example, page 20 at reference character 154-1.
As also seen at 156 the overall temperature of the capacitor holding assembly 16 is measured by causing the digital input module 126 to read the output of the digital temperature measuring device 24. The listing of the routine 156 is set forth at pages 47 and 48 of the Appendix. Calls to the routine 156 are made throughout the program listing and are indicated therein in the manner similar to that discussed above. See, for example, page 20 at reference character 156-1.
In general once the temperature has been measured the controller 26, under program control, selects a predetermined one of the measurement instruments. In the discussion that follows it is assumed that the parameters of capacitance and dissipation factor are measured simultaneously for each selected capacitor. After all capacitors have been measured for these parameters then insulation resistance is measured for each capacitor.
The measurement of capacitance and dissipation factor is effected by the controller 26, as generally indicated at 158. See, pages 32 through 34 of the Appendix. See, page 21 for the call to the routine 158, indicated at reference character 158-1.
As seen at 158A the LCR instrument 20 is connected to the selected capacitor by causing the relay control module 110 to close the relay arrangement 80. This is effected by the assertion of the relay coils 8 IS and 82S over the line 80L. See, page 33 of the Appendix, at reference character 158A. As seen at 158B, the controller 26, under program control, then selects a predetermined one of the capacitors (corresponding to number of the fixture at which testing is to begin). The desired one of the capacitors is selected by closing the corresponding one of the relays 66-1 through 66-N by the controller 26 sending a command to the relay output control 110 which asserts the appropriate one of the coils 66S in the appropriate relay 66 to connect the fixture between the high and low rails 42 and 44, respectively. See, page 33 of the Appendix, at reference character 158B.
From the foregoing it may be appreciated that a predetermined combination of relays in the relay matrix has been energized to connect a predetermined one of the test fixtures with a predetermined one of the measurement devices. The controller 26 then begins the measurement of at least a predetermined one of the parameters of that selected capacitor. As seen at 158C, the particular one of the measurement devices connected to the particular test fixture via the energized relays in the relay matrix is asserted. In the specific instance under discussion the controller 26 sends a command over the bus 120 to the LCR instrument 20 asserting it to simultaneously measure the capacitance and dissipation factor of the selected capacitor. See, page 33 of the Appendix, at reference character 158C. The instrument performs the measurement and reports the results to the controller 26 over the bus 120. See, page 33 of the Appendix, at reference character 158C. As seen at 158D the result is stored in the memory of the controller 26. See, page 33 of the Appendix, at reference character 158D. In the particular LCR meter used, capacitance and dissipation factor are measured simultaneously, although they may be measured separately. Modification of instructions on page 33 of the Appendix, at reference characters 158C and 158D, would be required to do this. As set fort at 158E, once all of the tests being are performed the instrument 20 it is disconnected from the selected capacitor by turning off the relay arrangement 80. See page 33 of the Appendix, at reference character 158E.
As seen at the call 154-2, the routine 154 is again performed, thus the discharge relay 103 is again asserted under program control to dissipate any residual charge on the capacitor. See, pages 21 and 31 of the Appendix, at reference characters 154-2 and 154, respectively.
As seen at 156-2 the overall temperature of the capacitor holding assembly 16 is again measured by causing the
digital input module 126 to read the output of the digital temperature measuring device 24. See, pages 21 and 47 of the Appendix, at reference characters 156-2 and 156, respectively. As generally indicated at 160, the remaining parameter of the selected capacitor, viz., the insulation resistance, is measured. This parameter is obtained by measuring the leakage current of the selected capacitor at one or more predetermined applied electrical potentials. The necessary electrical potential may be obtained in any convenient manner. For example, in the preferred measurement instrument 22 identified above an internal voltage source is associated therewith. Block 160A is a branch to either connect the internal voltage source of picoampere instrument 22 or to connect a separate external voltage source 12. The following paragraph assumes that the internal voltage source of the instrument 22 is used. See, page 34 of the Appendix, at reference character 160A.
To effect the measurement, as seen at 160B, the controller 26 commands the instrument 22 to apply a desired electrical potential (initially specified by the operator) to the selected capacitor. See, page 35 of the Appendix, at reference character 160B. At 160C the controller 26 asserts the appropriate relay arrangement 85 over the lines 87L, 88L from the relay control module 110. See page 36 of the Appendix, at reference character 160C. Relay 87 connects the measurement terminals of picoampere instrument 22 and relay 88 connects the internal source of voltage potential to the rails 42, 44. As seen at 160D, the controller 26, under program control, then selects a predetermined one of the capacitors. The desired one of the capacitors is selected by closing the corresponding one of the relays 66-1 through 66-N by the controller 26 sending a -command to the relay output control 110 which asserts the appropriate one of the coils 66S in the appropriate relay 66 to connect the fixture between the high and low rails 42 and 44, respectively. See, page 35 of the Appendix, at reference character 160D.
The instrument 22 is then asserted, at 160E, by the controller 26 to measure (after a predetermined time delay, if desired) the leakage current through the selected capacitor at this applied voltage. See, page 35 of the Appendix, at reference character 160E. At 160F the reported value of leakage current is stored by the controller 26 in its memory. See, page 35 of the Appendix, at reference character 160F.
If the specified insulation resistance test voltage of the capacitor exceeds the voltage limit of the instrument's internal voltage source, it is necessary to connect a separate external source of voltage to the selected capacitor. In the embodiment illustrated, this separate external source of voltage or potential is supplied from the source 12. As seen at 160C the controller 26 asserts the third relay arrangement 86 over the lines 87L, 98L from the relay control module 110. See page 36 of the Appendix, at reference character 160C. Relay 87 again connects the measurement terminals of picoampere instrument 22 to the rails 42, 44. The relay 98 connects the supply 12 to the high rail 42 and the common point 94 and thus to the selected capacitor. A similar sequence would be utilized if the picoampere measurement instrument 22 does not contain an internal source of potential. Once the separate external supply is connected, a command is sent from the controller 26 via the digital output module 122 to set the output voltage of the supply 12. Once the external voitage is applied, the instrument 22 measures (after a predetermined time delay, if desired) the leakage current through the selected capacitor at this applied voltage. At 160F the measured value of leakage current is read and stored by the controller 26 in its memory. See, page 35 of the Appendix, at reference character 160F.
Once the given one of the capacitors is measured in the manner outlined above, a different capacitor is selected by opening the previously closed relay 66 and closing the relay 66 associated with next capacitor to be tested. The testing of each selected
capacitor proceeds in a fashion corresponding to that discussed heretofore.
If multiple test voltages have been specified by the operator the above sequence (160A through 160F) is repeated for each specified voltage. After the capacitors have been measured at each specified voltage, the capacitor discharge routine 154 is again performed.
At 160G once all of the capacitors have been tested the instrument is disconnected from the selected capacitor by turning off the relay arrangement 86. See page 36 of the
Appendix, at reference character 160G.
The overall temperature of the capacitor holding assembly 16 is again measured by causing the digital input module 126 to read the output of the digital temperature measuring device 24. See, pages 21 and 47 of the Appendix, at reference character 156-3 and 156.
As seen at the call 154-3, the routine 154 is again performed. The discharge relay 103 is again asserted in a manner identical to that described above. See pages 21 and 31 of the Appendix, at reference characters 154-3 and 154, respectively.
The controller 26 then signals the operator that the tests have been completed. The operator opens the door D of the holding assembly 16 and removes the capacitors therefrom. At 164 the controller 26 reports the test results in the desired format.
Examples of such formats include printed tables of values or plotted histograms of the desired parameters. See, for example, page 21 of the Appendix, at reference character 164. As seen at 166, the information may also be stored on magnetic media for archival purposes. See, for example, page 56 of the Appendix, at reference character 166. - " * '
Those skilled in the art, having the benefit of the teachings of the present invention, may effect numerous modifications thereto. It should be understood that such modifications are to be construed as lying within the contemplation of the present invention, as defined by the appended claims.
.CAP DF IR.
This program characterizes a maximum of 96 capacitors for capacitance, dissipation factor, and insulation resistance at one to four voltages. Histograms are produced for capacitance and insulation resistance. Disc file option is available.
The I.R. values of film capacitors are corrected to 25 C according to EIA Standard RS-377 (July 1970) .
*******************************************
701= 82906A PRINTER; 716= HP4140B pA METER; 717= HP4274 LCR METER.J 723= HP6942 *******************************************
COM /Info/ Job_no$ [20],Sample$[80] ,Remarks$ [80] ,Operator$ [20] , Type$[30
Test_date$ [20] ,File$ [10] COM /Condns/ Sample_no,voltage_no, oltage,Voltagel,Voltage2,
Voltage3,Voltage4,Adapterl,Temp__cor,Time,Hz,Test_temp,Bo ttoml,Capl,Df COM /Data/ Data (103, 6) , Z,W COM /Counters/ Zero_no,Load_no, imes, lots
COM /Calib/ Cal_cap(50) ,Cal_df(50) ,Cal_resistl (50) ,Cal_resist2 (50) COM /Bus/ @Meter,Xist_plot,Probes(l:4,l:2) ,Bus,Testnum(4) ,
Viewnum(4) ,Meter_pa,Lcr,Prt,Plt,Multi COM /Interim/ Ca (96) ,Df (96) ,Temp (96) ,Resist (103) COM /Ok/ Cap_ok t
CALL Initial
MAIN**************************************** Program cycles from here to account for time to re-zero and calibrate. CLEAR 723 CLEAR 716
CLEAR 717 150
WAIT 5
OUTPUT 723;"OB 15 5,IT" ! 'DONE' light on OUTEUT 1;"" OUTPUT 1;""
DISP
GCLEAR
CALL Memory_clr
IF Zero__no=0 THEN CALL Zero lcr
CALL Expt_info— • 152 CALL File_option
IF Adapterl=2 AND Load_no*24<Sample_no THEN GOSUB Run
IF Adapterl=l AND Load_no*48<Sample_no THEN GOSUB Run
GOSUB Table "' IF Sample_no=l THfiN GOSUB Finale
IF Voltage_no=0 THEN GOTO 530 IF Cap_ok=0 THEN GOSUB Finale
GOSUB Plot_ir
CALL Plot_cap
IF File$="0" THEN GOTO 560
CALL File
CALL Alarm
GOSUB Finale
Run: CALL Load CALL Discharge ■ 154 - 1 CALL Temp — ■ 15 6- 1
62
64
1180 COM /Bus/ @Meter,Xist_plot,Probes (1:4,1:2) ,Bus,Testnum(4) ,Viewnum (4),
Meter_pa,Lcr,Prt,Pit,Mult
1190 ! I
1200 DISP ! Clear Display line 150
1210 OUTPUT 1 USING "@" ! Clear CRT 1220 Bus_=716 ! Optional Bus address 1230 READ Testnum(*) ,Viewnuin(*) ! Sets up the order in which measurements ar made & displayed
1240 DATA -1,-2,4,2,3,0,3,1,4,2
1250 PRINTER IS 1
1260 DISP "Initializing the system"
1270 DIM Messages [50] STRING CONTAINING USER MESSAGE
1280 INTEGER Address HOLDS HPIB ADDRESS DURING BUS SCAN
1290 INTEGER Bstatus H IB STATUS REG CONTENTS
1300
1310 Xist_4140=0
1320 Xist_4274=0
1330 Xist_plot=0
1340 Xist_ rt=0
1350 Xist multi=0
1360 1370 INITIALIZE DEVICE ADDRESSES 1380 Meterj?a=716 ! default 1390 Lcr=717 1400 Prt=701 1410 Plt=705 1420 Multi=723 1430 Bus=7 1440 1450 Message$=" 1: THE NUMBER "&VAL$ (Bus) £" IS NOT A VALID SELECT CODE" 1460 IF Bus<7 OR Bus>31 THEN Terminate 1470 1480 MessageS=" 1: THE NUMBER "&VAL$(Meter_pa)£" IS NOT A VALID RECORDER ADDRESS"
1490 IF Meter_pa MOD 100>30 THEN Terminate
1500
1510 Message$=" 2: NO INTERFACE FOUND AT SELECT CODE "&VAL$(Bus) 150
1520 ON ERROR GOTO Terminate
1530 STATUS Bus,0;Bstatus
1540
1550 Message$=" 3: THE INTERFACE AT SELECT CODE 'SVAL$(BUS)&" IS NOT HP-IB
1560 IF BstatusOl THEN Rsterminate
1570
1580 STATUS Bus,3;Bstatus
1590 IF BIT(Bstatus, 6) THEN Actcon
1600 Message$=" 4: 9826 IS NOT ACTIVE CONTROLLER"
1610 GOTO Rsterminate
1620 Actcon: ! 9826 is active controller
1630 ON TIMEOUT Bus,l GOTO Nodevices
1640 SEND Bus;UNL UNLISTEN THE BUS
1650 SEND Bus;UNT UNTALK THE BUS
1660 OFF TIMEOUT Bus do not delete 'Bus'
1670 OFF ERROR
1680
1690 CHECK FOR EQUIPMENT ON BUS AT ALL ADDRESSES AND PRINT DEVICE NAMES
1700 OUTPUT 1 USING "///,8X,K,DD";" EQUIPMENT PRESENT ON BUS #";Bus
1710 OUTPUT 1 USING "8X,"" "",/"
1720
1730 cancel any perverse LOCAL Bus
1740 IF BIT(Bstatus,7) THEN .must be system
1750 "^ REMOTE Bus "controller to
1760 END IF do this
1770
1780 FOR Address=Bus*100 TO Bus*100+30
1790 OUTPUT Address USING "#" ADDRESS DEVICE T LISTEN, Bus TO TALK
1800 WAIT .1 slow handshake ok 1810 STATUS Bus,7;Bstatus DID IT LISTEN? 1820 SEND Bus;DATA Unhang 37201A 1830 IF BIT(Bstatus,13) THEN 1840 DEVICE PRESENT (NDAC came True) 1850 Message$="Device Unknown" 1860 IF Address=Prt THEN GOSUB System_printer
1870 IF Address=Plt THEN GOSUB System_plotter
1880 IF Address=Lcr THEN GOSUB Meter_lcr
1890 IF Address=Meter_pa THEN GOSUB Meter_pa
1900 IF Address=Multi THEN GOSUB Multi
1910 OUTPUT 1 USING Fmt;Message$,Address " MOD 100
1920 END IF
1930 Nxt: NEXT Address
1940 !
1950 STATUS Bus,3;Bstatus
1960 OUTPUT 1 USING Fmt;"System Computer",BINAND (Bstatus,31)
1970 IF NOT Xist_prt THEN Prt=l ! use 9826 CRT
1980 !
1990 Message$=" 6: 4140B NOT PRESENT OR NOT ADDRESSED"
2000 IF NOT Xist_4140 THEN Rsterminate
2010 OUTPUT 1 USING "/"
2020 SUBEXIT ! all well
2030 !
2040 !
2050 Fmt: IMAGE X,27A, " at address ",2Z
2060 !
2070 System_printer: !
2080 Message$="System Printer"
2090 Xist_prt=l
2100 RETURN
2110 !
2120 System_ >lotter : !
2130 Xist_plot=l
2140 Message$="System Plotter"
2150 RETURN
2160 !
2170 Multi: ! 150
2180 Xist_multi=l
2190 Message$="6942A Multiprogrammer"
2200 RETURN
2210 !
2220 Meter_lcr: ON TIMEOUT Bus,3 GOTO Timeoutδl
2230 Message$="4274A LCR Meter"
2240 ASSIGN @Meter TO 717
2250 OUTPUT @Meter;"SR0" ! Clear 4274A interrupt mask (srq)
2260 CLEAR 717
2270 OFF TIMEOUT Bus
2280 Xist_4274=l
2290 RETURN
2300 !
2310 Meter_ sa: ON TIMEOUT Bus,3 GOTO Timeout80
2320 Message$="4140B Pa Meter"
2330 ASSIGN @Meter TO Meter j pa
2340 OUTPUT @Meter;"SR0" ! Clear 4140B interrupt mask (srq)
2350 CLEAR 716
2360 OFF TIMEOUT Bus
2370 Xist_4140=l
2380 !
2390 R£TURN " ' '
2400 !
2410 Timeoutδl: ! ERROR TRAPS
2420 Message$=" 7: 4274A NOT ADDRESSED"
2430 GOTO Rsterminate
2440 !
2450 TimeoutβO: ! ERROR TRAPS
2460 Message$=" 7: " 4140B NOT ADDRESSED"
2470 GOTO Rsterminate
2480 !
2490 Nodevices: !
2500 Message$=" 5: NO DEVICES ON HP-IB SELECT CODE "SVALS(Bus)
2510 !
2520 Rsterminate: RESET INTERFACE
2530 CONTROL Bus,0;l
2540 Terminate: !
2550 OFF ERROR 2560 PRINT "PROGRAM TERMINATED. 2570 STOP! 2580 2590 SUBEND I
2600 !********************************************
2610 SUB Memory_clr ! 2620 1 ******************************************** 2630 COM /Info/ Job_no$[20], SampleS [80] ,Remarks$ [80] , Operator $[20],
Type$[30],Test_date$[20],File$[10]
2640 COM /Condns/ Sample_no,Voltage_no, oltage,Voltagel, Voltage2, Voltage3,
Voltage4,Adapterl,Temp_co ,Time,Hz,Test_temp,Bottoml,Capl,Df1
2650 COM /Data/ Data(103, 6) ,Z,W
2660 COM /Counters/ Zero_no,Load_no,Times,Plots
2670 COM /Calib/ Cal_cap(50) ,Cal_df(50) ,Cal_resistl(50) ,Cal_resist2(50)
2680 COM /Interim/ Ca (96) ,Df(96) ,Temp(96) ,Resist (103)
2690 I
2700 Job_no$=""
2710 Sample$=""
2720 Remarks$=""
2730 Operator$=""
2740 Type$=""
2750
2760 Time=0
2770 Hz=0
2780 Test_temp=0
2790 Bottoml=0
2800 Capl=0
2810 Dfl=0
2820 Cap_ok=0
2830 Df_ok=0
2840 Rl_ok=0 150
2850 R2_ok=0
2860 R3_ok=0
2870 R4_ok=0
2880 Sample_no=0
2890 Voltage_no=0
2900 Volt_bert=0
2910 Load_no=0
2920 Times=0
2930 Plots=0
2940 Voltage=0
2950 Voltagel=0
2960 Voltage2=0
2970 Voltage3=0
2980 Voltage4=0
2990 Adapterl=0
3000 Temp_cor=0
3010 Z=0
3020 =0 ' " "
3030 Q=0
3040
3050 FOR 1=0 TO 103
3060 FOR J=0 TO 6
3070 Data(I,J)=0
3080 NEXT J
3090 NEXT I
3100
3110 ' FOR 1=1 TO 50
3120 Cal_cap(I)=0
3130 Cal_df(I)=0
3140 Cal resistl(I)=0
3150 Cal_resist2 (l) : 3160 NEXT I 3170 3180 SUBEND ! 3190 I ******************************************* 3200 SUB Zero_lcr ! (each ten analyses) 3210 I ******************************************** 3220 COM /Counters/ Zero_no,Load_no,Times,Plots 3230 OUTPUT 1;"" 3240 OUTPUT 1;"" 3250 OUTPUT 1;"" 3260 OUTPUT l;"The LCR meter must be zeroed. Remove samples fr positions 9,25 & 41 and press 'CONTINUE'."
3270 GOSUB Beep2 3280 PAUSE 3290 OUTPUT 1 USING "@" 3300 DISP "LCR meter is being zeroed " 3310 OUTPUT 723;"OB 15 0,1T" ! Close main cap + df relay 3320 Close position #9 relay 3330 Close position #25 relay 3340 Close position #41 relay 3350 3360 Control LCR meter remotely 3370 Zero LCR meter 3380 3390 Open main cap + df relay 3400 Open position #9 relay 3410 Open position #25 relay 3420 Open position #41 relay 3430 3440 Restart counter 3450 3460 3470 of LCR meter is complete 3480 DISP 3490 CLEAR 717 3500 WAIT 2 3510 SUBEXIT 3520 Beep2: ! 3530 BEEP 130, .3 3540 WAIT .1 3550 BEEP 250, .3 3560 WAIT .1 3570 BEEP 150, .3 3580 WAIT .1 3590 BEEP 230, .3 3600 RETURN 3610 3620 SUBEND ! 3630 ******************************************** 3640 SUB Expt_info ! 3650 ******************************************** 3660 COM /Info/ Job_no$ [2Cη, "Sample $ [80] ,Remarks $[80], Operators [20] Type$ [30] ,Test_date $[20] ,File$[10]
3670 COM /Condns/ Sample_no,Voltage_no, Voltage,Voltagel, Voltage2, 3680 Voltage3, Voltage4, Adapt erl,Temp_cor, Time, Hz,Test_temp, Bottoml, 3690 Capl, Dfl 3700 3710 OUTPUT 1 USING "@" 3720 DISP 15 3730 GOSUB Clear_menu 3740 GCLEAR 3750 GINIT 3760 I 3770 GOTO 3820
3780 OUTPUT 1 USING "@"
3790 GOSUB Clear_menu
3800 OUTPUT 1 USING "@"
3810 OUTPUT 1;"ENTER CORRECTED INFORMATION NOW."
3820 GOSUB Cap_type
3830 CALL Check
3840 GOSUB Cap_type LINPUT "OPERATOR",Operators
3850 IF Type$="STD" THEN GOTO 3980
3860 LINPUT "JOB NUMBER",Job_no$
3870 LINPUT "SAMPLE DESCRIPTION",Sample$
3880 LINPUT "REMARKS",Remarks$
3890 INPUT "NUMBER OF SAMPLES",Sample_no
3900
3910 GOSUB Clear_menu
3920 GOSUB Adapter
3930 GOSUB Clear_menu
3940 GOSUB Volt_no
3950 GOSUB Clear_menu
3960 GOSUB Volt_val
3970 GOSUB Clear_menu
3980 GOSUB Verify
3990 GOSUB Option
4000 GOSUB Clear_menu
4010 GOSUB End
4020 Cap_type: !
4030 DISP "WHAT IS CAPACITOR TYPE ?"
4040 Adapterl=l
4050 ON KEY 5 LABEL "MET PET" GOTO 4200
4060 ON KEY 6 LABEL "MET OTHR" GOTO 4250
4070 ON KEY 7 LABEL "FLM/FOIL" GOTO 4300
4080 ON KEY ' 8 LABEL MLC" GOTO 4340 152
4090 ON KEY 9 LABEL STD" GOTO 4390
4100 ON KEY 4 LABEL "UNKNOWN" GOTO 4610
4110 ON KEY 0 LABEL "ZERO LCR 1 GOTO 4150
4120 X=0
4130 IF X=0 THEN GOTO 4130
4140
4150 ! Option for special lcr zero .
4160 GOSUB Clear_menu
4170 CALL Zero_lcr
4180 GOSUB Cap_type
4190
4200 Type$="METALLIZED PET"
4210 Temp_cor=l
4220 Capl= .25
4230 Dfl=l
4240 RETURN
4250 Type$="METALLIZED FILM"
4260 Temp_cor=0
4270 Capl= .25
4280 Dfl=l
4290 RETURN
4300 ~~ Type$="FILM"/FOIL"
4310 Capl= .25
4320 Dfl=l
4330 RETURN
4340 Type$="MULTILAYER CERAMIC"
4350 Capl= .25
4360 Dfl=3
4370 RETURN
4380 !
4390 ! Input for standard capacitors
4400 GOSUB Clear tienu
4410 CALL Zero_lcr
4420 OUTPUT 1 USING "@"
4430 DISP "Insert disk and press 'CONTINUE' "
4440 PAUSE
4450 Type$="STD"
4460 One$="STD:"
4470 Two$=DATE$ (TIMEDATE)
4480 Job_no$=One$&Two$ [4, 6] &Two$ [10,11]
4490 Sample$="STANDARD METALLIZED PC FILM HERMETICS'
4500 Remarks$="CALIBRATION TEST"
4510 Temp_cor=l
4520 Voltage_no=l
4530 Voltagel=100
4540 Adapterl=l
4550 Adapter$="NO"
4560 Sample_no=48
4570 Capl=.25
4580 Dfl=l
4590 RETURN
4600
4610 Type$="UNKNOWN"
4620 Capl=.25
4630 Dfl=5
4640 RETURN
4650!
4660 Adapter: !
4670 DISP "Are adapters used in odd positions ?"
4680 ON KEY 5 LABEL " NO" GOTO 4720
4690 ON KEY 9 LABEL " YES" GOTO 4750
4700 X=0
4710 IF X=0 THEN GOTO 4710
4720 Adapter! =1
4730 Adapter$ ="NO"
4740 RETURN
4770 RETURN
4780 ; 15
4790 Volt_no: !
4800 DISP "How many voltages for I.R. determinations
4810 ON KEY 5 LABEL 0" GOTO 4880
4820 ON KEY LABEL 1" GOTO 4900
4830 ON KEY LABEL 2" GOTO 4920
4840 ON KEY LABEL 3" GOTO 4940
4850 ON KEY LABEL 4" GOTO 4960
4860 X=0
4870 IF X=0 THEN GOTO 4 870
4880 Voltage_no= ; 0
4890 RETURN
4900 Voltage__no =' 1
4910 RETURN
4920 Voltage_nσ =2
4930 RETURN
4940 Voltage_no =3_ .
4950 RETURN
4960 Voltage_no =4
4970 RETURN
4980!
4990 Volt_val : !
5000 IF Voltage_no=0 THEN RETURN
5010 FOR 1=0 TO Voltage_no-l
5020 INPUT "Enter a voltage . *' , Volt (I)
5030 NEXT I
5040 MAT SORT Volt (*) DES ! To assure lowest voltage firs
5050 IF Voltage_no=l THEN GOTO 5070
5060 GOTO 5090
5070 Voltagel=Volt (0)
5080 GOTO 5260
5090 IF Voltage_no=2 THEN GOTO 5110
5100 GOTO 5140
5110 Voltagel=Volt(l)
5120 Voltage2=Volt (0)
5130 GOTO 5260
5140 IF Voltage_no=3 THEN GOTO 5160
5150 GOTO 5200
5160 Voltagel=VoIt(2)
5170 Voltage2=Volt(1)
5180 Voltage3=Volt(0)
5190 GOTO 5260
5200 IF Voltage_no=4 THEN GOTO 5220
5210 GOTO 5260
5220 Voltagel=Volt(3)
5230 Voltage2=Volt (2)
5240 Voltage3=Volt(l)
5250 Voltage4=Volt(0)
5260 RETURN
5270!
5280 Verify: ! Verify input information
5290 OUTPUT 1 USING "@" 5300 OUTPUT 1;"" 5310 OUTPUT 1;"" 5320 OUTPUT l;"JOB NUMBER: ";Job_no$ 5330 OUTPUT 1;"" 5340 OUTPUT 1;"CAPACITOR DESCRIPTION: ";Sample$ 5350 OUTPUT 1;"" 5360 OUTPUT 1;"REMARKS: ";Remarks$ 5370 OUTPUT 1;"" 5380 OUTPUT 1;"CAPACITOR TYPE: ";Type$ 5390 OUTPUT 1;"" 152 5400 OUTPUT 1;"ADAPTERS USED ? ";Adapters 5410 OUTPUT 1;"" 5420 OUTPUT 1;"OPERATOR: ";Operators 5430 OUTPUT 1;"" 5440 OUTPUT 1;"NUMBER OF SAMPLES: ";Sample_no;" NO. OF VOLTAGES: ;Voltage__no
5450 OUTPUT 1;"" 5460 IF Voltage_no=4 THEN GOTO 5510 5470 IF Voltage_no=3 THEN GOTO 5530 5480 IF Voltage_no=2 THEN GOTO 5550 5490 IF Voltage_no=l THEN ' GOTO 5570 5500 IF Voltage no=0 THEN GOTO 5590 5510 OUTPUT 1;"I.R. VOLTAGE CONDITIONS: ";Voltagel, Voltage2, Voltage3, Voltage4
RETURN I
1;"I.R. VOLTAGE CONDITIONS ";Voltagel, oltage2,Voltage3
RETURN
1;"I.R. VOLTAGE CONDITIONS ";Voltagel,Voltage2
RETURN
1;"I.R. VOLTAGE CONDITIONS ";Voltagel
RETURN
1;"I.R. VOLTAGE CONDITIONS ";" None"
RETURN
DISP "Is this information correct
ON KEY LABEL NO" GOTO 3780 ON KEY LABEL YES" GOTO 5680
THEN GOTO 5670 RETURN I
5710 OUTPUT 1 USING " _ " 5720 DISP 5730 CONTROL 1,12;0 5740 FOR 1=0 TO 19 5750 ON KEY I LABEL " " GOSUB Beep 5760 NEXT I 5770 RETURN 5780 5790 Beep: BEEP 152 5800 RETURN 5810 5820 End: 5830 SUBEXIT 5840 5850 SUBEND ! 5860 t ******************************************** 5870 SUB Load ! 5880 I ******************************************** 5890 COM /Condns/ Sample_no, Voltage_no, Voltage,Voltagel, Voltage2, Volta Voltage4, Adapterl, Temp_cor, Time,Hz, Test_temp, Bottoml, Capl,Dfl
5900 COM /Counters/ Zero_no,Load_no,Times,Plots 5910 5920 OUTPUT 1 USING "@" 5930 DISP 5940 5950 IF Adapterl=2 THEN GOSUB Adapter 5960 IF Adapterl=l THEN GOSUB No_adapter 5970 5980 No_adapter: ! 5990 IF Load_no=0 AND Sample_no=48 THEN GOSUB Loadl 6000 IF Load_no=0 AND Sample_no<48 THEN GOSUB Loadl 6010 IF Load_no=0 AND Sample_no>48 THEN GOSUB Load2 6020 IF Load_no=l AND Sample_no>48 THEN GOSUB Load3 6030 6040 Adapter: ! 6050 I 6060 IF Load_no>0 THEN GOTO 6130 6070 I 6080 GOSUB Beepl 6090 DISP " Adapters must be used in odd number sockets! Press 'CONTINUE' 6100 PAUSE 6110 DISP 6120 I 6130 IF Load_no=0 AND Sample_no=24 THEN GOSUB LoadOl 6140 IF Load_no=0 AND Sample_no<24 THEN GOSUB LoadOl 6150 IF Load_no=0 AND Sample_no>24 THEN GOSUB Load02 6160 6170 IF Load_no=l AND Sample_no=48 THEN GOSUB Load03 6180 IF Load_no=l AND Sample_no<48 THEN GOSUB Load03 6190 IF Load_no=l AND Sample_no>48 THEN GOSUB Load04 6200 6210 IF Load_no=2 AND Sample_no>72 THEN GOSUB Load06 6220 6230 IF Load_no=2 AND Sample_no>48 THEN GOSUB Load05 6240 6250 IF Load_no=3 AND Sartιple_no>72 THEN GOSUB Load07 6260 RETURN 6270 6280 LoadOl: 6290 DISP "Load ";Sample_no;" capacitors and press 'CONTINUE' 6300 GOSUB Beep2 6310 PAUSE 6320 DISP 6330 Load_no=l 6340 SUBEXIT
6350!
6360 Load02:
6370 DISP "Load 24 capacitors and press 'CONTINUE'
6380 GOSUB Beep2
6390 PAUSE
6400 DISP
6410 Load_no=l
6420 SUBEXIT
6430!
6440 Load03:
6450 DISP "Load ";Sample_no-24;" capacitors and press 'CONTINUE'
6460 GOSUB Beep2
6470 PAUSE
6480 DISP
6490 Load_no=2
6500 SUBEXIT
6510!
6520 Load04:
6530 DISP "Load 24 capacitors and press 'CONTINUE'
6540 G GOOSSUUBB BBeeeepp22
6550 PAUSE
6560 DISP
6570 Load_no=2
6580 SUBEXIT
6590!
6600 Load05:
6610 DISP "Load ";Sample_no-48;" capacitors and press 'CONTINUE'.
6620 GOSUB Beep2
6630 PAUSE
6640 DISP
6650 Load_no=3
6660 SUBEXIT
6670!
6680 Load06:
6690 DISP "Load 24 capacitors and press 'CONTINUE'
6700 GOSUB Beep2
6710 PAUSE
6720 DISP
6730 Load_no=3
6740 SUBEXIT
6750 !
6760 Load07:
6770 DISP "Load ";Sample_no-72;" capacitors and press 'CONTINUE'
6780 GOSUB Beep2
6790 PAUSE
6800 DISP
6810 Load_no=4
6820 SUBEXIT
6830!
6840 GOTO 7280
6850 !
6860 Loadl:
6870 DISP "Load ";Sampl'e_"o;" capacitors and press 'CONTINUE'
6880 GOSUB Beep2
6890 PAUSE
6900 DISP
6910 Load_no=l
6920 SUBEXIT
6930 !
6940 Load2:
6950 DISP "Load 48 capacitors and press 'CONTINUE'
6960 GOSUB Beep2
6970 PAUSE
6980 DISP
6990 Load no=l
7000 SUBEXIT 7010 7020 Load3: ! 7030 DISP "Load ";Sample_no-48;"capacitors and press 'CONTINUE' 7040 GOSUB Beep2 7050 PAUSE 7060 DISP 7070 Load_no=2 7080 SUBEXIT 7090 t 7100 Beepl: ! 7110 7120 7130 7140 7150 7160 7170 7180 Beep2: 7190 7200 7210 7220 7230 7240 7250 7260 7270 7280 SUBEND ! 7290 I ******************************************** 7300 SUB Discharge 7310 I******************************************** 7320 COM /Condns/ Sample_no, Voltage_no,Voltage, Voltagel,Voltage2,Voltage3 Voltage4,Adapterl,Temp_cor,Time,Hz,Test_temp,Bottoml,Capl,Df 1
7330 COM /Counters/ Zero no,Load no,Times,Plots 7340 7350 DISP "Discharging positions in use. 7360 GOSUB Open 7370 GOSUB Close 7380 GOSUB Load 7390 GOSUB Count 154 7400 GOSUB Open 7410 GOTO 8130 7420 Open: 7430 CLEAR 723 ! At least 3 sec reqired to execute 7440 WAIT 3 7450 RETURN 7460 Close: I 7470 OUTPUT 723;"OB 15 4,IT" 7480 WAIT 1 7490 RETURN 7500 7510 Load:' 7520 Position=0 7530 IF Load_no=l THEN Position=Sample_no*Adapterl 7540 IF Load_no=2 THEN Position=(Sample_no*Adapterl)-48 7550 IF Load_no=3 THEN Position=(Sample_no*Adapterl)-96 7560 IF Load_no=4 THEN Position=(Sample_no*Adapterl)-144 7570 RETURN 7580 7590 Count: 7600 IF Position<17 THEN GOSUB Bankl 7610 IF Position>16 AND Position<33 THEN GOSUB Bank2 7620 IF Position>32 AND Position<48 THEN GOSUB Bank3 7630 IF Position>47 THEN GOSUB Bank4
7640 RETURN
7650 Bankl:
7660 FOR K=0 TO Position-1 STEP Adapterl
7670 OUTPUT 723;"OB 12",K,"1T"
7680 WAIT .5
7690 OUTPUT 723;"OB 12",K,"0T"
7700 NEXT K
7710 RETURN
7720 Bank2: I
7730 FOR K=0 TO 15 STEP Adapterl
7740 OUTPUT 723;"OB 12",K,"1T"
7750 WAIT .5
7760 OUTPUT 723;"OB 12",K,"0T"
7770 NEXT K
7780 FOR K=0 TO Position-17 STEP Adapterl
7790 OUTPUT 723;"OB 13",K,"IT"
7800 WAIT .5
7810 OUTPUT 723;"OB 13",K,"0T"
7820 NEXT K
7830 RETURN
7840 Bank3: I
7850 FOR K=0 TO 15 STEP Adapterl
7860 OUTPUT 723;"OB 12",K,"IT"
7870 WAIT .5
7880 OUTPUT 723;"OB 12",K,"0T" 154
7890 OUTPUT 723;"OB 13",K,"IT"
7900 WAIT .5
7910 OUTPUT 723;"OB 13",K,"0T"
7920 NEXT K
7930 FOR K=0 TO Position-33 STEP Adapterl
7940 OUTPUT 723;"OB 14",K,"1T"
7950 WAIT .5
7960 OUTPUT 723;"OB 14",K,"0T"
7970 NEXT K
7980 RETURN
7990 Bank4: ι
8000 FOR K=0 TO 15 STEP Adapterl
8010 OUTPUT 723;"OB 12",K,"lT ,r
8020 WAIT .5
8030 OUTPUT 723;"OB 12",K,"0T"
8040 OUTPUT 723;"OB 13",K,"lT ,r
8050 WAIT .5
8060 OUTPUT 723;"OB 13",K,"0T"
8070 OUTPUT 723;"OB 14",K,"IT"
8080 WAIT .5
8090 OUTPUT 723;"OB 14",K,"0T"
8100 NEXT K 8110 CLEAR 723 8120 WAIT 3 8130 SUBEND
8140 !********************************************
8150 SUB Cap_df !
8160 !***^* * ****************************************
8170 COM /Condns/ Samρle_no, Voltage_no, Voltage, oltagel, oltage2, Voltage3
VoItage4,Adapterl,Temp_cor,Time,Hz,Test_temp,Bottoml,Capl ,Dfl
8180 COM /Data/ Dat (103, 6) ,Z,W
8190 COM /Interim/ Cap(96) ,Df(96) ,Temp(96) ,Resist(103) 8200 !
8210 DISP " Measuring capacitance and disippation factor..." 158
8220 ! 8230 Hz=1000 8240 ! 8250 OUTPUT 1 USING "1X,3A,5X,7A,5X,7A";"No.","Cap.,uF","D.F. ,%"
8260 OUTPUT 1 USING "IX,49A";" "
8270 OUTPUT 1;""
8280 All relays are open. | 8290 REMOTE 717 LCR meter controlled remotely 8300 OUTPUT 723;"OB 15 0,1T" Close main cap + df relay 15 8310 , ...1st 15 samples 8320 FOR K=0 TO 15 STEP Adapterl 8330 Z=Z+1 8340 OUTPUT 723;"OB 12",K,"1T"! Close sample 1-16 relay 15 8350 WAIT 2 I 8360 OUTPUT 717;"A2T1" ! Set to measure cap + df 15 8370 OUTPUT 717;"E" ! Take reading I 8380 ENTER 717;Cap(Z) ,Df (Z) ! Transfer to 9826 15 8390 OUTPUT 723;"OB 12",K,"0T"! Open sample 1-15 relay 8400 Data(Z,l)=Cap(Z) *10 Λ 6 8410 Data(Z,2)=Df (Z)*100 8420 OUTPUT 1 USING "1DDD,#";Z 8430 IF Data(Z f l)>99 THEN Data(Z,l)=0 8440 IF Data(Z,l)<0 THEN Data(Z,l)=0 8450 OUTPUT 1 USING "5DD.DDDD,#";Data (Z, 1) 8460 IF Data(Z,2)>99 THEN Data(Z,2)=0 8470 IF Data(Z,2)<0 THEN Data(Z,2)=0 8480 OUTPUT 1 USING "5DD.DD";Data(Z,2) 8490 8500 IF Z=Sample_no THEN GOSUB Finish 8510 8520 NEXT K 8530 8540 ! 2nd 15 samples 8550 FOR K=0 TO 15 STEP Adapterl 8560 Z=Z+1 8570 OUTPUT 723;"OB 13",K,"1T" ! Close sample 17-32 relay 8580 WAIT 2 8590 OUTPUT 717;"A2T1" Set to measure cap + df 8600 OUTPUT 717;"E" Take reading 8610 ENTER 717;Cap(Z) ,Df (Z) Transfer to 9826 8620 OUTPUT 723;"OB 13",K, "0T" Open sample 17-32 relay 8630 Data(Z, 1)=Cap(Z) *10 Λ 6 8640 Data(Z,2)=Df (Z)*100 8650 OUTPUT 1 USING "1DDD,#";Z 8660 IF Data(Z,l)>99 THEN Data(Z,l)=0 8670 IF Data (Z, 1X0 THEN Data(Z,l)=0 8680 OUTPUT 1 USING "5DD.DDDD, #";Data(Z, 1) 8690 IF Data(Z,2)>99 THEN. Data(Z,2)=0 8700 IF Data(Z,2)<0 THEN Data(Z,2)=0 8710 OUTPUT 1 USING "5DD.DD";Data(Z,2) 8720 8730 IF Z=Sample_no THEN GOSUB Finish 8740 8750 NEXT K 8760 8770 3rd 15 samples 8780 FOR K=0 TO 15 STEP Adapterl 8790 Z= +l ^ . ; 8800 OUTPUT 723;"OB'I4",K,"1T"! Close sample 33-48 relay 8810 WAIT 2 8820 OUTPUT 717;"A2T1" Set to measure cap + df 8830 OUTPUT 717;"E" Take reading 8840 ENTER 717;Cap(Z) ,Df (Z) Transfer to 9826 8850 OUTPUT 723;"OB 14",K,"0T" Open sample 33-48 relay 8860 Data (Z, 1)=Cap(Z) *10 Λ 6 8870 Data(Z,2)=Df (Z)*100 8880 OUTPUT 1 USING "1DDD,#";Z 8890 IF Data(Z,l)>99 THEN Data(Z,l)=0 8900 IF Data(Z,l)<0 THEN Data(Z,l)=0 8910 OUTPUT 1 USING "5DD.DDDD,#";Data(Z, 1)
8920 IF Data(Z,2)>99 THEN Data(Z,2)=0
8930 IF Data(Z,2)<0 THEN Data(Z,2)=0
8940 OUTPUT 1 USING "5DD.DD";Data(Z,2)
8950
8960 IF Z=Sample_no THEN GOSUB Finish
8970
8980 NEXT K
8990
9000 Finish: OUTPUT 723;"OB 15 0,0T" ! Open main cap + df relay
9010 CLEAR 717 158E
9020 WAIT 5
9030 DISP
9040 SUBEXIT
9050
9060 DISP
9070 SUBEND !
9080 !***************** * **************************
9090 SUB In_resist !
9100 i ********************************************
9110 1
9120 COM /Condns/ Sample_no, Voltage_no,Voltage, Voltagel,Voltage2,Voltage3,
Voltage4,Adapterl,Temp_cor,Time,Hz,Test_temp,Bottoml,Capl ,Dfl
9130 COM /Data/ Data(103,6) ,Z,W
9140 COM /Counters/ Zero_no,Load_no,Times,Plots
9150 COM /Interim/ Cap(96) ,Df(96) ,Temp(96) ,Resist(103)
9160
9170 OUTPUT 1 USING "@"
9180 DISP " Measuring insulation resistance.
9190
9200 Time=60
9210 GOSUB Heading
9220 ! Run voltage in ascending value.
9230 ! Voltagel
9240 Voltage=Voltagel
9250 W=0
9260 Times=l
9270 IF Voltage=0 THEN GOTO 9300
9280 IF Voltage<100 OR Voltage=100 THEN GOSUB Meter 160
9290 IF Voltage>100 THEN GOSUB Bertan
9300 !Voltage2
9310 Voltage=Voltage2
9320 W=0
9330 Times=2
9340 IF Voltage=0 THEN GOTO 9370
9350 IF Voltage<100 OR Voltage=100 THEN GOSUB Meter
9360 IF Voltage>100 THEN GOSUB Bertan
9370 ! Voltage3
9380 Voltage=Voltage3
9390 W=0
9400 Times=3
9410 IF Voltage=0 THEN GOTO 9440
9420 IF Voltage<100 OR Voltage=100 THEN GOSUB Meter
9430 IF THEN GOSUB Bertan
9440 ! Voltage4
9450 Voltage=Voltage4
9460 W=0
9470 Times=4
9480 IF Voltage=0 THEN GOTO 9510
9490 IF Voltage<100 OR Voltage=100 THEN GOSUB Meter
9500 IF Voltage>100 THEN GOSUB Bertan
9510 I
9520 SUBEXIT
9530 !
9540 Heading:
9550 OUTPUT 1;"
9560 OUTPUT 1;""
9570 OUTPUT 1 USING "IX,3A,5X,7A,5X, 8A,4X, 6A,3X,7A"; "No. "Cap.uf",
"D.F.,%", "I.R.", "Voltage"
9580 OUTPUT 1;"
9590 OUTPUT 1;""
9600 RETURN
9610 !
9620!
9630 Meter: ! To use the 4140B as voltage source
9640 REMOTE 716
9650 OUTPUT 716; "F1RA1I3T1L2" 1 60
9660 WAIT 1
9670 OUTPUT 723;"OB 15 3, 0T" Open relay from Bertan
968.0 OUTPUT 716;"A5" 4140B voltage source on
9690 OUTPUT 716;"PA";Voltage Set voltage level from 4140B
9700 OUTPUT 723;"OB 15 6,IT" Close va relay from 4140B
9710 OUTPUT 723;"OB 15 1, IT" Close pA current measuring rel
9720 OUTPUT 723;"OB 15 2, IT" High voltage light on 160
9730 !
9740 FOR K=0 TO 15 STEP Adapterl
9750 ! Bring pA meter- to zero
9760 OUTPUT 723;"OB 15 1, 0T" Open pA current measuring rela
9770 WAIT 7 Time for pA meter to settle
9780 OUTPUT 716;"Z" Zero pA meter(i.e. blank value)
9790 OUTPUT 723;"OB 15 1, IT" Close pA current measuring rel
9800
9810 IF W=0 THEN GOTO 9850
9820 IF W<16*Load_no/Adapterl THEN GOTO 9850
9830 IF W<32*Load_no/Adapterl THEN GOTO 9880
9840 IF W<48*Load_no/Adapterl THEN GOTO 9910
9850 OUTPUT 723;"OB 12",K,"1T"! Close sample 1-16 relay
9860 GOTO 9930
9870
9880 OUTPUT 723;"OB 13",K,"1T"! Close sample 17-32 relay
9890 GOTO 9930
9900
9910 OUTPUT 723;"OB 14",K,"1T"! Close sample 33-48 relay
9920
9930 WAIT 1
9940 OUTPUT 716;"Wl" ! Output voltage from pA meter 16
9950 WAIT Time-1
9960 ENTER 716;II,V ! Transfer to 9826 16
9970 IF IK0 THEN GOTO 9960
9980 WAIT 1
9990 ENTER 716;12,V
10000 IF 12<0 THEN GOTO 9990
10010 WAIT 1
10020 ENTER 716;13,
10030 IF I3<0 THEN GOTO 10020
10040 I
10050 I=(Il+I2+I3)/3 ! Current reading is mean of thr
10060
10070 OUTPUT 716;"W7" ! Return pA meter voltage to zer
10080 WAIT
10090 I Discharge
10100 OUTPUT 723;"OB 15 4,IT" ! Close relay to 100k ohm resist
10110 WAIT 1
10120 OUTPUT 723;"OB 15 4,0T" ! Open relay to 100k ohm resisto
10130
10140 IF W=0 THEN GOTO 10180
10150 IF W<16*Load_no/Adapterl THEN GOTO 10180
10160 IF W<32*Load_no/Adapterl THEN GOTO 10200
10170 IF W<48*Load_no/Adapterl THEN GOTO 10220
10180 OUTPUT 723;"OB 12",K,"0T" ! Open sample 1-16 relay
10190 GOTO 10240 10200 OUTPUT 723;"OB 13",K,"0T" ! Open sample 17-32 relay 10210 GOTO 10240 10220 OUTPUT 723;"OB 14",K,"0T" ! Open sample 33-48 relay 10230 10240 W=W+1 ! Number next sample 10250 GOSUB Calc_ir 10260 IF W=Sample_no THEN RETURN 10270 NEXT K 10280 GOSUB Discharge ! To reduce diel. abs. effects 10290 IF W=l6*Load_no/Adapter! OR W=32*Load_no/Adapterl THEN GOTO 9740 10300 RETURN 10310! ' 10320 Bertan ! To use the Bertan as voltage source 10330 REMOTE 716 1 60 C 10340 OUTPUT 716;"F1RA1I3T1L2" 10350 WAIT 1 10360 OUTPUT 723;"OB 15 6,0T" Open va relay from 4140B 1 60 G 10370 OUTPUT 716;"A6" 4140B voltage source off 10380 OUTPUT 723;"OB 15 3, IT" Close relay to Bertan 10390 OUTPUT 723;"OB 15 1, IT" Close pA current measuring relay 10400 OUTPUT 723;"OB 15 2,IT" High voltage light on 10410 Volt_bert=Voltage/ .0151 Adjustment factor for Bertan 10420 10430 FOR K=0 TO 15 STEP Adapterl 10440 ! Bring pA meter to zero 10450 OUTPUT 723;"OB 15 1, 0T" Open pA current measuring relay 10460 WAIT 7 10470 OUTPUT 716;"Z" Zero pA meter (i.e. blank value) 10480 OUTPUT 723;"OB 15 1, IT" Close pA current measuring relay 10490 10500 IF W=0 THEN GOTO 10550 10510 IF W<16*Load_no/Adapterl THEN GOTO 10550 10520 IF W<32*Load_no/Adapterl THEN GOTO 10570 10530 IF W<48*Load_no/Adapterl THEN GOTO 10590 10540 10550 OUTPUT 723;"OB 12",K,"IT" Close sample 1-16 relay 10560 GOTO 10600
10570 OUTPUT 723;"OB 13",K, "IT" Close sample 17-32 relay
10580 GOTO 10600
10590 OUTPUT 723;"OB 14",K, "IT" Close sample 33-48 relay
10600 WAIT 1
10610 OUTPUT 723;"OP 6",Volt_bert,"T ! Set voltage on Bertan
10620 WAIT Time-1
10630 ENTER 716;II,V ! Transfer to 9826
10640 IF IK0 THEN GOTO 10630
10650 WAIT 1
10660 ENTER 716;12,V
10670 IF I2<0 THEN GOTO 10660
10680 WAIT 1
10690 ENTER 716;13,V
10700 IF I3<0 THEN GOTO 10690
10710 I=(Il+I2-FI3)'/3
10720 I
10730 OUTPUT 723;"OP 6,0T" ! Return Bertan voltage to zero
10740 WAIT 5
10750 OUTPUT 723;"OB 15 4,IT" ! Close relay to 100k ohm resistor
10760 WAIT 1
10770 OUTPUT 723;"OB 15 4,0T" ! Open relay to 100k ohm resistor
10780 IF W=0 THEN GOTO 10820
10790 IF W<16*Load_no/Adapterl THEN GOTO 10820
10800 IF W<32*Load_no/Adapterl THEN GOTO 10840
10810 IF W<48*Load_no/Adapterl THEN GOTO 10860
10820 OUTPUT 723;"OB 12",K,"0T"! Open sample 1-16 relay
10830 GOTO 10870
10840 OUTPUT 723;"0B 13",K, "OT"! Open sample 17-32 relay
10850 GOTO 10870
10860 OUTPUT 723;"OB 14",K, "0T"! Open sample 33-48 relay
10870 W=W+1
10880 GOSUB Calc_ir
10890 IF W=Sample_no THEN RETURN
10900 NEXT K
10910 GOSUB Discharge
10920 IF W=16*Load_no/Adapterl OR W=32*Load_no/Adapterl THEN GOTO 10430
10930 RETURN
10940!
10950 Calc_ir: !
10960 Resist(W)=INT(Voltage/I) /10 Λ 6
10970
10980 ! To avoid exceeding image with opens
10990 IF Resist (W)>9999999 THEN Resist (W)=9999999
11000
11010 GOSUB Displayl ! Display Cap/Df/uncorrected I.R.
11020
11030 Fact_temp=l
11040 IF Temp_cor=l THEN GOSUB Temperature
11050!
11060 Resist (W)=INT(Resist (W) /Fact_temp)
11070 Data(W,3)=Resist (W)
11080 Data(W, 4)=Resist (W)
11090 Data(W, 5)=Resist (W)
11100 Data (W, 6)=Resist (W)
11110
11120
11130 Displayl: t
11140 OUTPUT USING " 1DDD , #" ; W
11150 OUTPUT USING " 5DDD . DDDD , # " ; Data (W, 1)
11160 OUTPUT USING " 5DD . DD , #" ; Data (W, 2 )
11170 OUTPUT USING " 9DDDDDDDD , #" ; DROUND ( INT (Data (W, l ) *Resist (W) ) , 4 )
11180 OUTPUT USING " 6DDD" ; Voltage
11190 RETURN
11200
11210
11220 Temperature: !
11230
11240 Fluke1=0
11250 Fluke2=0
11260 OUTPUT 723;"IP 2T" Trigger Fluke
11270 ENTER 72301;Flukel Take reading
11280 WAIT .5
11290 OUTPUT 723;"IP 2T" Re-trigger Fluke
11300 ENTER 72301;Fluke2 Take 2nd reading
11310 IF Flukel=Fluke2 THEN 11330 Ok if two readings are the same
11320 GOTO 11240 If not the same, repeat reading
11330 ! Convert Fluke reading to centigrade
11340 A=0
11350 B=0
11360 ''B1=0 - ' '
11370 c=o
11380 τ=o
11390 A=INT(Flukel/256)
11400 B=Flukel-(A*256)
11410 C=(B-(INT(B/16) *16) ) /10
11420 B1=INT(B/16)
11430 Temp(W)=A*10+B1+C
11440
11450 IF Temp(W)<20 OR Temp(W)>30 THEN GOSUB Error_temp
11460 IF Temp(W)=20 OR Temp(W)<20.5 THEN GOTO 11590
11470 IF Temp(W)=20.5 OR Temp(W)<21.5 THEN GOTO 11610
11480 IF Temp(W)=21.5 OR Temp(W)<22.5 THEN GOTO 11630
11490 IF Temp(W)=22.5 OR Temp(W)<23.5 THEN GOTO 11650
11500 IF Temp(W)=23.5 OR Temp(W)<24.5 THEN GOTO 11670
11510 IF Temp(W)=24.5 OR Temp(W)<25.5 THEN GOTO 11690
11520 IF Temp(W)=25.5 OR Temp(W)<26.5 THEN GOTO 11710
11530 IF Temp(W)=26.5 OR Temp(W)<27.5 THEN GOTO 11730
11540 IF Temp(W)=27.5 OR Temp(W)<28.5 THEN GOTO 11750
11550 IF Temp(W)=28.5 OR Temp(W)<29.5 THEN GOTO 11770
11560 IF Temp(W)=29.5 OR Temp(W)<30 THEN GOTO 11790
11570 IF Temp(W)=30 THEN Fact_temp=, 71
11580 RETURN
11590 Fact_tempι=l.42
11600 RETURN
11610 Fact_temp= 1.33
11620 RETURN
11630 Fact_temp= 1.24
11640 RETURN
11650 Fact_temp= =1.16
11660 RETURN
11670 Fact__temp ! =1.08
11680 RETURN
11690 Fact_temp : ■ 1
11700 RETURN
11710 Fact_temp : =.94
11720 RETURN
11730 Fact_temp =.87
11740 RETURN
11750 Fact_temp =.82
11760 RETURN
11770 Fact_temp .=.76
11780 RETURN
11790 Fact_teιrιp =.71
11800 RETURN
11810!
11820 Error_temp: OUTPUT 1 USING "@"
11830 OUTPUT 1;""
11840 OUTPUT 1;"MEASURING TEMPERATURE IS OUT OF LIMITS !"
11850 SUBEXIT
11860!
11870 Discharge: !
11880 OUTPUT 723;"OB 15 4,IT" ! Close relay to 100K ohm resistor
11890 FOR J=0 TO 15 STEP Adapterl
11900 OUTPUT 723;"OB 12",J, "IT" Close sample 1-16 relay
11910 WAIT .5
11920 OUTPUT 723;"OB 12",J,"0T" Open sample 1-16 relay
11930 I
11940 OUTPUT 723;"OB 13",J, "IT" Close sample 17-32 relay
11950 WAIT .5
11960 OUTPUT 723;"OB 13",J,"0T" Open sample 17-32 relay
11970 t
11980 OUTPUT 723;"OB 14",J,"lT ,r Close sample 33-48 relay
11990 WAIT .5
12000 OUTPUT 723;"OB 14",J,"0T" Open sample 33-48 relay
12010 NEXT J - :
12020 I
12030 OUTPUT 723;"OB 15 4,0T" ! Open relay to 100K ohm resistor
12040
12050 RETURN
12060
12070 SUBEXIT
12080 I
12090 SUBEND !
12100 i *******************************************
12110 SUB Calc !
12120 i ********************************************
12130 COM /Condns/ Sample_no,Voltage_no, Voltage,Voltagel,Voltage2, Voltage Voltage4,Adapterl,Temp_cor,Time,Hz,Test_temp,Bottoml,Capl,Df l
12140 COM /Data/ Data (103, 6) ,Z,W 12150 COM /Counters/ Zero_no,Load__no,Times,Plots 12160 COM /Interim/ Cap(96) ,Df (96) ,Temp(96) ,Resist (103) 12170 COM /Ok/ Cap_ok 12180 I 12190 DISP 12200 12210 Sample_no+l= minimum value 12220 Sample_no+2= maximum value 12230 Sample_no+3= uncorrected mean 12240 Sample_no+4= corrected mean 12250 ResistX(lOO) are insulation resistance 12260 Sample_no+5= corrected sigma 12270 ResistX(lOl) are insulation resistances 12280 Capl=tolerance for Cap reject 12290 Dfl= Max value for Df reject 12300 IF Sample_no=l THEN GOSUB Single 12310 GOSUB Capacitance 12320 I 12330 GOSUB Df 12340 j 12350 GOSUB In_resist 12360 I 12370 GOSUB End 12380 12390 Single: ! 12400 Dat (Sample_no+3, 1)=Data (1,1) 12410 Data(Sample_no+4, 1)=Data(1, 1) 12420 GOSUB End 12430 End: ! 12440 SUBEXIT 12450 RETURN 12460 Capacitance: 12470 Data(Sample_no+l,l)=Data(l, 1) 12480 Data(Sample_no+2,1)=Data(1, 1) 12490 Number=0 12500 Cap_ok=0 12510 12520 FOR K=l TO Sample_no 12530 IF Data(K,l)<=0 THEN GOTO 12560 ■ ! Exclude zero values 12540 Data (Sample_no+3, 1)=Data(Sample_no+3, 1)÷Data (K, 1)
Sum
12550 Number=Number+1 12560 NEXT K 12570 Data(Sample_no+3,1)=Data(Sample_no+3,1) /Number
Gross Mean excluding zeros
12580 t 12590 FOR K=l TO Sample_no ! Do not include cap + df rejects 12600 IF Data(K,l)<Data(Sample_no+3,l) * (1-Capl) OR
Data(K,l)>Data(Sample_no+3,l)*(l+Capl) THEN GOTO 12660
12610 IF Data(K,2)>Dfl- OR Data(K,2)<=0 THEN GOTO 12660 12620 IF Data(K,l)<Data(Sample_no+l,l) THEN Dat (Sample_no+l, l)=Data 12630 IF Data(K, 1) >Data(Sample_no+2, 1) THEN Data(Sample_no+2, 1)=Data 12640 Data(Sample_no+4, 1)=Data(Sample_no+4,1)+Data(K, 1) 12650 Cap_ok=Cap_ok+l ! Number of non-reject units 12660 NEXT K 12670 IF Cap_ok=0 THEN GOTO 12790 12680 Data (Sa«lple_no+4, 1)=Data (Sample_no+4, 1) /Cap_ok ! Corrected me 12690 I 12700 ! Sigma 12710 IF Cap_ok<=l THEN GOTO 12790 12720 FOR K=l TO Sample no
12730 IF Data(K,l)<Data(Sample_no+3,1) *(1-Capl) OR Data(K,l)>Data(Sample_no+3,l)*(l+Capl) THEN GOTO 12760
12740 IF Data(K,2)>Dfl OR Data(K,2)=0 THEN GOTO 12760 12750 Data(Sample_no+5,1)=Data(Sample_no+5,1)+(Data(K,1)- Data(Sample_no+4,1) ) Λ 2
12760 NEXT K 12770 Data(Sample_no+5,l)=SQR(Data(Sample_no+5,1) / (Cap_ok-l) ) 1 sigma
12780 Data(Sample_no+5,1)=ABS (Data(Sample_no+5,1) ) 12790 RETURN 12800 12810 Df: ! Do not include cap and df rejects 12820 Data(Sample_no+l,2)=Data(1,2) 12830 Data(Sample_no+2,2)=Data(1,2) 12840 Df_ok=0 12850 FOR K=l TO Sample_no 12860 Data(Sample_no+3,2)=Data(Sample_no+3,2)÷Data(K,2) 12870 IF Data(K,l)<Data(Sample_no+3,l)*(l-Capl) OR Data(K,l)>Data (Sample_no+3,l)*(l+Capl) THEN GOTO 12930
12880 IF Data(K,2)>Dfl OR Data(K,2)=0 THEN GOTO 12930 12890 IF Data(K,2)<Data(Sample_no+l,2) THEN Data(Sample_no+l,2) = Data(K,2)
12900 IF Data(K,2)>Data(Sample_no+2,2) THEN Data(Sample_no+2,2)= Data(K,2)
12910 Data(Sample_no+4,2)=Data(Sample_no+4,2)+Data(K,2) 12920 Df_ok=Df_ok+l 12930 NEXT K 12940 ! Means 12950 Data(Sample_no+3,2)=Data(Sample_no+3,2) /Sample_no Gross mean 12960 IF Df_ok=0 THEN GOTO 13090 12970 Data(Sample_no+4,2)=Data(Sample_no+4,2) /Df_ok ! Corrected mean 12980 12990 ! Sigma 13000 FOR K=l TO Sample_no 13010 IF Df_ok<=l THEN GOTO 13090 13020 IF Data(K,l)<Data(Sample_no+3 r l)*(l-Capl) OR Data(K,1)>Data (Sample_no+3,l)*(l+Capl) THEN GOTO 13050
13030 IF Data(K,2)>Dfl OR Data(K,2)=0 THEN GOTO 13050 13040 Data(Sample_no+5,2)=Data(Sample_no+5,2)+(Data(K,2)- Dat (Sample_no+4,2) ) Λ 2
13050 NEXT K 13060 Data(Sample_no+5,2)=SQR(Data(Sample_no+5,2) / (Df_ok-l) ) ! Corre sigma
13070 Data(Sample_no+5,2)=ABS (Data(Sample_no+5,2) ) 13080 13090 RETURN 13100 1 13110 In resist: 13120 IF Voltagel>0 THEN GOSUB Irl 13130 IF Voltage2>0 THEN GOSUB Ir2 13140 IF Voltage3>0 THEN GOSUB Ir3 13150 IF Voltage4>0 THEN GOSUB Ir4 13160 RETURN 13170 Irl: ! Do not include units reject for cap or df 13180 Data(Sample_no+l,3)=Data(1,3) *Data(1,1) 13190 Data(Sample no+2,3)=Data(1,3) *Data(1,1) 13200 13210 FOR K=l TO Sample_no 13220 Data(Sample_no+3,3)=Data(Sample_no+3,3)÷Data(K,3) 13230 IF Data(K,l)<Data(Sample_no+3,l)*(l-Capl) OR
Data(K,l)>Data(Sample_no+3,l)*(l+Capl) THEN GOTO 13290
13240 IF Data(K,2)=0 OR Data(K,2)>Dfl THEN GOTO 13290 13250 IF Data(K,3)*Data(K,l)<Data(Sample_no+l,3) THEN
Dat (Sample no+1,3)=Data(K,3) *Data(K,1)
13260 IF Data(K,3) *Data(K, 1) >Data(Sample_no+2, 3) THEN Data (Sample_no+2,3)=Data(K, 3) *Data (K, 1)
13270
Data(Sample_no+4, 3)=Data (Sample_no+4,3)+(Data (K,3) *Data (K, 1) )
13280 Rl_ok=Rl_ok+l 13290 NEXT K 13300 ! Means 13310 Data(Sample_no+3,3)=Data(Sample_no+3, 3) /Sample_no 13320 IF Rl_ok=0 THEN RETURN 13330 Data (Sample_no+4, 3)=Data(Sample_no+4, 3) /Rl_ok 13340 I 13350 ! Sigma 13360 IF Rl_ok<=l THEN RETURN 13370 FOR K=l TO Sample_no 13380 IF Data(K,l)<Data(Sample_no+3,l)*(l-Capl) OR Data(K,l)>Data(Sample_no+3,l)*(l+Capl) THEN GOTO 13410
13390 IF Data(K,2)=0 OR Data(K,2)>Df1 THEN GOTO 13410 13400
Data(Sample_no+5,3)=Data(Sample_no+5,3)+( (Data(K,3) *Data(K, 1) )-
Data(Sample_no+4, 3) ) Λ 2
13410 NEXT K 13420 Data(Sample_no+5,3)=SQR(Data(Sample_no+5,3) / (Rl_ok-l) ) 13430 Data(Sample_no+5,3)=ABS (Data(Sample_no+5, 3) ) 13440 13450 RETURN 13460 13470 Ir2: ! Do not include units reject for cap or df 13480 Data(Sample_no+l,4)=Data(l,4) *Data(l,l) 13490 Data (Sample_no+2, 4)=Data (1,4) *Data (1,1) 13500 FOR K=l TO Sample_no 13510 Data(Sample_no+3, 4)=Data (Sample_no+3, 4)+Data(K, ) 13520 IF Data(K,l)<Data(Sample_no+3,l)*(l-Capl) OR Data(K,l)>Data(Sample_no+3,l)*(l+Capl) THEN GOTO 13580
13530 IF Data(K,2)=0 OR Data (K,2)>Dfl THEN GOTO 13580 13540 IF Data(K, 4) *Data(K, 1)<Data(Sample_no+l,4) THEN Data(Sample_no+l, 4)=Data(K,4) *Data(K,l)
13550 IF Data(K,4)*Data(K,l)>Data(Sample_no+2,4) THEN
Data(Sample_no+2, 4)=Data(K, 4) *Data(K,l)
13560
Data (Sample_no+4, 4)=Data(Sample_no+4, 4)+(Data(K, 4) *Data(K, 1) )
13570 R2_ok=R2_ok+l 13580 NEXT K 13590 ! Means 13600 Data(Sample_no+3, 4)=Data(Sample_no+3, 4) /Sample_no 13610 IF R2_ok=0 THEN RETURN 13620 Data(Sample_no+4, 4)=Data(Sample_no+4, 4) /R2_ok 13630 ; 13640 ! Sigma 13650 IF R2_ok<=l THEN RETURN 13660 FOR K=l TO Sample_no 13670 IF Data(K,l)<Data(Sample_no+3,l)*(l-Capl) OR Data (K, 1) (Sample_no+3,l)*(l+Capl) THEN GOTO 13700
13680 IF Data(K,'2)=0 OR Data(K,2) >Df1 THEN GOTO 13700 13690 Data(Sample_no+5, 4)=Data(Sample_no+5, 4)+( (Data(K, 4) *Data(K, 1) ) - Data(Sample_no+4, 4) ) Λ 2
13700 NEXT K 13710 Data(Sample_no+5,4)=SQR(Data(Sample_no+5,4) / (R2_ok-l) 13720 Data(Sample_no+5, 4)=ABS (Data(Sample_no+5, 4) ) 13730 RETURN 13740 13750 Ir3: ! Do not include units reject for cap or df 13760 Data(Sample_no+l,5)=Data(1,5) *Data(1, 1) 13770 Data(Sample_no+2,5)=Data (1,5) *Data(1,1) 13780 13790 FOR K=l TO Sample no
13800 Data(Sample_no+3,5)=Data(Sample_no+3,5)+Data(K,5) 13810 IF Data(K,1)<Data<Sample_no+3,1) *(1-Capl) OR Data(K,l)>Data(Sample_no+3,l)*(l+Caρl) THEN GOTO 13870
13820 IF Data(K,2)=0 OR Data(K,2)>Dfl THEN GOTO 13870 13830 IF Data(K,5)*Data(K,l)<Data(Sample_no+l,5) THEN Data(Sample_no+l,5)=Data(K,5) *Data(K,1)
13840 IF Data(K,5)*Data(K,1)>Data(Sample_no+2,5) THEN Data(Sample_no+2,5)=Data(K,5) *Data(K,1)
13850 Data(Sample_no+4,5)=Data(Sample_no+4,5)+(Data(K,5) *Data(K,1) ) 13860 R3_ok=R3_ok+l 13870 NEXT K 13880 ! Means 13890 Data(Samρle_no+3,5)=Data(Sample_no+3,5) /Sample_no 13900 IF R3_ok=0 THEN RETURN 13910 Data(Sample_no+4,5)=Data(Sample__no+4,5) /R3_ok 13920 ! Sigma 13930 IF R3_ok<=l THEN RETURN 13940 FOR K=l TO Sample_no 13950 IF Data(K,l)<Data(Sample_no+3,l)*(l-Capl) OR Data(K,1)> Data (Sample_no+3,l)*(l+Capl)- THEN GOTO 13980
13960 IF Data(K,2)=0 OR Data(K,2)>Df1 THEN GOTO 13980 13970 Data(Sample_no+5,5)=Data(S " ample_no+5,5)+( (Data(K,5) *Data(K,1) )- Data(Sample_no+4,5) ) Λ 2
13980 NEXT K 13990 Data(Sample_no+5,5)=SQR(Data(Sample_no+5,5) / (R3_ok-l) ) 14000 Data(Sample_no+5,5)=ABS (Data(Sample_no+5,5) ) 14010 14020 RETURN 14030 14040 Ir4: ! Do not include units reject for cap or df 14050 Data(Sample_no+l, 6)=Data(1,6) *Data(1,1) 14060 Data(Sample_no+2, 6>=Data(l, 6) *Data(l,l) 14070 14080 FOR K=l TO Sample_no 14090 Data(Sample_no+3, 6)=Data(Sample_no+3,6)÷Data(K, 6) 14100 IF Data(K,1)<Data(Sample_no+3,1) *(1-Capl) OR Data(K,l)>Data(Sample_no+3,l)*(l+Capl) THEN GOTO 14160
14110 IF Data(K,2)=0 OR Data(K,2)>Df1 THEN GOTO 14160 14120 IF Data(K, 6) *Data(K,1)<Data(Sample_no+l, 6) THEN Data(Sample_no+l,6)=Data(K, 6) *Data(K,1)
14130 IF Data(K, 6) *Data(K,l)>Data(Sample_no+2,6) THEN Data(Sample_no+2, 6)=Data(K, 6) *Data(K,1)
14140 Data(Sample_no+4, 6)=Data(Sample_no+4, 6)+(Data(K,6) *Data(K, 1) ) 14150 R4_ok=R4_ok+l 14160 NEXT K 14170 ! Means 14180 Data(Sample_no+3,6)=Data(Sample_no+3, 6) /Sample_no 14190 IF R4_ok=0 THEN RETURN 14200 Data(Sample_no+4,6)=Data(Sample_no+4,6) /R4_ok 14210 ! Sigma 14220 IF R4_ok<=l THEN RETURN 14230 FOR K=l TO Sample_no 14240 IF DatafK, " l)<Data(Sample_no+3,l)*(l-Capl) OR Data(K,l)>Data(Sample_no+3,l)*(l+Capl) THEN GOTO 14270
14250 IF Data(K,2)=0 OR Data(K,2)>Dfl THEN GOTO 14270 14260 Data(Sample_no+5, 6)=Data(Sample_no+5, 6)+( (Data(K,6) *Data(K,l) )- Data(Sample_no+4, 6) ) Λ 2
14270 NEXT K 14280 Data(Sample_no+5, 6)=SQR(Data(Sample_no+5, 6) / (R4_ok-l) 14290 Data(Sample_no+5,6)=ABS (Data(Sample_no+5, 6) ) 14300 RETURN 14310 j 14320 SUBEND 14330 14340 SUB Table
14350 i*******************************************
14360 COM /Info/
Job_noS [20] ,Samples [80] ,RemarksS [80] ,Operators [20] ,TyρeS [30] ,Test_dat
0],FileS 14370 COM /Condns/
Sample_no,Voltage_no,Voltage,Voltagel,Voltage2,Voltage3,V oltage4,Adap
, Temp_cor,Time,Hz,Test_temp,Bottoml,Capl,Dfl 14380 COM /Data/ Data(103, 6) ,Z,W 14390 COM /Counters/ Zero_no,Load_no,Times,Plots 14400 !
14410 PRINTER IS 701
14420 PRINT CHR$(12); ! Clear alpha
14430 PRINT ""
14440 PRINT TAB(20) ;"**** DUPONT CAPACITOR CHARACTERIZATION ****" 14450 PRINT ""
14460 PRINT TAB(5) ;"JOB NUMBER: ";Job_no$ 14470 PRINT ""
14480 PRINT TAB(5) ;"SAMPLE DESCRIPTION: ";Sample$ 14490 PRINT ""
14500 PRINT TAB(5) ;"REMARKS: ";Remarks$ 14510 PRINT ""
14520 Test_date$=DATE$ (TIMEDATE)
14530 PRINT TAB(5) ;"OPERATOR: ";Operators;TAB(50) ;"DATE: ";Test_date$ 14540 PRINT ""
14550 PRINT TAB(5);"TEST CONDITIONS: " 14560 Test_temp=INT (Test_temp*10)
14570 Test_temp=Test_temp/10
14580 PRINT TAB(16) ;"Mean test temperature : ";Test_temp; " C." 14590 PRINT TAB(16) ;"Frequency for cap & df : ";Hz;" Hz" 14600 IF Voltage_no=0 THEN GOTO 14640
14610 PRINT TAB(16) ;"Time for Insul.Resist. : ";Time;" Seconds" 14620 IF Temp_cor=0 THEN GOTO 14640
14630 PRINT TAB(16) ;"I.R. values adjusted to 25 C. (EIA RS-377) " 14640 PRINT ""
14650 IF File$="0" THEN GOTO 14700 14660 Test_time$=TIME$ (TIMEDATE)
14670 FileS=Test_date$ [1,2]&Test_date$ [4, 6] &Test_time$ [1,2]&Test_time$ [4, 5] 14680 PRINT "Data Stored in File : ";File$ 14690 PRINT ""
14700 PRINT "
14710 IF Temp_cor=0 THEN GOTO 14740
14720 PRINT TAB(2) ;"SAMPLE";TAB(12) ;"CAPACITANCE";TAB(25) ;" D.F."; TAB(35);
"INSULATION RESISTANCE @ -25 C. ,megohm-uf" 14730 GOTO 14750 14740 PRINT TAB(2) ;"SAMPLE";TAB(12) ;"CAPACITANCE";TAB(25) ;" D.F."; TΔB(35);
"INSULATION RESISTANCE, megohm-uf" 14750 ! Convert for low capacitance units
14760 IF Data(Sample_no+4,l)>.01 THEN GOTO 14920 14770 IF Voltage_no=4 THEN GOTO 14830 14780 IF Voltage_no=3 THEN GOTO 14850 14790 IF Voltage_no=2 THEN GOTO 14870 14800 IF Voltage_no=l THEN GOTO 14890 14810 IF V61tage_no=0 THEN GOTO T4890 14820 ! 14830 PRINT TAB(2) ;"NO.";TAB(12) ; "nanofarad";TAB(26) ;"%"; TAB(38) ;Voltagel;
TAB(49); Voltage2;"v"; TAB(61); Voltage3;"v";TAB(72) ;Voltage4;"v" 14840 GOTO 15040 14850 PRINT TAB(2) ;"NO.";TAB(12) ;"nanofarad"; TAB(26) ;"%";TAB(41) ; Voltagel;
TAB(56) ; Voltage2;"v";TAB(71) ;Voltage3;"v" 14860 GOTO 15040 14870 PRINT TAB(2) ;"NO."; TAB(12) ;"nanofarad"; TAB(26);"%"; TAB(43) ;Voltagel;
"volts";TAB(62) ;Voltage2;"volts" 14880 GOTO 15040 14890 PRINT TAB(2) ; "NO.";TAB(12) ; "nanofarad";TAB(26) ; "%";TAB(47);
Voltagel;"volts"
14900 GOTO 15040 14910 I 14920 IF Voltage_no=4 THEN GOTO 14970 14930 IF Voltage_no=3 THEN GOTO 14990 14940 IF Voltage_no=2 THEN GOTO 15010 14950 IF Voltage_no=l THEN GOTO 15030 14960 IF Voltage_no=0 THEN GOTO 15030 14970 PRINT TAB(2) ;"NO."; TAB(12) ;"microf rad"; TAB(26) ;"%";TAB(38) Vol agel;
"v";TAB(49) ;Voltage2;"v";TAB(61) ;Voltage3;" ";TAB(72) ;Voltage4;"v"
14980 GOTO 15040 14990 PRINT TAB(2) ;"NO."; TAB(12) ;"microfarad";TAB(26) ; "%";TAB(41);
Voltagel;"v"; TAB(56) ; Voltage2;"v"; AB(71) ;Voltage3;"v"
15000 GOTO 15040 15010 PRINT TAB(2) ;"NO."; TAB(12) ;"microfarad"; TAB(26);"%"; TAB(43); Voltagel
"volts";TAB(62) ;Voltage2;"volts"
15020 GOTO 15040 15030 PRINT TAB(2) ;"NO."; TAB(12);"microfarad"; TAB{26); "%";TAB(47); Voltagel
"volts"
15040 PRINT " 15050 PRINT "" 15060 SUBEND 15070 !******************************************* 15080 SUB Columns 15090 !******************************************* 15100 r 15110 COM /Condns/ Sample_no,Voltage_no, Voltage,Voltagel, oltage2, Voltage3, Voltage4,Adapterl,Temp_cor,Time,Hz,Test_temp,Bottoml,Capl,Df l
15120 COM /Data/ Data(103,6) ,Z,W 15130 COM /Interim/ Cap(96) ,Df(96) ,Temp(96) ,Resist (103) 15140 ! 15150 IF Voltage_no=4 THEN GOSUB Four 15160 IF Voltage_no=3 THEN GOSUB Three 15170 IF Voltage_no=2 THEN GOSUB Two 15180 IF Voltage_no=l THEN GOSUB One 15190 IF Voltage_no=0 THEN GOSUB None 15200 15210 IF Sample_no=l THEN GOTO 15250 15220 I 15230 GOSUB Means 15240 GOSUB Bottom 15250 SUBEXIT 15260 Four: ! 15270 FOR K=l TO Sample_no 15280 IF DatafK,l)<Data(Sample_no+4,l) *(1-Capl) OR Data(K,l)>Da a (Sample_no+4,l)*(l+Capl) THEN GOTO 15310
15290 IF Data(K,2)=0 OR Data(K,2)>Dfl THEN GOTO 15310 15300 GOTO 15350 15310 PRINT USING "1A,#";"*" 15320 PRINT USING "3DD,#";K 15330 Bottoml=l 15340 GOTO 15360 15350 PRINT USING "4DD,#";K 15360 IF Data(Sample_nσ+4Vl)>.01 THEN GOTO 15390 15370 PRINT USING "7DDD.DDDD,#";Data(K,1) *1000 15380 GOTO 15400 15390 PRINT USING "7DDD.DDDD,#";Data(K,1) 15400 PRINT USING "6DD.DD,#";Data(K,2) 15410 PRINT USING 7DDDDDDD,#";DROUND( (Data(K,3) *Data(K,1) ) ,4) 15420 PRINT USING 5DDDDDDD,#";DROUND( (Data(K,4) *Data(K,1) ) ,4) 15430 PRINT USING '6DDDDDDD,#";DROUND( (Data(K,5) *Data(K,1) ) ,4) 15440 PRINT USING '5DDDDDDD";DROUND( (Data(K,6) *Data(K,1) ) ,4) 15450 NEXT K 15460 RETURN 15470 Three: ! 15480 FOR K=l TO Sample no
15490 IF Data(K,l)<Data(Sample_no+4,l) *(1-Capl) OR Data (K, 1) >Data (Sample_no+4,l) *(1+Capl) THEN GOTO 15520
15500 IF Data(K,2)=0 OR Data (K,2) >Df1 THEN GOTO 15520 15510 GOTO 15560 15520 PRINT USING "1A,#";"*" 15530 PRINT USING "3DD,#";K 15540 Bθttoml=l 15550 GOTO 15570 15560 PRINT USING "4DD,#";K 15570 IF Data(Sample_no+4,l)>.01 THEN GOTO 15600 15580 PRINT USING "7DDD.DDDD,#";Data(K, 1) *1000 15590 GOTO 15610 15600 PRINT USING "7DDD.DDDD,#";Data (K,1) 15610 PRINT USING "6DD.DD,#";Data (K,2) 15620 PRINT USING "10DDDDDDD,#";DROUND ( (Data(K,3) *Data (K, 1) ) , ) 15630 PRINT USING "9DDDDDDD,#";DROUND( (Data(K, 4) *Data(K, 1) ) , 4) 15640 PRINT USING "9DDDDDDD";DROUND ( (Data(K,5) *Data(K, 1) ) , 4) 15650 NEXT K 15660 RETURN 15670 Two: 15680 FOR K=l TO Sample_no 15690 IF Data(K,lXData(Sampie_no+4,l) *(1-Caρl) OR Data (K, 1) >Data (Sample_no+4, 1) *(1+Capl) THEN GOTO 15720
15700 IF Data(K,2)=0 OR Data (K,2) >Df1 THEN GOTO 15720 15710 GOTO 15760 15720 PRINT USING "1A,#";"*" 15730 PRINT USING "3DD,#";K 15740 Bottoml=l 15750 GOTO 15770 15760 PRINT USING "4DD,#";K 15770 IF Data(Sample_no+4,l)>.01 THEN GOTO 15800 15780 PRINT USING "7DDD.DDDD,#";Data (K, 1) *1000 15790 GOTO 15810 15800 PRINT USING "7DDD.DDDD,#";Data(K, 1) 15810 PRINT USING "6DD.DD,#";Data(K,2) 15820 PRINT USING "16DDDDDDD,#";DROUND( (Data(K, 3) *Data(K, 1) ) , 4) 15830 PRINT USING "13DDDDDDD";DROUND ( (Data(K, 4) *Data(K,1) ) , 4) 15840 NEXT K 15850 RETURN 15860 One: 15870 FOR K=l TO Sample_no 15880 IF Data(K,l)<Data(Sample_no+4,l) *(1-Capl) OR Data (K, 1) >Data (Sample_no+4,l) *(1+Capl) THEN GOTO 15910
15890 IF Data(K,2)=0 OR Data(K,2)>Dfl THEN GOTO 15910 15900 GOTO 15950 15910 PRINT USING "1A,#";"*" 15920 PRINT USING "3DD,#";K 15930 Bottoml=l 15940 GOTO 15960 15950 PRINT USING "4DD,#";K 15960 IF Data(Sample_no+4,l)>.01 THEN GOTO 15990 15970 PRINT USING "7DDD.DDDD,#";Data(K,1) *1000 15980 '- ■ GOTO 16000 - • •' 15990 PRINT USING "7DDD.DDDD,#";Data(K, 1) 16000 PRINT USING "6DD.DD,#";Data(K,2) 16010 PRINT USING "20DDDDDDD";DROUND ( (Data (K,3) *Data(K, 1) ) , 4) 16020 NEXT K 16030 RETURN 16040 None: 16050 FOR K=l TO Sample_no 16060 IF Data(K,lXData (Sample_no+4, 1) * (1-Capl) OR Data (K,1)>Data (Sample_no+4,l) *(1+Capl) THEN GOTO 16090
16070 IF Data(K,2)=0 OR Data (K,2) >Df1 THEN GOTO 16090 16080 GOTO 16130 16090 PRINT USING "1A,#";"* »
16100 PRINT USING "3DD,#";K
16110 Bottoml=l
16120 GOTO 16140
16130 PRINT USING "4DD,#";K
16140 IF Data(Sample_no+4,l)>.01 THEN GOTO 16170
16150 PRINT USING "7DDD.DDDD,#";Data(K,1)*1000
16160 GOTO 16180
16170 PRINT USING "7DDD.DDDD,#";Data(K,1)
16180 PRINT USING "6DD.DD";Data(K,2)
16190 NEXT K
16200 RETURN
16210 Means:
16220 IF Voltage_no=4 THEN GOSUB Means4
16230 IF Voltage_no=3 THEN GOSUB Means3
16240 IF Voltage_no=2 THEN GOSUB Means2
16250 IE Voltage_no=l THEN GOSUB Means!
16260 IF Voltage_no=0 THEN GOSUB Means0
16270 RETURN
16280
16290 Means4:
16300 PRINT
16310 PRINT "Mean values:"
16320 IF Data(Sample_no+4,l)>.01 THEN GOTO 16350
16330 PRINT USING "12DDD.DDDD,#";Data(Sample_no+4,1) *1000
16340 GOTO 16360
16350 PRINT USING "12DDD.DDDD,#";Data(Sample_no+4,1)
16360 PRINT USING "6DD.DD,#";Data(Sample_no+4,2)
16370 PRINT USING "7DDDDDDD,#";DROUND(Data(Sample_no+4,3) ,4)
16380 PRINT USING "5DDDDDDD,#";DROUND(Data(Sample_no+4, 4) ,4)
16390 PRINT USING "6DDDDDDD,#";DROUND(Data(Sample_no+4,5) ,4)
16400 PRINT USING "5DDDDDDD";DROUND(Data(Sample_no+4, 6) ,4)
16410 PRINT "Sigma values:"
16420 IF Data(Sample_no+4,l)>.01 THEN GOTO 16450
16430 PRINT USING "^DDD.DDDD^'^DatafSample^o+S,!) *1000
16440 GOTO 16460
16450 PRINT USING "12DDD.DDDD,#";Data(Sample_no+5,1)
16460 PRINT USING "6DD.DD,#";Data(Sample_no+5,2)
16470 PRINT USING "7DDDDDDD,#";DROUND(Data(Sample_no+5,3) ,4)
16480 PRINT USING "5DDDDDDD,#";DROUND(Data(Sample_no+5,4) ,4)
16490 PRINT USING "6DDDDDDD,#";DROUND(Data(Sample_no+5,5) ,4)
16500 PRINT USING "5DDDDDDD";DROUND(Data(Sample_no+5, 6) ,4)
16510 RETURN
16520 Means3:
16530 PRINT ""
16540 PRINT "Mean values:"
16550 IF Data(Sample_no+4,l)>.01 THEN GOTO 16580
16560 PRINT USING "12DDD.DDDD,#";Data(Sample_no+4,1) *1000
16570 GOTO 16590
16580 PRINT USING "12DDD.DDDD,#";Data(Sample_no+4,1)
16590 PRINT USING "6DD.DD,#";Data(Sample_no+4,2)
16600 PRINT USING "10DDDDDDD,#";DROUND(Data(Sample_no+4,3) ,4)
16610 PRINT USING "9DDDDDDD,#";DROUND(Data(Sample_no+4,4) ,4)
16620 PRINT USING "9DDDDDDD" DROUND(Data(Sample_no+4,5) , 4)
16630 PRINT "Sigma values:"
16640 IF Data(Sample_no+4,l)>.01 THEN GOTO 16670
16650 PRINT USING "12DDD.DDDD,#";Data(Sample_no+5,1) *1000
16660 GOTO 16680
16670 PRINT USING "12DDD.DDDD,#";Data(Sample_no+5,l)
16680 PRINT USING "6DD.DD,#";Data<Sample_no+5,2)
16690 PRINT USING "10DDDDDDD,# ,r ;DROUND(Data(Sample_no+5,3) ,4)
16700 PRINT USING "9DDDDDDD,#";DROUND(Data(Sample_no+5,4) ,4)
16710 PRINT USING "9DDDDDDD";DROUND(Data(Sample_no+5,5) ,4)
16720 RETURN
16730 Means2:
16740 PRINT ""
Voltage4,Adapterl,Temp_cor,Time,Hz,Test_temp,Bottoml,Capl ,Dfl 156 17370 COM /Interim/ Cap(96) f Df(96) ,Temp(96) ,Resist(103) I
17380 ! 8
17390 Flukel=0
17400 Fluke2=0
17410 OUTPUT 723;"IP 2T"
17420 ENTER 72301;Flukel
17430 WAIT .5
17440 OUTPUT 723;"IP 2T"
17450 ENTER 72301;Fluke2
17460 IF Flukel=Fluke2 THEN GOTO 17480 156
17470 GOTO 17410
17480 A=0
17490 B=0
17500 B1=0
17510 C=0
17520 T=0
17530 A=INT(Flukel/256)
17540 B=Flukel-(A*256)
17550 C=(B-(INT(B/16) *16) ) /10
17560 B1=INT(B/16)
17570 T=A*10+B1+C
17580 IF Test_temp>0 THEN GOTO 17610
17590 Test_temp=T
17600 SUBEXIT
17610 Test_temp=(Test_temp+T) /2
17620 SUBEND
17630!********************************************
17640 SUB Plot_cap ! Histogram of Capacitance
17650!********************************************
17660 COM /Info/ Job_no$ [20],Sample $[80], RemarksS[80] ,Operator $[20], TypeS[30],Test_date$[20] ,FileS[10] 17670 COM /Condns/ Sample_no,Voltage_no,Voltage, Voltagel,Voltage2,
Voltage3,Voltage4,Adapterl,Temp_cor,Time,Hz,Test_temp,Bot toml,Capl,Dfl
17680 COM /Data/ Data(103,6) ,Z,W
17690 COM /Interim/ Cap(96) ,Df(96) ,Temp(96) ,Resist(103)
17700 DIM Units$[20]
17710 GINIT
17720 GRAPHICS ON
17730 PRINT CHRS (12) ; Clear alpha
17740 GCLEAR
17750 OUTPUT 1 USING
17760 PEN 1
17770 IF Sample_no=l THEN GOSUB End
17780 GOSUB Inputs
17790 GOSUB X_scale
17800 GOSUB Bin
17810 GOSUB Alpha
17820 GOSUB Outline
17830 GOSUB Label_x
17840 GOSUB Label_y
17850 GOSUB Plot
17860 GOSUB Print
17870 GOSUB End
17880 Inputs:
17890 DIM B_no(101)
17900 FOR K=l TO 100
17910 B_no(K)=0
17920 NEXT K
17930 RETURN
17940 Alph : !
17950 CSIZE 4
17960 MOVE 10,95
17970 LABEL "CAPACITANCE HISTOGRAM"
17980 1
17990 CSIZE 3
18000 MOVE 100,95
18010 LABEL Test_dateS 49 18020 I 18030 CSIZE 3 18040 MOVE 10,90 18050 LABEL Samples 18060 I 18070 CSIZE 3 18080 MOVE 15,3 18090 LABEL "CAPACITANCE, ";UnitsS 18100 18110 CSIZE 3 18120 MOVE 90,3 18130 Label=Mult*Data (Sample_no+4, 1) 18140 Label=DROUND(Label, 4) 18150 LABEL "MEAN :";Label 18160 I 18170 CSIZE 3 18180 MOVE 21,7 18190 LABEL "(-20%)" 18200 MOVE 44,7 18210 LABEL " (-10%)" 18220 MOVE 90,7 18230 LABEL "(+10%)" 18240 MOVE 113,7 18250 LABEL " (+20%) " 18260 CSIZE 3 18270 MOVE 2, 65 18280 Label$="OCCURENCES" 18290 FOR K=l TO 10 18300 LABEL LabelS [K,K] 18310 NEXT K 18320 RETURN 18330 18340 Outline: ! 18350 VIEWPORT 15,130,15,85 ! Define screen area 18360 FRAME 18370 WINDOW Min,Max,0,10*Jig2 ! Set window 18380 ! X tics 18390 AXES (Max-Min) /10,0,Min, 0,2,2,5 18400 ! Xtics,Ytics,Xlocation,Ylocation,Xmajor count,Ymajor count,Size 18410 ! Y tics 18420 AXES 0, (10*Jig2)/20,Min,0,10,2,4 18430 ! Xtics,Ytics,Xlocation,Ylocation,Xmajor count,Ymajor count,Size 18440 RETURN 18450 Label_x: ! 18460 VIEWPORT 0,130,0,100 18470 CSIZE 3 18480 LORG 5 18490 Y=-.5*Jig2 18500 MOVE Min+Space,Y 18510 Label=DROUND(Min+Space, 4) 18520 LABEL Label 18530 FOR K=2 TO 8 STEP' 2 18540 MOVE Min+Space+(Space*K) ,Y 18550 Label=Min+Space+(K*Space) 18560 Label=DROUND (Label, 4) 18570 LABEL Label 18580 NEXT K 18590 ' RETURN 18600 I 18610 Label_y: ! 18620 VIEWPORT 0,130,0,100 18630 CSIZE 3 18640 LORG 5 18650 X=Min-(Space/2)
18660 Y=Jig2 50 18670 MOVE X,Y 18680 Label=Jig2 18690 LABEL Label 18700 FOR K=2 TO 9 18710 MOVE X,Y*K 18720 LABEL Label*K 18730 NEXT K 18740 RETURN 18750 18760 X_scale: ! 18770 ! Define units 18780 IF Data(Sample_no+4,l)>100 THEN GOTO 18830 18790 IF Data(Sample_no+4,l)>=.01 THEN GOTO 18850 18800 IF Data(Sample_no+4,l)>=.001 THEN GOTO 18880 18810 IF Data(Sample_no+4,l)<.001 AND Data(Sample_no+4,l)>.000001 THE GOTO 18910
18820 PRINTER IS 701 18830 PRINT " CAPACITANCE VALUE IS OUT OF RANGE. *************************** *
18840 GOSUB End 18850 UnitsS=" Microfarads" 18860 Mult=l 18870 GOTO 18940 18880 UnitsS=" Nanofarads" 18890 Mult=10 Λ 3 18900 GOTO 18940 18910 UnitsS=" Picofarads" 18920 Mult=10 Λ 6 18930 18940 Min=Mult*(Dat (Sample_no+4,1)-(Data(Sample_no+4,1) *.25) ) 18950 Max=Mult*(Data(Sample_no+4,1)+(Data(Sample_no+4,1) *.25) ) 18960 Space=(Max-Min) /10 18970 Jigl=Space/10 18980 RETURN
18990 Bin: !
19000 I
19010 Buckets=100
19020 B_size=(Max-Min) /Buckets
19030 !
19040 FOR K=l TO Sample_no
19050 IF Data(K,iχ.75*Data(Sample_no+4,l) THEN GOTO 19080
19060 IF Data(K,l)>1.25*Data(Sample_no+4,l) THEN GOTO 19100
19070 GOTO 19130
19080 Q=l
19090 GOTO 19140
19100 Q=Buckets
19110 GOTO 19140
19120 I
19130 Q=INT(ABS ( (Mult*Data(K,l) )-Min) /B_size)+1 ! Bucket no of valu
19140 B_no(Q)=B_no(Q)+1 ! Number in bucket
19150 NEXT K
19160
19170 Max_no=0 Max in any bucket
19180 FOR K=l TO Buckets
19190 IF B_no(K)>Max_no THEN Max_no=B_no(K)
19200 NEXT K
19210
19220 Jig2=l+INT(Max no/10) ! Determine Y scale
19230
19240 RETURN
19250 Plot: 1
19260 VIEWPORT 0,130,0,100
19270 ! 19280 X=Min
19290 Y=0 19300 MOVE X,Y 19310 FOR K=l TO Buckets 19320 DRAW X,B_no(K) 19330 X=X+B_size 19340 Y=Y+(B_no (K) *B_size) 19350 DRAW X,B_no(K) 19360 NEXT K 19370 RETURN 19380 Print: I 19390 DUMP GRAPHICS 19400 RETURN 19410 End: SUBEND 19420 I******************************************* 19430 SUB Alarm 19440 I******************************************* 19450 I 19460 BEEP 100, .3 19470 WAIT .1 19480 BEEP 200, .3 19490 WAIT .1 19500 BEEP 300, .3 19510 WAIT .1 19520 BEEP 400, .3 19530 WAIT .1 19540 BEEP 500, .3 19550 WAIT .3 19560 BEEP 500, .3 19570 WAIT .1 19580 BEEP 400, .3 19590 WAIT .1 19600 BEEP 300, .3 19610 WAIT .1 19620 BEEP 200, .3 19630 WAIT .1 19640 BEEP 100, .3 19650 WAIT .1 19660 FOR J=l TO 8 19670 BEEP 500, .3 19680 WAIT .1 19690 NEXT J 19700 19710 SUBEND 19720 !******************************************** 19730 SUB Graph_ir ! Histogram of I.R. 19740 I******************************************** 19750 COM /Info/ Job_noS[20], SampleS[80] ,RemarksS [80] , Operators [20] , TypeS [30],Test_dateS [20],FileS [10]
19760 COM /Condns/ Sample_no,Voltage_no, Voltage,Voltagel, Voltage2,Voltage Voltage4,Adapterl,Temp_cor,Time,Hz,Test_temp,Bottoml,Capl,Df l
19770 COM /Data/ Data(103, 6) ,Z,W 19780 COM /Counters/ Zero_no,Load_no,Times,Plots 19790 COM Vlnterim/ Cap(96) ,Df 96") ,Temp(96) ,Resist (103) 19800 DIM B_no (5000) ! Large size needed for very wide capacitance rang 19810 GINIT 19820 GRAPHICS ON 19830 PRINTER IS 701 19840 PRINT CHRS(12); ! Clear alpha 19850 OUTPUT 1 USING "@" 19860 GCLEAR 19870 PEN 1 19880 IF Sample_no=l THEN GOSUB End 19890 GOSUB Inputs 19900 GOSUB X_scale 19910 GOSUB Bin
20570 FOR K=2 TO 9 20580 MOVE (10*Jigl)*K,Y 20590 LABEL K*(10*Jigl) 20600 NEXT K 20610 RETURN 20620 20630 Label_y: 20640 VIEWPORT 0,130,0,100 20650 CSIZE 3 20660 LORG 5 20670 X=-6*Jigl 20680 MOVE X, (l*Jig2) 20690 Label=l*Jig2 20700 LABEL Label 20710 FOR K=2 TO 9 20720 MOVE X, (l*Jig2)*K 20730 LABEL Label*K 20740 NEXT K 20750 RETURN 20760 20770 X scale: 20780 IF Resist (Sample_no+2)>1000 THEN GOTO 20820 20790 Mult=100 20800 Jigl=.l 20810 RETURN 20820 IF Resist(Sample_no+2)>10000 THEN GOTO 20860 20830 Mult=1000 20840 Jigl=.1 20850 RETURN 20860 IF Resist (Sample_no+2)>50000 THEN GOTO 20900 20870 Mult=1000 20880 Jigl=.5 20890 RETURN 20900 IF Resist (Sample_no+2)>100000 THEN GOTO 20950 20910 Mult=1000 20920 Jigl=l 20930 RETURN 20940 i 20950 Mult=1000 20960 Jigl=INT(ABS (Resist (Sample_no+2) ) /100000)+1 20970 RETURN 20980 Bin: I 20990 I 21000 Buckets=l00 21010 B_size=( (100*Mult) /Buckets) *Jigl 21020 21030 FOR K=l TO Sample_no 21040 Q=INT(ABS (Resist (K) *Data(K, 1) ) /B_size)+1 ! Bucket no of valu 21050 B_no(Q)=B_no(Q)+l ! Number in bucket 21060 NEXT K 21070 21080 Max_no=0 Max in any bucket 21090 FOR K=l TO Bucket's 21100 IF B_no(K) >Max_no THEN Max_no=B_no(K) 21110 NEXT K 21120 21130 Jig2=l+INT (Max_no/10) ! Determine Y scale 21140 21150 RETURN 21160 Plot: ! 21170 VIEWPORT 0,130,0,100 21180 21190 X=0 21200 Y=0 21210 MOVE X,Y
21220 FOR K=l TO Buckets
21230 DRAW X,B_no(K)
21240 X=X+B_size/Mult
21250 Y=Y+(B_no(K) *(B_size/Mult) )
21260 DRAW X,B_no(K)
21270 NEXT K
21280 Plots=Plots+l
21290 RETURN
21300 Print: !
21310 DUMP GRAPHICS
21320 GCLEAR
21330 RETURN
21340 End: SUBEND
21350 '********************************************
21360 SUB Check !
21370 i *******************************************
21380 ; 21390 COM /Bus/ @Meter,Xist_plot, Probes (1:4,1:2) ,Bus, Testnum(4) , Viewnum(4) Meterjpa,Lcr,Prt,Pit,Multi
21400 I 21410 DISP ! Clear Display line 21420 OUTPUT 1 USING "@" ! Clear ' CRT 21430 Bus_=716 ! Optional Bus address 21440 READ Testnum(*) ,Viewnum(*) ! Sets up the order in which measurements ar made & displayed
21450 DATA -1,-2,4,2,3,0,3,1,4,2
21460 PRINTER IS 1
21470 DISP "Checking the system components "
21480 DIM Message$[50] I STRING CONTAINING USER MESSAGE
21490 INTEGER Address HOLDS HPIB ADDRESS DURING BUS SCAN
21500 INTEGER Bstatus HPIB STATUS REG CONTENTS
21510!
21520 Xist_4140=0
21530 Xist_lcr=0
21540 Xist_prt=0
21550 Xist multi=0
21560!
21570! INITIALIZE DEVICE ADDRESSES
21580 Meter_ρa=716 ! default
21590 Lcr=717
21600 Prt=701
21610 Multi=723
21620 Bus=7
21630!
21640 CHECK FOR EQUIPMENT ON BUS AT ALL ADDRESSES AND PRINT DEVICE NAMES
21650!
21660! cancel any perverse LOCAL Bus
21670 IF BI (Bstatus,7) THEN must be system
21680 REMOTE Bus controller to
21690 END IF do this
21700
21710 FOR Address=Bus*100 TO Bus*100+30
21720 JUTPUT Address USING-"*" ! ADDRESS DEVICE TO LISTEN, Bus TALK
21730 WAIT .1 ! slow handshake ok 21740 STATUS Bus,7;Bstatus ! DID IT LISTEN? 21750 SEND Bus;DATA ! Unhang 37201A 21760 IF BIT(Bstatus,13) THEN 21770 ! DEVICE PRESENT (NDAC came True) 21780 MessageS="Device Unknown" 21790 IF Address=Prt THEN GOSUB System_printer 21800 IF Address=Lcr THEN GOSUB Meter_lcr 21810 IF Address=Meter_pa THEN GOSUB Meter_pa 21820 IF Address=Multi THEN GOSUB Multi 21830 END IF
21840 Nxt:NEXT Address 21850 21860 STATUS Bus,3;Bstatus 21870 IF NOT Xist_prt THEN Prt=l ! use 9826 CRT 21880 21890 Message$=" Pa METER NOT PRESENT OR NOT ADDRESSED" 21900 IF NOT Xist_4140 THEN Rsterminate 21910 OUTPUT 1 USING "/" 21920 21930 Message$=" PRINTER NOT PRESENT OR NOT ADDRESSED" 21940 IF NOT Xist_prt THEN Rsterminate 21950 OUTPUT 1 USING "/" 21960 21970 MessageS=" LCR METER NOT PRESENT OR NOT ADDRESSED" 21980 IF NOT Xist_lcr THEN Rsterminate 21990 OUTPUT 1 USING "/" 22000 22010 Message$=" MULTIPROGRAMMER NOT PRESENT OR NOT ADDRESSED" 22020 IF NOT Xist_multi THEN Rsterminate 22030 OUTPUT 1 USING "/" 22040 22050 SUBEXIT ! all well. 22060 22070 System_printer: ON TIMEOUT Bus,3 GOTO Timeout82 22080 Xist_prt=l 22090 RETURN 22100 22110 Multi: ON TIMEOUT Bus,3 GOTO Timeout83 22120 Xist_multi=l 22130 RETURN 22140 ] 22150 Meter_lcr:ON TIMEOUT Bus,3 GOTO Timeoutδl 22160 ASSIGN ΘMeter TO 717 22170 OUTPUT @Meter;"SR0" ! Clear 4274A interrupt mask (srq) 22180 CLEAR 717 22190 OFF TIMEOUT Bus 22200 Xist_lcr=l 22210 RETURN 22220 I 22230 Meter_pa:ON TIMEOUT Bus,3 GOTO TimeoutδO 22240 ASSIGN ΘMeter TO Meter_pa 22250 OUTPUT ΘMeter;"SR0" ! Clear 4140B interrupt mask (srq) 22260 CLEAR 716 22270 OFF TIMEOUT Bus 22280 Xist_4140=l 22290 I 22300 RETURN 22310 22320 Timeout83: ! ERROR TRAPS 22330 Message$=" MULTIPROGRAMMER NOT ADDRESSED" 22340 GOTO Rsterminate 22350 22360 Time*mt82: ! ERROR' RAPS 22370 Message$=" PRINTER NOT ADDRESSED" 22380 GOTO Rsterminate 22390 22400 22410 Ti eoutδl: ! ERROR TRAPS 22420 Message$=" 4274A NOT ADDRESSED" 22430 GOTO Rsterminate 22440 I 22450 Timeout80: ! ERROR TRAPS 22460 Message$=" 4140B NOT ADDRESSED" 22470 GOTO Rsterminate 22480
22490 Nodevices:! 22500 Message$=" NO DEVICES ON HP-IB SELECT CODE "&VALS (Bus) 22510 !
22520 Rsterminate: RESET INTERFACE 22530 CONTROL Bus,0;l 22540 Terminate:!
22550 OFF ERROR
22560 PRINT "PROGRAM TERMINATED."
22570 PRINT ""
22580 PRINT Messages
22590 DISP
22600 STOP!
22610!
22620 SUBEND !
22630! ************************* * *********************************************
22640 SUB File 1
22650 i ************************************************************ **********
22660 COM /Condns/ Sam le_no,Voltage_no, Voltage,Voltagel, Voltage2,Voltage3, Voltage4,Adapterl, emp_cor,Time,Hz,Test_temp,Bottoml,Capl,Dfl
22670 COM /Data/ Data(103,6),Z,W 22680 COM /Info/ Job_no$[20], SampleS[80J,Remarks?[80] , Operators[20] , TypeS[30] ,Test_date$[20],Fi ' le$[10]
22690 22700 GCLEAR 22710 22720 ! File 166 ^22730 MASS STORAGE IS ":INTERNAL" 22740 CREATE BDAT File$,25,256 22750 ASSIGN @Path_l TO FileS 22760 OUTPUT ΘPath_l;Data(*) 22770 OUTPUT @Path_l;Voltage_no, Sample_no,Voltagel, Voltage2,Voltage3, Volt ge4,Test_temp, emp_cor,Time,Hz,Capl,Dfl
22780 OUTPUT @Path_l;Job_noS,Sample$,Remarks$,Operators,Test_date$ 22790 ASSIGN @Path_l TO * 22800 I 22810 SUBEND ! 22820 t ************************************************************ ******** 22830 SUB File_option 22840 i ************************************************************ ******** 22850 COM /Info/ Job_no$ [20] , SampleS [80] , RemarksS [80] , Operator$ [20] , TypeS [30] , Test_date$ [20] , File$ [10]
22860 1 22870 DISP "Is a Disc File Required ?" 22880 ON KEY 5 LABEL " YES" GOTO 22930 22890 ON KEY 9 LABEL " NO" GOTO 23000 22900 X=0 22910 IF X=0 THEN GOTO 22910 22920 22930 File$="l" 22940 GOSUB Clear_menu 166 22950 DISP "Insert initialized disc and press 'CONTINUE' 22960 PAUSE 22970 DISP " " ' 22980 SUBEXIT 22990 I 23000 File$="0" 23010 GOSUB Clearjtienu 23020 SUBEXIT ^3030 23040 Clear_menu : ! 23050 OUTPUT 1 USING "β" 23060 DISP 23070 CONTROL 1,12;0 23080 FOR 1=0 TO 19 23090 ON KEY I LABEL " GOSUB Beep
56/1