Author Topic: Program that can log from many multimeters.  (Read 486857 times)

0 Members and 3 Guests are viewing this topic.

Offline masterx81

  • Frequent Contributor
  • **
  • Posts: 481
  • Country: it
Re: Program that can log from many multimeters.
« Reply #800 on: June 16, 2020, 08:41:16 am »
Yes, correct, Before I've uncompressed the zip, when i've seen the missing NI card i've overwrited the jar.
This evening i'll check on the dos window...
 

Offline masterx81

  • Frequent Contributor
  • **
  • Posts: 481
  • Country: it
Re: Program that can log from many multimeters.
« Reply #801 on: June 16, 2020, 09:41:54 pm »
Got the problem. with TMO set at 1.0 i can read values at max 1hz rate. if i do it faster, it give the problems. I've tried to send manually a tmo .1,.1 but not seem better.
Code: [Select]
Starting
;; COM9: Set params: 19200
;; Start thread for: National Instruments GPIB-232CT A:1 - Solartron 7150Plus
;; COM9: Tx: <.> 0A
;; National Instruments GPIB-232CT A:1: Tx <init>
;; National Instruments GPIB-232CT A:1: Tx <tx T0>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <T0.> 54 30 0A
;; Found Solartron 7150Plus on National Instruments GPIB-232CT A:1
;; 50PLUS: Tx <mode?>
;; 50PLUS: Tx <txrx? M?>
Flush
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <M?.> 4D 3F 0A
;; COM9: Tx: <TMO 1.0.> 54 4D 4F 20 31 2E 30 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <M0> 4D 30
Raw: 4D 30
;; 50PLUS: Rx <M0>
txrx? m?
;; 50PLUS: Tx <txrx? m?>
Flush
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <m?.> 6D 3F 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <M0> 4D 30
Raw: 4D 30
;; 50PLUS: Rx <M0>
;; M0

txrx? m?
;; 50PLUS: Tx <txrx? m?>
Flush
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <m?.> 6D 3F 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <M0> 4D 30
Raw: 4D 30
;; 50PLUS: Rx <M0>
;; M0
txrx? m?
;; 50PLUS: Tx <txrx? m?>
Flush
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <m?.> 6D 3F 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <4> 34
Raw: 34
;; 50PLUS: Rx <4>
;; 4
txrx? m?
;; 50PLUS: Tx <txrx? m?>
Flush
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <m?.> 6D 3F 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <4> 34
Raw: 34
;; 50PLUS: Rx <4>
;; 4
txrx? m?
;; 50PLUS: Tx <txrx? m?>
Flush
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <m?.> 6D 3F 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <M0> 4D 30
Raw: 4D 30
;; 50PLUS: Rx <M0>
;; M0

I've seen the end gpib command, that must flush the buffer immediately. Can't be used to speed up things?
« Last Edit: June 16, 2020, 09:46:20 pm by masterx81 »
 
The following users thanked this post: Marco1971

Offline MikeLud

  • Regular Contributor
  • *
  • Posts: 218
  • Country: us
Re: Program that can log from many multimeters.
« Reply #802 on: June 16, 2020, 11:03:20 pm »
Below is a Bode Plot using Test Controller and a comparison with Siglent SDS1204X-E doing the same Bode Plot of a 20k low pass filter. Also attached is the script used and a device file for the Siglent SDS1204X-E, the device file is very rough just enough to do the Bode Plot.



* BP.txt (0.45 kB - downloaded 62 times.)
* SiglentSDS1204X-E.txt (1 kB - downloaded 68 times.)
 
The following users thanked this post: tautech, masterx81, tubularnut, Bad_Driver

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #803 on: June 17, 2020, 09:32:09 am »
Got the problem. with TMO set at 1.0 i can read values at max 1hz rate. if i do it faster, it give the problems. I've tried to send manually a tmo .1,.1 but not seem better.
I've seen the end gpib command, that must flush the buffer immediately. Can't be used to speed up things?

I cannot flush the buffer in the NI interface, but I have changed some other stuff:

Minimum timeout can now be specified down to 0.7sec

In the definition it is posssble to use "#gpibReadEol characterDecimalCode" to define a EOL character. This will usually be something like:
#gpibReadEol 10
Command is translated to "EOS R,10"

It is also possible to use:
#gpibReadEol eoi
This is the default setting for NI, but I do not know if it looks for the EOI signal (Command is translated to: "EOS D").


I hope this will fix the waiting for timeout.
Version is 0.89

 
The following users thanked this post: masterx81, Marco1971

Offline masterx81

  • Frequent Contributor
  • **
  • Posts: 481
  • Country: it
