Logging from meters

No. Only my newer meters I get a invalid character due to the ” in the sense line (The 34401 may be different).

Yes, that’s what I noticed. I get no errors with any of the other commands such as :sense:function:on “volt:dc”, only the bracketed delay command triggers the error beep.

I just checked in the 44401A manual and did not find the function:on command anywhere. It looks like you have to use function “range”, not function:on “range” and can optionally stick a “sense:” before the function

The sense:function:on “volt:dc” or “volt:ac” still works fine without error for changing the DMM mode. It doesn’t matter if I leave out the :on part at the end or include it. Conf:volt:ac or conf:volt:dc also work.

So the problem is not the SCPI command for changing mode. It’s the delay. And if I omit the delay command (in brackets), then the meter reports the –410,“Query INTERRUPTED” error.

Would it be possible to make the program realize the mode used if I switch the mode manually. Now if I type in the sense:function “volt:ac”, the program doesn’t realize that it should be measuring ac even if I type in sense:function? to query it.

I can see that I may send a empty line to the meter in some circumstances, I will fix that.

The meter uses the #askMode command to check what mode the meter is in. There is some code to trap manual mode changes, but it do not work at the current time (This will, of course, also be fixed).

From v0.15 you can add this to detect range change:

#mayModifyMode sens
#mayModifyMode func

Anything that starts with the above will force a reinitialization of column names. This is done with the #askMode command.

It do not send empty lines anymore.

Beautiful! Mode switching from the popup menu with delays works fine now.

One more suggestion: I’d like the logging to start immediately. If I choose the 10sec option, it takes 10 seconds for the first entry to be written. Also a numeric input for the logging sample rate would be nice (I’d like 0.5s , 5 sec and 30 sec at least).

Bug: at least for me the slope for /h doesn’t work.

If you get everything working, please give me a copy to include.
The #author tag works, you can try it and check “Configuration, About”

It is already support, instead of using the button write a command:
#log interval

There is a couple of command and the help window will show them if you type a # character.
The command window supports 3 types of input:

  1. SCPI for the devices
  2. Regular commands, they all start with #. I will be adding many more later on.
  3. Expressions/statements, they start with = and are very similar to the calculator window, except you are guaranteed to have all the columns names for devices as variables with an updated value.

Missing “break” :person_facepalming: , it will be fixed in next version.

Next version is up (V0.16), changes are:
Logging will add a entry at 0 seconds
On “Scales for chart” page the auto checkbox will change visible settings and they can show many more decimals now.
In the table page it is possible to right click and adjust decimals for a column, this will also affect the range page.
Missing data 5 times in a row from a socket device will close the connection, not hang the program.
Scalable fonts, this still has a few issues, slider on configuration page.
The /h slope option now work.

Small bug in the newest version.

Opening the popup window to check the values in the chart comes up like this:

Yep, I found out, you can pull it larger until I upload the next version. There is a couple more issue with the scaleable fonts, but most of them will soon be fixed. What I will not fix completely is when stuff gets to large or small for the form and that the popup windows do not scale properly when open (Reopening them will scale them correctly).

This is also the first version for me that has completely hanged during logging. Memory use was over 3GB after just an hour or so at 10s sample rate.

That do not sound good. I am not aware I did anything that could lead to that problem, but I will search for it.
What screen where you watching while logging?

The chart page and I had the window minimized. It hanged when I opened it back up and switched between it and the scales for chart page. Typical memory use is 153MB after an hour of logging.

I can see a problem here, it goes to 100% CPU usage, now the question is to find out why. It may be related to Java memory handling: if a thread somewhere allocates and frees memory all the time, a lot of CPU power is needed for garbage collection

V0.17 is uploaded, it hopefully fixes the problems. I found a deadlock in the code and I reinitalized most of the user interface for each sample, this is fixed now. Logging with the 3 virtual generators at 0.01s sample interval and the chart page visible shows a total CPU usage of 3% on my machine (Nearly everything else is minimized)

Some troubles with AC voltage measurements, including period and frequency. The software switches to the mode ok and the current values tab reflects the mode change, but the data doesn’t update on the current values table rather the data is ouput to the commands log window.

Outputting a 50Hz triangle wave. Log window shows that the program does read the values from the meter.

First I manually read the value from the meter and then switch to the current values tab, which isn’t updating.

First is period (20ms), then frequency (50Hz), then AC voltage (0.29V), which are correctly shown here in the log.

But all the realtime readings are zero.

When it gets extra measurements they will be put into the log window. It may be due to a timeout on reading the data or because it receives two lines of data.
You can change the timeout with (Default is 1 second):
#readingDelay 5
#modeChangeDelay 10

That seems to have helped. Every mode looks to be working now!

Here’s a link to my current config file for the 34401A: HKJ TestController HP/Agilent 34401A configuration file - Pastebin.com

I could possibly shorten the delays some, but it’s not too slow as it is.

Would it be difficult to add a popup button for zeroing out the meter? It needs the following commands:
calc:func null
calc:state on

Sometimes I have to start the program a couple of times (2-4) before the meter is initialized at startup.

I’m liking the math function too. Easy to filter out some noise from a current probe.