HP 3457a RMATH HIRES - Page 1
Forum section: electronics / testgear

author: cncjerry
author_rank: Unknown
timestamp: June 05, 2015, 08:16:06 pm
content: Hello,In order to get the final digits of resolution from an HP3457A, you need to query the HIRES register and add it to the prior DCV (in my case) reading. The problem I am having is that I don't see it change unless I reset the meter. So my low-res reading of for instance 9.99972 changes to like 9.99971, 9.99973 with HIRES coming back as -3.0000000E-6 for all cases. So my final value of DCV + HIRES works out to 9.999717, but with the last digit flipping up/down 1 or 2, it seems like the HIRES value(s) should be changing as well.Ideas?Thanks,Jerry

author: onlooker
author_rank: Frequent Contributor
timestamp: June 05, 2015, 11:52:12 pm
content: Did you set NPLC to 10 or 100?According to the manual, HIRES is only available/valid with NPLC=10 or 100 (for all types of measurements, except for Ohms also requires the range not over 30kOhm).For reference, the list below is from the log of my 3457a for the DC measurement with NPLC=100. The 2nd column is the HIRES value (converted from string to double), but only the leading digit should be meaningful.> 5.0013000E+00 + 2.3750002E-06> 5.0012900E+00 + 2.5000000E-06> 5.0013000E+00 + 3.7999999E-06> 5.0013000E+00 + 2.5000000E-06> 5.0013000E+00 + 1.4875000E-06> 5.0013000E+00 + -700.00000E-09> 5.0013000E+00 + -3.5000000E-06> 5.0013100E+00 + -4.0000000E-06> 5.0013000E+00 + -1.4125000E-06

author: cncjerry
author_rank: Unknown
timestamp: June 06, 2015, 02:00:47 am
content: Yes, tried it with NPLC 10 (default) and NPLC 100.I ran the same sort of list in the 30v range and 3v range below. The HIRES register returned the same value in both cases and ranges. The value on the left is read after setting a TRIG SYN . I then read the HIRES register by sending RMATH HIRES followed by a read.I wonder why you are getting other than just the high-order digit. As I mentioned, I can hit reset and sometimes the HIRES will change but I never see anything other than the high order digit.Can you post your initialization code?9.99981 -3.0000000E-069.99981 -3.0000000E-069.99983 -3.0000000E-069.99979 -3.0000000E-069.99978 -3.0000000E-069.99978 -3.0000000E-069.99981 -3.0000000E-069.99986 -3.0000000E-069.99986 -3.0000000E-069.99985 -3.0000000E-06then in the 3V range as below0.999623 -3.0000000E-060.999622 -3.0000000E-060.999622 -3.0000000E-060.999621 -3.0000000E-060.999624 -3.0000000E-060.999623 -3.0000000E-060.999622 -3.0000000E-060.999625 -3.0000000E-060.999623 -3.0000000E-060.999624 -3.0000000E-060.999622 -3.0000000E-060.999624 -3.0000000E-069.999860 -3.0000000E-069.999800 -3.0000000E-069.999900 -3.0000000E-069.999800 -3.0000000E-06

author: cncjerry
author_rank: Unknown
timestamp: June 06, 2015, 03:50:50 am
content: Tried it again tonight without changes and it seems to be working. I think it might have something to do with the manual range selections. In this case I am in the 3v range where I was before.0.999596 400.00000E-09 0.99959640.999600 400.00000E-09 0.99960040.999598 0.0000000E+00 0.99959800.999598 -200.00000E-09 0.99959780.999595 -200.00000E-09 0.99959480.999593 300.00000E-09 0.99959330.999594 -300.00000E-09 0.99959370.999594 200.00000E-09 0.99959420.999594 -100.00000E-09 0.99959390.999596 -300.00000E-09 0.99959570.999598 -100.00000E-09 0.9995979

author: onlooker
author_rank: Frequent Contributor
timestamp: June 06, 2015, 04:18:07 pm
content: Yes, for NPLC=10, I got similar results that has only one significant digit in HIRES. But, for NPLC=100, I got more than one significant/non-zero digits (typically 2 or 3, but can be more). It could be an average from some single digit samples.

author: cncjerry
author_rank: Unknown
timestamp: June 06, 2015, 09:09:33 pm
content: My application, I code in VB.NET, for some reason times out when I set NPLC to 100. I tried to up my settling time.I am writing an application to manage and calibrate my Keithley 213 which is a 0 to +- 10V reference source. When warmed up it's pretty stable out to xx.xxxxx.I am getting good results now with NPLC set to 10. I am going to spend more time on the NPLC 100 problem.Thanks for looking.

author: onlooker
author_rank: Frequent Contributor
timestamp: June 06, 2015, 10:19:22 pm
content: I use C++ with QT. My initialization sequence is basically"PRESET;TRIG SYN;OFORMAT 1;END ALWAYS;NDIG 6;NRDGS 1;"Some settings above are the same as defualt; I have them there so I can test different values.For reading with NPLC=100, I did a few things (that may or may not be particular to the QT package or the GPIB controller I use).1). Setting the timeout long enough. I used 6000ms.2). Set the reading length long enough to cover the measurement string (14bytes), the few bytes for the string length and the 2 termination chars and a little longer for a few '\0' fillers. My controller does things this way. I used 24.3). The reading is done implied by just reading the 3457a buffer w/o any pre-calling the TRIG command.4). The reading should end only after reading in the the string length number and the 2 termination chars.In normal case, the reading should be finished long before the 6s timeout setting. That is, timeout is there really for error handling.

author: cncjerry
author_rank: Unknown
timestamp: June 07, 2015, 01:47:54 am
content: I'll have to play with the timeout. I have a variable 'settling' that I can vary from the UI. I haven't tried 6000. Also it looks like we both found 'end always' as that caused a lot of screwing around until I found it.Thanks again.

author: cncjerry
author_rank: Unknown
timestamp: June 08, 2015, 02:17:43 am
content: Onlooker, well, there is a distinction between write, delay (in software), read from the 3457a. I could't figure out how to set the timeout value on the IO manager. What I had been doing is writing, sleeping within the app, then reading. That doesn't work when NPLC is set to 100. I went back and looked at the IO manager and found the timeout parameter setting it to 6000 milliseconds as you had and I no longer get the timeout errors and NPLC 100 is now consistent.I am getting the same results on the HIRES register as you had. I wonder if the extra insignificant digits mean anything. This is a listing for NPLC 100; DCV 1, .0001:0.9995680 + -3.0000E-08 = 0.99956800.9995690 + 3.3000E-07 = 0.99956930.9995680 + -1.4125E-07 = 0.99956790.9995680 + -2.2250E-07 = 0.99956780.9995680 + -2.3500E-07 = 0.99956780.9995700 + -4.0000E-07 = 0.99956960.9995690 + -2.8500E-07 = 0.99956870.9995660 + 1.1750E-07 = 0.9995661I can clean it up a little if I use I shielded cable. I also don't have the ground wires attached.