Re: Program that can log from many multimeters.
« Reply #804 on: June 17, 2020, 09:51:06 am »
I've read a bit better the manual, and seem that the eos can solve the "wait" problem after the answer (before sending the filling 0x00, after the timeout).
I've not fully understood the eoi part, as it must do what we want (the talker sends the signal that the transmission is ended), but in any case the eos must be enough.

Really thanks, this evening i'll try it!
 

Offline masterx81

  • Frequent Contributor
  • **
  • Posts: 481
  • Country: it
Re: Program that can log from many multimeters.
« Reply #805 on: June 17, 2020, 09:29:45 pm »
Uhm, in the definition file i've specified
#gpibReadEol 10
but i get an
EOS R,49
Code: [Select]
Starting
;; COM9: Set params: 19200
;; Start thread for: National Instruments GPIB-232CT A:1 - Solartron 7150Plus
;; COM9: Tx: <.> 0A
;; National Instruments GPIB-232CT A:1: Tx <init>
;; National Instruments GPIB-232CT A:1: Tx <tx T0>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <T0.> 54 30 0A
;; Found Solartron 7150Plus on National Instruments GPIB-232CT A:1
;; 50PLUS: Tx <mode?>
;; 50PLUS: Tx <txrx? M?>
Flush
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <M?.> 4D 3F 0A
;; COM9: Tx: <TMO 0.95.> 54 4D 4F 20 30 2E 39 35 0A
;; COM9: Tx: <EOS R,49.> 45 4F 53 20 52 2C 34 39 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <M0> 4D 30
Raw: 4D 30
;; 50PLUS: Rx <M0>

Tried also with #gpibReadEol 13, same thing.

Tested also the #gpibReadEol eoi, but seem not interpreted as i not see the command to the GPIB inetrface:
Code: [Select]
Starting
;; COM9: Set params: 19200
;; Start thread for: National Instruments GPIB-232CT A:1 - Solartron 7150Plus
;; COM9: Tx: <.> 0A
;; National Instruments GPIB-232CT A:1: Tx <init>
;; National Instruments GPIB-232CT A:1: Tx <tx T0>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <T0.> 54 30 0A
;; Found Solartron 7150Plus on National Instruments GPIB-232CT A:1
;; 50PLUS: Tx <mode?>
;; 50PLUS: Tx <txrx? M?>
Flush
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <M?.> 4D 3F 0A
;; COM9: Tx: <TMO 0.95.> 54 4D 4F 20 30 2E 39 35 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <M0> 4D 30
Raw: 4D 30
;; 50PLUS: Rx <M0>
« Last Edit: June 17, 2020, 09:31:33 pm by masterx81 »
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #806 on: June 18, 2020, 06:54:44 am »
Uhm, in the definition file i've specified
#gpibReadEol 10
but i get an
EOS R,49

That is the problem with untested code, I do not catch the silly bugs. I hope it is fixed now.
 

Offline masterx81

  • Frequent Contributor
  • **
  • Posts: 481
  • Country: it
Re: Program that can log from many multimeters.
« Reply #807 on: June 18, 2020, 10:10:23 am »
No problem! This evening i'll try it, thanks!!
 

Offline HighVoltage

  • Super Contributor
  • ***
  • Posts: 5472
  • Country: de
Re: Program that can log from many multimeters.
« Reply #808 on: June 18, 2020, 10:33:39 am »
Bookmarked

There are 3 kinds of people in this world, those who can count and those who can not.
 

Offline MikeLud

  • Regular Contributor
  • *
  • Posts: 218
  • Country: us
Re: Program that can log from many multimeters.
« Reply #809 on: June 18, 2020, 12:50:03 pm »
HKJ,

How do I write the #askValuesMathFormat to remove the NaN.  I tried getElement(value,1,",") but this did not work.

Code: [Select]
;; 08:43:49.193 SDS1204XE: Tx <C1-C2:MEAD? PHA>
;; 08:43:49.586 SDS1204XE: Rx <PHA,-30.38>
;; 08:43:49.586 SDS1204XE: Tx <C1:PAVA? RMS>
;; 08:43:49.651 SDS1204XE: Rx <RMS,1.51E+00
>
;; 08:43:49.652 SDS1204XE: Tx <C2:PAVA? RMS>
;; 08:43:49.735 SDS1204XE: Rx <RMS,1.76E+00
>
;; 08:43:49.736 SDS1204XE: Rx as numbers <NaN -30.38 NaN 1.51 NaN 1.76>
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #810 on: June 18, 2020, 01:23:49 pm »
HKJ,

How do I write the #askValuesMathFormat to remove the NaN.  I tried getElement(value,1,",") but this did not work.

;; 08:43:49.736 SDS1204XE: Rx as numbers <NaN -30.38 NaN 1.51 NaN 1.76>

The easiest way is to use #askValuesReadFormat instead, it is designed to handle this type of format:

