-
Notifications
You must be signed in to change notification settings - Fork 0
/
TestExecutive.config.xml
173 lines (161 loc) · 11.4 KB
/
TestExecutive.config.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<?xml version="1.0" encoding="utf-8" ?>
<!--
This TestExecutive.GlobalConfigurationFile file allows configuring TestExecutive settings easily:
SCPI VISA instruments:
- For calibration or replacement, swap identical SCPI VISA Instruments with others, then update Addresses.
- For additions/deletions, add/remove SCPI_VISA_Instruments. Update TestExecutive if needed.
NOTE: Each TestExecutor must utilize sealed class 'SVIA' in file TestExecutor.cs to map generic SCPI VISA
Instrument IDs to, optimally, more meaningful domain specific aliases:
internal static class SVIA {
internal static readonly Alias P2V5 = new Alias("PS1"); // Single output Power Supply 1
internal static readonly Alias P3V3 = new Alias("PS2"); // Single output Power Supply 2
internal static readonly Alias P5V = new Alias("PS3"); // Single output Power Supply 3
internal static readonly Alias P12V_N12V = new Alias("PS4ε5"); // Dual-output Power Supplies 4 & 5.
internal static readonly Alias VOUT = new Alias("EL1"); // Electrical Load 1.
internal static readonly Alias MM = new Alias("MM1"); // Multi-Meter 1.
internal static readonly Alias CLK = new Alias("WG1"); // WaveGenerator 1.
}
- Include only required/utilized SCPI VISA Instruments:
- That is, if this TestExecutive.GlobalConfigurationFile contains elements for 10 power supplies, but a TestExecutor program
only requires & utilizes 2, simply don't alias the unused 8 in class 'SVIA'.
- This documents the minimum necessary SCPI VISA Instrument configuration for the TestExecutor's program.
- Allows a TestExecutor program to be most easily ported to different Test Systems having different TestExecutive.GlobalConfigurationFile configurations.
- If Test System #1 with it's specific SCPI VISA Instruments dies suddenly, may need to run its TestExecutor programs on Test System #2
with different SCPI VISA Instruments.
- If all TestExecutor.cs files list only their necessary SCPI VISA Instruments, quite easy to determine which are
compatible subsets of the Test Systems' TestExecutive.GlobalConfigurationFile configurations.
- This approach is similar to the Keysight i3070's Board config files:
- i3070 Board config files specify only the subset of i3070 cards used by their test programs.
- This makes porting a Keysight i3070 In-Circuit Test program to a differently configured i3070 as easy as possible, though not necessarily easy.
ID: - Required element.
- Unique Identifier; no 2 can be identical, as ID is unique key in a Dictionary object.
- Recommend following naming conventions:
- CT1, CT2, CT3ε4... Single-input Counter Timers 1 & 2 and Dual-input 3ε4.
- MM1, MM2, MM3... Single-input MultiMeters 1, 2 & 3.
- OS1, OS2, OS3ε4... Single-input Oscilloscopes 1 & 2 and Dual-input 3ε4.
- LCR1, LCR2, LCR3... Single-input LCR Meters 1, 2 & 3.
- EL1, EL2, EL3ε4... Single-channel Electronic Loads 1 & 2 and Dual-channel 3ε4.
- PS1, PS2, PS4ε5... Single-output Power Supplies 1 & 2 and Dual-output 3ε4.
- WG1, WG2, WG3ε4... Single-output Waveform Generators 1 & 2 and Dual-output 3ε4.
- MF1, MF2, MF3... MainFrames 1, 2 & 3.
MainFrames can contain multiple dissimilar and/or similar instruments.
- Keysight's HP34970A accomodates multiple heterogenous modules; switching, multi-function (digital IO, totalizer & analog output) & multiplexing.
Or it can be configured with multiple homogenous modules; all switching for example.
- Chroma's 6314 Electronic Load accomodates multiple homogenous load modules.
- SM1, SM2, SM3... Switching Modules 1, 2 & 3.
Description: - Required element.
- Concise description of SCPI VISA Instrument.
- Recommend convention of Manufacturer, Model, Input/Output quantity if applicable, and Instrument type.
- Keysight E36103B Single-output Power Supply
- Keysight E36234A Dual-output Power Supply
- Keysight 34461A Multi-Meter
Address: -Required element.
- Address elements must also all be unique, no duplicates.
- They must also be valid VISA instrument addresses.
- VISA instrument addresses are easily determined using Keysight's Connection Expert app
- https://www.keysight.com/us/en/assets/7018-03222/data-sheets/5990-9362.pdf.
- Example VISA address for USB instrument: USB0::0x2A8D::0x1602::MY61001983::0::INSTR.
NOTE: VISA addresses (AKA VISA Resource Names) are explained at:
- https://www.ni.com/docs/en-US/bundle/labview/page/lvinstio/visa_resource_name_generic.html.
- https://www.ivifoundation.org/downloads/Architecture%20Specifications/vpp43_2022-05-19.pdf.
-->
<Configuration>
<BarCodeScannerID>\\?\HID#VID_0C2E&PID_0A07&MI_00#7&1f27e379&0&0000#{c243ffbd-3afc-45e9-b3d3-2ba18bc7ebc5}\posbarcodescanner</BarCodeScannerID> <!-- Honeywell Voyager USB 1200g -->
<!-- BarCodeScannerID is the identifier used to find & claim the Barcode Scanner used in class SerialNumberDialog.
When a TestExecutor's App.config LOGGER_SerialNumberDialogEnabled = true:
- Class SerialNumberDialog is the Barcode Scanning method for prompting test operators for UUT Serial Numbers.
- SerialNumberDialog exclusively enforces Serial Number entry via Barcode Scanning of ABT's official Code39 encoded Serial Number.
- This enforces correct Barcode Scanning of ABT Serial Numbers, unlike hand-typing them, with it's substantially higher error rates..
When a TestExecutor's App.config LOGGER_SerialNumberDialogEnabled = false:
- An Interaction.InputBox prompts test operator to enter ABT Serial Numbers.
- This permits both Barcode Scanning *and* manual keyboard entry of Serial Numbers (hand typing), with its concommitant high rate of typographic errors.
NOTE: Barcode Scanner must be a corded USB scanner, and must also be explicitly supported by Microsoft's Windows.Devices.PointOfService namespace.
- List of supported scanners at https://learn.microsoft.com/en-us/windows/uwp/devices-sensors/pos-device-support.
NOTE: Barcode Scanner must be programmed into USB HID mode to work correctly with TestExecutive's SerialNumberDialog class to read ABT Serial Numbers.
- For a Voyager 1200g, scan PAP131 label from "Honeywell Voyager 1200G User's Guide ReadMe.pdf" to program into USB HID mode.
- Both "ReadMe" & "User's Guides" documents reside in Logging folder for convenience.
NOTE: Barcode Scanner must also be programmed to read the Code39 Barcode Symbology of ABT's Serial Numbers.
-->
<SerialNumberRegExDefault>^01BB2-[0-9]{5}$</SerialNumberRegExDefault>
<!-- SerialNumberRegExDefault is the default global Regular Expression an ABT Serial Number is validated against in TestExecutive.
NOTE: SerialNumberRegExDefault can be locally overridden by a TestExecutor App.config's UUT_SerialNumberRegExCustom key/value pair.
- As Customers sometimes require Serial Number formats that differ from ABT's (or formats that differ even from one Customer UUT to another)
SerialNumberRegExDefault is customizable to any/every UUT tested.
- When not overridden by an App.config's UUT_SerialNumberRegExCustom, SerialNumberRegExDefault is applied instead.
NOTE: ABT's official Serial Number format is "01BB2-#####", where each "#" is an is an integer in the set {0..9}.
- This allows for only 100,000 unique Serial Numbers overall, but those 100,000 are specifically associated to their UUT.
- Thus each UUT can have only 100,000 unique Serial Numbers.
- Obviously, if ABT builds more than 100,000 of any specific UUT, they're in trouble.
NOTE: Regular Expression ^01BB2-[0-9]{5}$ enforces Serial Numbers that match ABT's Serial Number format of "01BB2-#####".
- 01BB2-01234 & 01BB2-56789 are thus valid ABT Serial Numbers.
- 01234 is invalid, as it lacks the "01BB2-" prefix.
- 01BB2-1234 is invalid, as it lacks 5 digits after the "01BB2-" prefix.
- 01BB2-O1234 is invalid, as "O1234" ≠ "01234" as "O" ≠ "0".
-->
<Apps>
<Keysight>
<BenchVue>C:\Program Files (x86)\Keysight\BenchVue\Platform\BenchVue\Keysight BenchVue.exe</BenchVue>
<CommandExpert>C:\Program Files (x86)\Keysight\Command Expert\CommandExpert.exe</CommandExpert>
<ConnectionExpert>C:\Program Files\Keysight\IO Libraries Suite\ConnectionExpert.exe</ConnectionExpert>
</Keysight>
<MeasurementComputing>
<InstaCal>C:\Program Files (x86)\Measurement Computing\DAQ\inscal32.exe</InstaCal>
</MeasurementComputing>
<Microchip>
<MPLAB_IPE>C:\Program Files\Microchip\MPLABX\v6.15\mplab_platform\bin\mplab_ipe64.exe</MPLAB_IPE>
<MPLAB_X_IDE>C:\Program Files\Microchip\MPLABX\v6.15\mplab_platform\bin\mplab_ide64.exe</MPLAB_X_IDE>
</Microchip>
<Microsoft>
<SQLServerManagementStudio></SQLServerManagementStudio>
<VisualStudio>C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\devenv.exe</VisualStudio>
<VisualStudioCode>C:\Program Files\Microsoft VS Code\Code.exe</VisualStudioCode>
<XMLNotepad>C:\Program Files (x86)\LovettSoftware\XmlNotepad\XmlNotepad.exe</XMLNotepad>
</Microsoft>
<TexasInstruments>
<SMBus_I2C_SAA_Tool>C:\Program Files (x86)\Texas Instruments\Fusion Digital Power Designer\bin\Fusion Tool Launcher.exe</SMBus_I2C_SAA_Tool>
</TexasInstruments>
</Apps>
<Folders>
<BarcodeScanner>P:\Test\Engineers\Equipment Manuals\TestExecutive\Honeywell Voyager 1200g</BarcodeScanner> <!-- Honeywell Voyager USB 1200g corded Barcode Scanner -->
<Instruments>P:\Test\Engineers\Equipment Manuals\TestExecutive\Keysight</Instruments> <!-- Keysight SCPI VISA -->
<TestExecutors>C:\Program Files\ABT</TestExecutors> <!-- TestExecutor executables. -->
<Relays>P:\Test\Engineers\Equipment Manuals\TestExecutive\Measurement Computing</Relays> <!-- MCC USB-ERB24, ULI & InstaCal -->
</Folders>
<SCPI_VISA_Instruments>
<SVI>
<ID>PS1</ID>
<Description>Keysight E36103B Single-output Power Supply</Description>
<Address>USB0::0x2A8D::0x1602::MY61001983::0::INSTR</Address>
</SVI>
<SVI>
<ID>PS2</ID>
<Description>Keysight E36103B Single-output Power Supply</Description>
<Address>USB0::0x2A8D::0x1602::MY61001958::0::INSTR</Address>
</SVI>
<SVI>
<ID>PS3</ID>
<Description>Keysight E36105B Single-output Power Supply</Description>
<Address>USB0::0x2A8D::0x1802::MY61001696::0::INSTR</Address>
</SVI>
<SVI>
<ID>PS4ε5</ID>
<Description>Keysight E36234A Dual-output Power Supply</Description>
<Address>USB0::0x2A8D::0x3402::MY61002671::0::INSTR</Address>
</SVI>
<SVI>
<ID>EL1</ID>
<Description>Keysight EL34143A Single-channel Electronic Load</Description>
<Address>USB0::0x2A8D::0x3802::MY61001295::0::INSTR</Address>
</SVI>
<SVI>
<ID>WG1</ID>
<Description>Keysight 33509B Single-output Waveform Generator</Description>
<Address>USB0::0x0957::0x2507::MY59003604::0::INSTR</Address>
</SVI>
<SVI>
<ID>MM1</ID>
<Description>Keysight 34461A Multi-Meter</Description>
<Address>USB0::0x2A8D::0x1301::MY60049978::0::INSTR</Address>
</SVI>
</SCPI_VISA_Instruments>
</Configuration>