09-10-2025 04:43 AM
Hi RTSLVU,
so you have created an xml file in which you have recreated all the SCPI command that are present in the VIs that Agilent has provided?
than you read those commands in your VI and send them to the device?
Is there a lsist of all those commands?
Thank you for the help
Best regards,
Zuc
09-10-2025 10:10 AM - edited 09-10-2025 10:26 AM
@Zuc_lab2 wrote:
Hi RTSLVU,
so you have created an xml file in which you have recreated all the SCPI command that are present in the VIs that Agilent has provided?
than you read those commands in your VI and send them to the device?
Is there a lsist of all those commands?
Thank you for the help
Best regards,
Zuc
No, my XML file holds all the settings for the VI not the SCPI commands to replace the VI.
For instance when you configure a channel as a thermocouple measurement you must set the thermocouple type.
The list of channels that are configured as thermocouple are concatenated as the program configures all the settings for all the channels.
Then the list of channels is sent to the proper VIs
I'm not sure what your program is intended to do but in my program the tests are predefined so all the instrument settings can be predefined. The end user simply loads the test script and associated configuration files, then starts the test. None of the instrument settings are changed by the end user while a test is running.
09-11-2025 08:38 AM
Hi RTSLVU,
what i'm doing is try to make an automatic tool to configure the 34980A channels by input of the operator (right now a excel file that can be changed from test to test but not during the test itself). It contains only the channel name and i need to configure the type of signal acquired by that channel. So since there are a lot of enum variables and each Vi to configure the channels has its own enum with particular values that the user has the possibility to manage, i was trying to create something easy to manage but a certain degree of freedom to be reused for other projects. As you can see from the tables the input are really different:
I hope to have clarified my goal.
anyway i'm curious to know how you have structured your XML file.
Thank you for shearing.
Best Regards,
Zuc
09-11-2025 11:55 AM - edited 09-11-2025 11:58 AM
My previous post here gives you a good idea how the XML file is structured.
Here is what the raw XML file looks like.
<?xml version="1.0" encoding="utf-8"?>
<Agilent>
<VISA>
<!--VISA can be actual VISA resource (COM1, GPIB::INSTR::addr) or Visa Alias-->
<Resource>GPIB0::7::INSTR</Resource>
</VISA>
<!--Actuator channels for DC power relays Configured in Test_Rack_Config file-->
<Temperatures>
<!--Enter channel number for Thermocouples-->
<!--Individual channels must be separated by comma "," example 101,105 would set channels 101 and 105-->
<!--Adjacent channels can be separated by colon ":" example 101:105 would set channels 101 through 105-->
<!--Channel groups can be separated by comma and colon example 101:105,110:117,120-->
<!--would set channels 101 through 105, channels 110 through 117 and channel 120 to thermocouples-->
<Thermocouples>201:212</Thermocouples>
<!--Thermal couple type B,E,J,K,N,R,S,T Default K type-->
<TC_Type>K</TC_Type>
</Temperatures>
<DC_Voltages>
<!--Enter channel number for DC voltage measurements-->
<!--Individual channels must be separated by comma "," example 101,105 would set channels 101 and 105-->
<!--Adjacent channels can be separated by colon ":" example 101:105 would set channels 101 through 105-->
<!--Channel groups can be separated by comma and colon example 101:105,110:117,120-->
<!--would set channels 101 through 105, channels 110 through 117 and channel 220 to the same range-->
<Channels />
<Range_Auto></Range_Auto>
<Range_100mV></Range_100mV>
<Range_1V></Range_1V>
<Range_10V></Range_10V>
<Range_100V></Range_100V>
<Range_300V></Range_300V>
</DC_Voltages>
<AC_Voltages>
<!--Enter channel number for AC voltage measurements-->
<!--Individual channels must be separated by comma "," example 101,105 would set channels 101 and 105-->
<!--Adjacent channels can be separated by colon ":" example 101:105 would set channels 101 through 105-->
<!--Channel groups can be separated by comma and colon example 101:105,110,117-->
<!--would set channels 101 through 105 and channels 110 and 117 to the same range-->
<Channels />
<Range_Auto></Range_Auto>
<Range_100mV></Range_100mV>
<Range_1V></Range_1V>
<Range_10V></Range_10V>
<Range_100V></Range_100V>
<Range_300V></Range_300V>
</AC_Voltages>
<DC_Current>
<!--Enter channel number for DC current measurements using resistive current shunt-->
<!--Individual channels and parameters must be separated by comma ","-->
<!--ALL SHUNTS MUST USE THE SAME DCV RANGE!-->
<Channels />
<Range_100mV></Range_100mV>
<Range_1V></Range_1V>
<!--Enter "calibrated" resistance value of shunt. If shunt is not "calibrated" enter 0-->
<Rshunt>0,0</Rshunt>
<!--Enter mV rating of shunt in VOLTS (50mV = .05)-->
<mV>.05,.05</mV>
<!--Enter Amp rating of shunt-->
<Amp>50,5</Amp>
<!--Enter serial number or calibration ID of shunt-->
<Serial.No>82052,11111</Serial.No>
</DC_Current>
<Advanced_Options>
<!--These options will be used on all AC and DC voltage measurements including current shunts-->
<!--The values chosen effect measurement accuracy and speed-->
<!--See manual for detailed explanation of advanced options-->
<!---->
<!---Integration- -->
<!--Valid entries NLPC, Aperture-->
<Integration_Time>NLPC</Integration_Time>
<!--When using Aperture Integration use "Aperture" to set integration time -->
<!--Valid settings are Manual, Minimum, Maximum. Default = Minimum-->
<Aperture>Manual</Aperture>
<!--Specify integration time directly in seconds valid range 400μs to 4s.-->
<Aperture_Value>.4</Aperture_Value>
<!--Specify number of powerline cycles for integration when using NLPC Integration_Time.-->
<!--Valid entries 0.02, 0.2, 1, 2, 10, 20, 100, 200 default = 1 PLC-->
<NLPC>1</NLPC>
<!---->
<!---Bandwidth- -->
<!--Low Frequency Filter Bandwidth The instrument uses three different AC filters which -->
<!--enable you to either optimize low frequency accuracy or achieve faster AC settling times.-->
<!--Valid settings 3Hz(Slow), 20Hz(Medium), 200Hz(fast), Minimum, Maximum Default = 20Hz-->
<Bandwidth>20Hz</Bandwidth>
<!---->
<!---Input Impedance- -->
<!--To reduce the effects of measurement loading errors on 100 mVDC, 1 VDC, and 10 VDC ranges-->
<!--Valid settings 10G, Auto, Default = Auto (10Meg ohm)-->
<Input_Impedance>10G</Input_Impedance>
</Advanced_Options>
</Agilent>
As you can see I have all the possible settings for the different measurement plus the advanced options we used in our tests. But not every possible measurement the 34901A Mux module can take. TBH: %99.9999 percent of the time our data loggers are used for temperature measurements because our test systems have a four channel power analyzer for AC and DC voltage measurements. Our DC current measurements are taken using an external shunt as DC voltages. I tried to document all the setting in the file so the engineers can easily update the configuration for their tests.
We use Excel to write the test scripts using an Excel template.
I also have written a user manual that explains in detail how to create test scripts, update the configuration files, load and run scripts, etc.