#askValuesReadFormat xfxf

Will skip 1 and 3 item and return 2 and 4 item as numbers.



 

Offline MikeLud

  • Regular Contributor
  • *
  • Posts: 218
  • Country: us
Re: Program that can log from many multimeters.
« Reply #811 on: June 18, 2020, 01:28:05 pm »
HKJ,

How do I write the #askValuesMathFormat to remove the NaN.  I tried getElement(value,1,",") but this did not work.

;; 08:43:49.736 SDS1204XE: Rx as numbers <NaN -30.38 NaN 1.51 NaN 1.76>

The easiest way is to use #askValuesReadFormat instead, it is designed to handle this type of format:

#askValuesReadFormat xfxf

Will skip 1 and 3 item and return 2 and 4 item as numbers.

HKJ,

Works perfect

Thanks
« Last Edit: June 18, 2020, 02:29:38 pm by MikeLud »
 

Offline masterx81

  • Frequent Contributor
  • **
  • Posts: 481
  • Country: it
Re: Program that can log from many multimeters.
« Reply #812 on: June 18, 2020, 09:22:29 pm »
Seem all good!!
Now reading the m? several times it not give any problem!

When requesting the data (g command) there is a wait after sending the request and the answer, but i think that is normal.
In T0 mode the meter is in hold state, so also the display does not update, and i think the ADC isn't working. When you request the data it takes the samples and when the conversion, averaging, etc are taken it display the result.

There is still one thing to fix: At the first start it not answer correctly:
Code: [Select]
Starting
;; COM9: Set params: 19200
;; Start thread for: National Instruments GPIB-232CT A:1 - Solartron 7150Plus
;; COM9: Tx: <.> 0A
;; National Instruments GPIB-232CT A:1: Tx <init>
;; National Instruments GPIB-232CT A:1: Tx <tx A; tx T0>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <A; tx T0.> 41 3B 20 74 78 20 54 30 0A
;; Found Solartron 7150Plus on National Instruments GPIB-232CT A:1
;; 50PLUS: Tx <mode?>
;; 50PLUS: Tx <txrx? M?>
Flush
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <M?.> 4D 3F 0A
;; COM9: Tx: <TMO 0.95.> 54 4D 4F 20 30 2E 39 35 0A
;; COM9: Tx: <EOS R,10.> 45 4F 53 20 52 2C 31 30 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <7150+ VAC.AC> 37 31 35 30 2B 20 56 41 43 2E 41 43
Raw: 37 31 35 30 2B 20 56 41 43 2E 41 43
;; 50PLUS: Rx <7150+ VAC.AC>
Unknown mode: 7150+ VAC.AC
Known modes: M0,
I think that the TMO and EOS commands are better to be placed before the wrt for asking the mode.

Curious thing: if i go in the current values window it query correctly the value (after the first one):
Code: [Select]
Starting
;; COM9: Set params: 19200
;; Start thread for: National Instruments GPIB-232CT A:1 - Solartron 7150Plus
;; COM9: Tx: <.> 0A
;; National Instruments GPIB-232CT A:1: Tx <init>
;; National Instruments GPIB-232CT A:1: Tx <tx AT0>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <AT0.> 41 54 30 0A
;; Found Solartron 7150Plus on National Instruments GPIB-232CT A:1
;; 50PLUS: Tx <mode?>
;; 50PLUS: Tx <txrx? M?>
Flush
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <M?.> 4D 3F 0A
;; COM9: Tx: <TMO 0.95.> 54 4D 4F 20 30 2E 39 35 0A
;; COM9: Tx: <EOS R,10.> 45 4F 53 20 52 2C 31 30 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <7150+ VAC.AC> 37 31 35 30 2B 20 56 41 43 2E 41 43
Raw: 37 31 35 30 2B 20 56 41 43 2E 41 43
;; 50PLUS: Rx <7150+ VAC.AC>
Unknown mode: 7150+ VAC.AC
Known modes: M0,
;; 50PLUS: Tx <values?>
;; 50PLUS: Tx <txrx? G>
Flush
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <G.> 47 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <0> 30
Raw: 30
;; 50PLUS: Rx <0>
;; 50PLUS: Rx as numbers <0.0>
;; 50PLUS: Tx <values?>
;; 50PLUS: Tx <txrx? G>
Flush
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <G.> 47 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <+.0000300  V DC> 2B 2E 30 30 30 30 33 30 30 20 20 56 20 44 43
Raw: 2B 2E 30 30 30 30 33 30 30 20 20 56 20 44 43
;; 50PLUS: Rx <+.0000300  V DC>
;; 50PLUS: Rx as numbers <3.0E-5 NaN NaN>

