Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

Taking Consecutive Measurements on Agilient 34970A

Solved!
Go to solution

I am working on a project where I am using an Agilent 34970A to read DC Voltage from 100 channels and read one K-type thermocouple, using the three 34908A single ended Mux boards.

I am having no issues with the thermocouple measurement as the program just needs to call 1 measurement every 5 minutes.

 

The Issue that I am having is that the DC Voltage measurements are used to measure a bias voltage during power on of a sensor. Each time I take a measurement, it cuts the channel on and then off again. When the sensor loses power the bias voltage does not stabilize.

 

Essentially, I need to be able to turn the channel on and take multiple readings until I am able to read 10 readings that are "stable" (most likely will be determined by an average rate of change).

For the test I am not concerned about the speed of the readings as the majority of my test time is taken by waiting for the sensor to stabilize.

The closest I was able to get was to take multiple readings as quickly as possible so that the voltage loss of switching was minimized, but the results are not accurate enough.

 

Below is a snippet of the code I am using. I am not getting any errors running this code, and I am able to read from any channel any number of times, the only issue is that the relays on the 34908A switch off between each measurement.

Read Channel.png

0 Kudos
Message 1 of 7
(5,409 Views)

On the Agilent 34970A Data Acquisition Switch, all voltage measurements are made with a break before make action while the current measurements are made using a make before break action.  That said, could you place a 100Kohm (for the default 10M meter impedance) or 10Mohm or 100Mohm (for the >=10G meter impedance) across the meter inputs?  That way when the meter connects and disconnects it is less than a 1% change seen by the circuit and should help with the stability of the bias circuit.  You can reduce the resistance values if you need an even smaller change.

 

When you are watching a single channel, is the bias voltage stable with the default impedance?  If so, then place a 10Mohm resistor across each circuit and make sure to set the meter into the high impedance state for each channel being measured.

CONF:VOLT:DC (@101:120,201:215)
INP:IMP:AUTO ON,(@101:120,201:215)
TRIG:SOUR IMM
TRIG:COUN 1
READ?
Help the Community (and future reviewers) by marking posts as follows:
If it helped - KUDOS
If it answers the issue - SOLUTION
0 Kudos
Message 2 of 7
(5,350 Views)

When I use the Read button directly on the front panel of the 34970A, it closes the relay and keeps it closed until I move to the next channel, so each time I hit the read button, it doesn't reset my sensor. That is essentially the behavior I am trying to mimic.

 

If I use the resistor, I would need to do so for each channel, which is going to make the setup much more complicated. I was hoping that there would be a way to mimic the front panel behavior.

0 Kudos
Message 3 of 7
(5,318 Views)
Solution
Accepted by topic author MTHPCB

I accidentally stumbled onto the answer to this. Instead of using the EZ Voltage, I am now using the Monitor function. This closes the a single channel at a time and allows me to continuously sample it without it cutting off. I can then store the values in an array and output the data as expected.

 

I'm guessing this isn't a normal usage of the 34970A, but it seems to be a functional alternative for what I need.

0 Kudos
Message 4 of 7
(5,308 Views)

I offered you an alternative that would make the impact of the meter on your circuit negligible and require almost no settling time sampling across all channels. 

 

While I understand that you are using the

ROUT:MON (@103)
ROUT:MON:STATE <ON/OFF>

commands to look at a single channel at a time.  The preferred manner would have been to configure a setting that would also view a single connection while storing the values into memory for later analysis. 

CONF:VOLT:DC (@103)
READ?

By configuring the meter in this manner it will only close that channel relay.  It would supply you with a single point measurement when requested by the READ? query.  Additionally, you would also be able to use these following commands as well to analyze the instrument response over time.

TRIG:SOUR TIMER;TRIG:TIMER 0.01; TRIG:COUN 1000; INIT; FETCH?
CALC:AVER:<option> (@103)?
Help the Community (and future reviewers) by marking posts as follows:
If it helped - KUDOS
If it answers the issue - SOLUTION
0 Kudos
Message 5 of 7
(5,289 Views)

Hello,

I'm facing the same issue while trying to continuously monitor a temperature. Could you please provide a .vi as an example? It would help me a lot.

 

Thanks!

0 Kudos
Message 6 of 7
(5,096 Views)

It isn't the cleanest code in the world, but it has been working pretty well for me. I only call this as a subvi, so the front panel isn't especially conducive to running standalone, but I've attached the code.

0 Kudos
Message 7 of 7
(5,092 Views)