But if i do it manually from the command window (the same "txrx? G" command), it not work as it should:
Code: [Select]
Starting
;; COM9: Set params: 19200
;; Start thread for: National Instruments GPIB-232CT A:1 - Solartron 7150Plus
;; COM9: Tx: <.> 0A
;; National Instruments GPIB-232CT A:1: Tx <init>
;; National Instruments GPIB-232CT A:1: Tx <tx AT0>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <AT0.> 41 54 30 0A
;; Found Solartron 7150Plus on National Instruments GPIB-232CT A:1
;; 50PLUS: Tx <mode?>
;; 50PLUS: Tx <txrx? M?>
Flush
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <M?.> 4D 3F 0A
;; COM9: Tx: <TMO 0.95.> 54 4D 4F 20 30 2E 39 35 0A
;; COM9: Tx: <EOS R,10.> 45 4F 53 20 52 2C 31 30 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <7150+ VAC.AC> 37 31 35 30 2B 20 56 41 43 2E 41 43
Raw: 37 31 35 30 2B 20 56 41 43 2E 41 43
;; 50PLUS: Rx <7150+ VAC.AC>
Unknown mode: 7150+ VAC.AC
Known modes: M0,
txrx? G
;; 50PLUS: Tx <txrx? G>
Flush
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <G.> 47 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <0> 30
Raw: 30
;; 50PLUS: Rx <0>
;; 0
txrx? G
;; 50PLUS: Tx <txrx? G>
Flush
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <G.> 47 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <+.+.0000300  V DC> 2B 2E 2B 2E 30 30 30 30 33 30 30 20 20 56 20 44 43
Raw: 2B 2E 2B 2E 30 30 30 30 33 30 30 20 20 56 20 44 43
;; 50PLUS: Rx <+.+.0000300  V DC>
;; +.+.0000300  V DC
txrx? G
;; 50PLUS: Tx <txrx? G>
Flush
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <G.> 47 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <0> 30
Raw: 30
;; 50PLUS: Rx <0>
;; 0

txrx? G
;; 50PLUS: Tx <txrx? G>
Flush
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <G.> 47 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <+.2> 2B 2E 32
Raw: 2B 2E 32
;; 50PLUS: Rx <+.2>
;; +.2

In any case now i can start to work on the definition file... And i need to play with the output data format as seem that Si not handle it, and also see if i can read at poweron the model name to verify  that it match the definition file.
Thanks!
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #813 on: June 19, 2020, 07:33:32 am »
A few comments:

With Ascii devices a ; in tx/txrx/txrx? definition is transmitted, not used to split commands. You can still use ; on the SCPI level to split commands.

The reason I do all the settings before the RD command is to support multiple devices on the same GPIB bus with different settings. The code keeps track of the actual setting and will only use a command if a setting have to be changed, i.e. with one device you will usually only see them once.

SCPI & ASCII drivers can only handle a command and optional answer scheme, they are not designed for devices that stream values. That is the reason you have to use the T0 mode. A driver like SingleValue is designed to handle streaming devices, but cannot do any control.

The SI format (like the other formats) is only a formatter, it do not have anything to do with reading the value from the device.
« Last Edit: June 19, 2020, 07:35:59 am by HKJ »
 

Offline masterx81

  • Frequent Contributor
  • **
  • Posts: 481
  • Country: it
Re: Program that can log from many multimeters.
« Reply #814 on: June 19, 2020, 08:31:37 am »
A few comments:

With Ascii devices a ; in tx/txrx/txrx? definition is transmitted, not used to split commands. You can still use ; on the SCPI level to split commands.
I think that you are referring to the try to send A (reset) and after the T0 command, to be sure to reset any previous setting set on the meter (and on exit i do the same)
I've tried to  do "tx A; tx T0", tx A; T0" but none worked, so i've done "tx AT0" ad is working as it should as the meter accept commands in cascade.

The reason I do all the settings before the RD command is to support multiple devices on the same GPIB bus with different settings. The code keeps track of the actual setting and will only use a command if a setting have to be changed, i.e. with one device you will usually only see them once.
With only the TMO was all ok, but after adding the EOS, the device seem to reset the M? request, and output the model (like it has not received the "M?" request)

SCPI & ASCII drivers can only handle a command and optional answer scheme, they are not designed for devices that stream values. That is the reason you have to use the T0 mode. A driver like SingleValue is designed to handle streaming devices, but cannot do any control.
Yeah, do know that, was only a thing that i've noticed, when the program read in sequence it's absolutely not a problem.

The SI format (like the other formats) is only a formatter, it do not have anything to do with reading the value from the device.
Yes, do know that, i've only noticed that the SI format wasn't handling the "+.0000000" format
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #815 on: June 19, 2020, 09:11:14 am »
I think that you are referring to the try to send A (reset) and after the T0 command, to be sure to reset any previous setting set on the meter (and on exit i do the same)

That is correct.


With only the TMO was all ok, but after adding the EOS, the device seem to reset the M? request, and output the model (like it has not received the "M?" request)

I have made a change (V0.91), it will also send the EOS command during initialization, this means only if you have two devices with different EOS settings will it try to send the command before doing a RD


Yes, do know that, i've only noticed that the SI format wasn't handling the "+.0000000" format

Again, it is not the SI format that fails, but the number parsing. It do not like a number starting with a .
Try adding a :readmath: or #askValuesMathFormat (Name depends on where you use it) with something like: replace(replace(value,"+.","0."),"-.","-0.");

 

Offline SharpDome

  • Newbie
  • Posts: 4
  • Country: us
Re: Program that can log from many multimeters.
« Reply #816 on: June 19, 2020, 05:04:59 pm »
I'm using a Brymen BM829s. I'm getting inconsistent behavior measuring DC volts. 

With the meter showing 9.313 DC volts on its screen using the DC volts dial position, the "Current values" tab shows negative infinity:

Code: [Select]
Name         Unit Current Minimum Maximum Range Average Slope
BM829.VoltageDC V -∞ 0 0 0 0 -

If I switch to the "Auto Check" dial position, the voltage is displayed correctly, but with no decimal places. "Current values" also sometimes switches to negative infinity, and back to 9 volts.

Code: [Select]
Name         Unit Current Minimum Maximum Range Average Slope
BM829.VoltageDC V 9 6.17 9 2.83 8.21965 30.1767m

Am I doing something wrong with my settings or how I'm using the application, or is something else going on?
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #817 on: June 19, 2020, 05:12:08 pm »
I'm using a Brymen BM829s. I'm getting inconsistent behavior measuring DC volts. 

Am I doing something wrong with my settings or how I'm using the application, or is something else going on?

The problem may be my USBHID code. Try starting the program in debug mode with the .bat file, it shows what is going on.
 

Offline SharpDome

  • Newbie
  • Posts: 4
  • Country: us
Re: Program that can log from many multimeters.
« Reply #818 on: June 19, 2020, 05:45:20 pm »
I ran the debug mode and logged the output to a text file. While on the DCV dial setting, it starts with a few NaN and then just loops over and over with -Infinity:

Code: [Select]
Starting
;; Start thread for: HIDv0820p0001 - Brymen BM829s
;; HIDv0820p0001: Found usb device: \\?\hid#vid_0820&pid_0001#7&2ea69c6a&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
;; Found Brymen BM829s on HIDv0820p0001
;; BM829: Tx <VALUE?>
;; BM829: Rx <>
;; BM829: Rx as numbers <NaN>
;; BM829: Tx <VALUE?>
;; BM829: Rx <>
;; BM829: Rx as numbers <NaN>
;; BM829: Tx <VALUE?>
;; BM829: Rx <>
;; BM829: Rx as numbers <NaN>
;; BM829: Tx <VALUE?>
;; BM829: Rx <-?>
;; BM829: Rx as numbers <-Infinity>
;; BM829: Tx <VALUE?>
;; BM829: Rx <-?>
;; BM829: Rx as numbers <-Infinity>
;; BM829: Tx <VALUE?>
;; BM829: Rx <-?>
;; BM829: Rx as numbers <-Infinity>

When in the Auto Check dial position, the values seem to start OK, but then fall back to -Infinity. The correct values seem to correlate with when the Auto Check function is showing a changing voltage reading, but then fall back to -Infinity once the value stabilizes and is no longer changing:

Code: [Select]
Starting
;; Start thread for: HIDv0820p0001 - Brymen BM829s
;; HIDv0820p0001: Found usb device: \\?\hid#vid_0820&pid_0001#7&2ea69c6a&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
;; Found Brymen BM829s on HIDv0820p0001
;; BM829: Tx <VALUE?>
;; BM829: Rx <9>
;; BM829: Rx as numbers <9.0>
;; BM829: Tx <VALUE?>
;; BM829: Rx <9>
;; BM829: Rx as numbers <9.0>
;; BM829: Tx <VALUE?>
;; BM829: Rx <9>
;; BM829: Rx as numbers <9.0>
;; BM829: Tx <VALUE?>
;; BM829: Rx <9>
;; BM829: Rx as numbers <9.0>
;; BM829: Tx <VALUE?>
;; BM829: Rx <9>
;; BM829: Rx as numbers <9.0>
;; BM829: Tx <VALUE?>
;; BM829: Rx <9>
;; BM829: Rx as numbers <9.0>
;; BM829: Tx <VALUE?>
;; BM829: Rx <9>
;; BM829: Rx as numbers <9.0>
;; BM829: Tx <VALUE?>
;; BM829: Rx <9>
;; BM829: Rx as numbers <9.0>
;; BM829: Tx <VALUE?>
;; BM829: Rx <9>
;; BM829: Rx as numbers <9.0>
;; BM829: Tx <VALUE?>
;; BM829: Rx <9>
;; BM829: Rx as numbers <9.0>
;; BM829: Tx <VALUE?>
;; BM829: Rx <9>
;; BM829: Rx as numbers <9.0>
;; BM829: Tx <VALUE?>
;; BM829: Rx <9>
;; BM829: Rx as numbers <9.0>
;; BM829: Tx <VALUE?>
;; BM829: Rx <9>
;; BM829: Rx as numbers <9.0>
;; BM829: Tx <VALUE?>
;; BM829: Rx <-?>
;; BM829: Rx as numbers <-Infinity>
;; BM829: Tx <VALUE?>
;; BM829: Rx <9>
;; BM829: Rx as numbers <9.0>
;; BM829: Tx <VALUE?>
;; BM829: Rx <9>
;; BM829: Rx as numbers <9.0>
;; BM829: Tx <VALUE?>
;; BM829: Rx <9>
;; BM829: Rx as numbers <9.0>
;; BM829: Tx <VALUE?>
;; BM829: Rx <9>
;; BM829: Rx as numbers <9.0>
;; BM829: Tx <VALUE?>
;; BM829: Rx <9>
;; BM829: Rx as numbers <9.0>
;; BM829: Tx <VALUE?>
;; BM829: Rx <9>
;; BM829: Rx as numbers <9.0>

Out of curiosity, I tried the DCV dial position again and noticed that as long as the voltage reading is changing on the DMM screen, then a value is being correctly reported. When the reading is no longer changing, -Infinity is the result.

Also, as mentioned, even when the values are being correctly read, they are only showing a single digit, and not the 4 digits displayed on the DMM screen.

Hope this helps!
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #819 on: June 19, 2020, 05:51:54 pm »
I ran the debug mode and logged the output to a text file. While on the DCV dial setting, it starts with a few NaN and then just loops over and over with -Infinity:

Code: [Select]
Starting
;; BM829: Tx <VALUE?>
;; BM829: Rx <>
;; BM829: Rx as numbers <NaN>
;; BM829: Tx <VALUE?>
;; BM829: Rx <>
;; BM829: Rx as numbers <NaN>

What I notice is the missing answers (Rx <>), I will try checking tomorrow, but most likely my computer works. This means I cannot solve it (I do not want to get into low level cross platform programming).
 

Offline masterx81

  • Frequent Contributor
  • **
  • Posts: 481
  • Country: it
Re: Program that can log from many multimeters.
« Reply #820 on: June 19, 2020, 10:03:47 pm »
almost there
Code: [Select]
Starting
;; COM9: Set params: 19200
;; Start thread for: National Instruments GPIB-232CT A:1 - Solartron 7150Plus
;; COM9: Tx: <EOS R,10.> 45 4F 53 20 52 2C 31 30 0A
;; COM9: Tx: <.> 0A
;; National Instruments GPIB-232CT A:1: Tx <init>
;; National Instruments GPIB-232CT A:1: Tx <tx AT0>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <AT0.> 41 54 30 0A
;; Found Solartron 7150Plus on National Instruments GPIB-232CT A:1
;; 50PLUS: Tx <mode?>
;; 50PLUS: Tx <txrx? M?>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <M?.> 4D 3F 0A
;; COM9: Tx: <TMO 0.95.> 54 4D 4F 20 30 2E 39 35 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <7150+ VAC.AC> 37 31 35 30 2B 20 56 41 43 2E 41 43
;; 50PLUS: Rx <7150+ VAC.AC>
Unknown mode: 7150+ VAC.AC
Known modes: M0,
;; 50PLUS: Tx <values?>
;; 50PLUS: Tx <txrx? G>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <G.> 47 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: timeout
;; 50PLUS: Rx <null>
;; 50PLUS: Rx after :readmath: replace(replace(value,"+.","0."),"-.","-0."); <null>
;; 50PLUS: Rx as numbers <0.0>
;; 50PLUS: Tx <values?>
;; 50PLUS: Tx <txrx? G>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <G.> 47 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <+14.16130  V DC> 2B 31 34 2E 31 36 31 33 30 20 20 56 20 44 43
;; 50PLUS: Rx <+14.16130  V DC>
;; 50PLUS: Rx after :readmath: replace(replace(value,"+.","0."),"-.","-0."); <+14.16130  V DC>
;; 50PLUS: Rx as numbers <14.1613>
;; 50PLUS: Tx <values?>
;; 50PLUS: Tx <txrx? G>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <G.> 47 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <+14.16160  V DC> 2B 31 34 2E 31 36 31 36 30 20 20 56 20 44 43
;; 50PLUS: Rx <+14.16160  V DC>
;; 50PLUS: Rx after :readmath: replace(replace(value,"+.","0."),"-.","-0."); <+14.16160  V DC>
;; 50PLUS: Rx as numbers <14.1616>
;; 50PLUS: Tx <values?>
;; 50PLUS: Tx <txrx? G>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <G.> 47 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <+14.16170  V DC> 2B 31 34 2E 31 36 31 37 30 20 20 56 20 44 43
;; 50PLUS: Rx <+14.16170  V DC>
;; 50PLUS: Rx after :readmath: replace(replace(value,"+.","0."),"-.","-0."); <+14.16170  V DC>
;; 50PLUS: Rx as numbers <14.1617>
;; 50PLUS: Tx <values?>
;; 50PLUS: Tx <txrx? G>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <G.> 47 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <+14.16170  V DC> 2B 31 34 2E 31 36 31 37 30 20 20 56 20 44 43
;; 50PLUS: Rx <+14.16170  V DC>
;; 50PLUS: Rx after :readmath: replace(replace(value,"+.","0."),"-.","-0."); <+14.16170  V DC>
;; 50PLUS: Rx as numbers <14.1617>
;; 50PLUS: Tx <values?>
;; 50PLUS: Tx <txrx? G>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <G.> 47 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <+14.16170  V DC> 2B 31 34 2E 31 36 31 37 30 20 20 56 20 44 43
;; 50PLUS: Rx <+14.16170  V DC>
;; 50PLUS: Rx after :readmath: replace(replace(value,"+.","0."),"-.","-0."); <+14.16170  V DC>
;; 50PLUS: Rx as numbers <14.1617>
;; 50PLUS: Tx <values?>
;; 50PLUS: Tx <txrx? G>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <G.> 47 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <+14.16180  V DC> 2B 31 34 2E 31 36 31 38 30 20 20 56 20 44 43
;; 50PLUS: Rx <+14.16180  V DC>
;; 50PLUS: Rx after :readmath: replace(replace(value,"+.","0."),"-.","-0."); <+14.16180  V DC>
;; 50PLUS: Rx as numbers <14.1618>
;; 50PLUS: Tx <values?>
;; 50PLUS: Tx <txrx? G>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <G.> 47 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <+14.16180  V DC> 2B 31 34 2E 31 36 31 38 30 20 20 56 20 44 43
;; 50PLUS: Rx <+14.16180  V DC>
;; 50PLUS: Rx after :readmath: replace(replace(value,"+.","0."),"-.","-0."); <+14.16180  V DC>
;; 50PLUS: Rx as numbers <14.1618>
;; 50PLUS: Tx <values?>
;; 50PLUS: Tx <txrx? G>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <G.> 47 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <+14.16190  V DC> 2B 31 34 2E 31 36 31 39 30 20 20 56 20 44 43
;; 50PLUS: Rx <+14.16190  V DC>
;; 50PLUS: Rx after :readmath: replace(replace(value,"+.","0."),"-.","-0."); <+14.16190  V DC>
;; 50PLUS: Rx as numbers <14.1619>
;; 50PLUS: Tx <values?>
;; 50PLUS: Tx <txrx? G>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <G.> 47 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <+14.16190  V DC> 2B 31 34 2E 31 36 31 39 30 20 20 56 20 44 43
;; 50PLUS: Rx <+14.16190  V DC>
;; 50PLUS: Rx after :readmath: replace(replace(value,"+.","0."),"-.","-0."); <+14.16190  V DC>
;; 50PLUS: Rx as numbers <14.1619>
;; 50PLUS: Tx <values?>
;; 50PLUS: Tx <txrx? G>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <G.> 47 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <+14.16190  V DC> 2B 31 34 2E 31 36 31 39 30 20 20 56 20 44 43
;; 50PLUS: Rx <+14.16190  V DC>
;; 50PLUS: Rx after :readmath: replace(replace(value,"+.","0."),"-.","-0."); <+14.16190  V DC>
;; 50PLUS: Rx as numbers <14.1619>
;; 50PLUS: Tx <values?>
;; 50PLUS: Tx <txrx? G>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <G.> 47 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <+14.16200  V DC> 2B 31 34 2E 31 36 32 30 30 20 20 56 20 44 43
;; 50PLUS: Rx <+14.16200  V DC>
;; 50PLUS: Rx after :readmath: replace(replace(value,"+.","0."),"-.","-0."); <+14.16200  V DC>
;; 50PLUS: Rx as numbers <14.162>

I not understand why, but the first read value is always "7150+ VAC.AC". Maybe as the first thing that i do is a reset, it put it in the output buffer also if then i ask the mode with m? (before now, sending manual commands i never noticed it, seemed that asking the mode cancelled the first read of the model name)

Can i, in the definition, do a read of this value at init for get the model number?

Using
Code: [Select]
#verifyDevice 7150+ Model?
#scpiCmd Model? txrx?


i get
Code: [Select]
Starting
;; COM9: Set params: 19200
;; Start thread for: National Instruments GPIB-232CT A:1 - Solartron 7150Plus
;; COM9: Tx: <EOS R,10.> 45 4F 53 20 52 2C 31 30 0A
;; COM9: Tx: <.> 0A
;; : Tx <txrx?>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <.> 0A
;; COM9: Tx: <TMO 0.95.> 54 4D 4F 20 30 2E 39 35 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <0> 30
;; National Instruments GPIB-232CT A:1: **Device do not match** <0>

And... why at this read it not output the model? tomorrow i'll play a bit more...
One question, i've tried "#verifyDevice 7150+ VAC.AC Model?" but it crashes, i need "7150+ VAC.AC" between '' or ""?
« Last Edit: June 19, 2020, 10:21:39 pm by masterx81 »
 
The following users thanked this post: Marco1971

Offline SharpDome

  • Newbie
  • Posts: 4
  • Country: us
Re: Program that can log from many multimeters.
« Reply #821 on: June 19, 2020, 10:24:12 pm »
What I notice is the missing answers (Rx <>), I will try checking tomorrow, but most likely my computer works. This means I cannot solve it (I do not want to get into low level cross platform programming).

Sounds good, thank you. If it helps, my desktop environment is Windows 10 Pro x64, and I was using JRE 8u251.
 

Offline MikeLud

  • Regular Contributor
  • *
  • Posts: 218
  • Country: us
Re: Program that can log from many multimeters.
« Reply #822 on: June 20, 2020, 03:24:39 am »
Attached is a device file that supports the below Siglent Scopes, the only scope tested is the SDS1204X-E. The file is still a work in progress. The file is setup to log C1-C4 V RMS and C1-C4 V Pk-Pk. Please let me know if you find any issues with the file or any suggestions

Siglent SDS1052A, Siglent SDS1052DL+, Siglent SDS1072A, Siglent SDS1072CFL, Siglent SDS1072X-E, Siglent SDS1074CFL, Siglent SDS1074X-E, Siglent SDS1102A, Siglent SDS1102CFL, Siglent SDS1102CML+, Siglent SDS1102X, Siglent SDS1102X+, Siglent SDS1102X-C, Siglent SDS1102X-E, Siglent SDS1104CFL, Siglent SDS1104X-C, Siglent SDS1104X-E, Siglent SDS1122E+, Siglent SDS1152A, Siglent SDS1152CML+, Siglent SDS1202CFL, Siglent SDS1202F+, Siglent SDS1202X, Siglent SDS1202X+, Siglent SDS1202X-C, Siglent SDS1202X-E, Siglent SDS1204CFL, Siglent SDS1204X-C, Siglent SDS1204X-E, Siglent SDS1302CFL, Siglent SDS1304CFL, Siglent SDS2072, Siglent SDS2072X, Siglent SDS2074, Siglent SDS2074X, Siglent SDS2102, Siglent SDS2102X, Siglent SDS2102X-E, Siglent SDS2104, Siglent SDS2104X, Siglent SDS2202, Siglent SDS2202X, Siglent SDS2202X-E, Siglent SDS2204, Siglent SDS2204X, Siglent SDS2302, Siglent SDS2302X, Siglent SDS2304, Siglent SDS2304X, Siglent SDS2352X-E

* SiglentSDSxxxxxx.txt (64.65 kB - downloaded 67 times.)
« Last Edit: June 20, 2020, 03:41:19 am by MikeLud »
 
The following users thanked this post: tautech, tubularnut, Marco1971

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #823 on: June 20, 2020, 06:17:41 am »
Attached is a device file that supports the below Siglent Scopes, the only scope tested is the SDS1204X-E. The file is still a work in progress. The file is setup to log C1-C4 V RMS and C1-C4 V Pk-Pk. Please let me know if you find any issues with the file or any suggestions

I will include it, but maybe adding a note describing that it uses the scope as a voltmeter would be a good idea.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #824 on: June 20, 2020, 06:53:54 am »
Can i, in the definition, do a read of this value at init for get the model number?

Using
Code: [Select]
#verifyDevice 7150+ Model?
#scpiCmd Model? txrx?

One question, i've tried "#verifyDevice 7150+ VAC.AC Model?" but it crashes, i need "7150+ VAC.AC" between '' or ""?

The problem is that the device id is only one word in #verifyDevice
The trick is to replace spaces with _:
#verifyDevice 7150+_VAC.AC Model?

 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf