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

Alex Nikitin and 6 Guests are viewing this topic.

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #850 on: June 22, 2020, 08:02:10 am »
The #readingDelay is a maximum time, this means if the answer arrives before the specified time, the processing will continue. To do that is must be where the software waits for the answer.
#gpibWriteReadDelay is always added, i.e. even if the device answers faster it will wait the specified delay.
Ok, so in case of the NI gpib interface isn't much useful, as i need some time between the wrt and the rd.

It programs the gpib interface to wait about the same time for an answer.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #851 on: June 22, 2020, 12:54:05 pm »
Having a bit of fun:



It will be include in the next release.
 
The following users thanked this post: Messtechniker, Marco1971, MikeLud

Offline masterx81

  • Frequent Contributor
  • **
  • Posts: 481
  • Country: it
Re: Program that can log from many multimeters.
« Reply #852 on: June 22, 2020, 11:16:25 pm »
I would expect it is a timeout because the meter needs some time to do the zeroing, try adding a wait after the command:
:write: tx #;[3000]
set the 3000ms pause, it pause correctly after the write, but the command go in timeout. If i send it manually, it works:
Code: [Select]
;; SOL7150PLUS: Tx <txrx? Z?>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <Z?.> 5A 3F 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <Z0> 5A 30
;; SOL7150PLUS: Rx <Z0>
;; SOL7150PLUS: Tx <tx Z1>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <Z1.> 5A 31 0A
;; SOL7150PLUS: Delay: 3000ms
;; SOL7150PLUS: Tx <txrx? Z?>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <Z?.> 5A 3F 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <0> 30
;; SOL7150PLUS: Rx <0>
;; SOL7150PLUS: Tx <tx Z1>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <Z1.> 5A 31 0A
;; SOL7150PLUS: Delay: 3000ms
;; SOL7150PLUS: Tx <txrx? Z?>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <Z?.> 5A 3F 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <0> 30
;; SOL7150PLUS: Rx <0>
txrx? z?
;; SOL7150PLUS: Tx <txrx? z?>
;; COM9: Tx: <WRT 1.> 57 52 54 20 31 0A
;; COM9: Tx: <z?.> 7A 3F 0A
;; COM9: Tx: <RD #20,1.> 52 44 20 23 32 30 2C 31 0A
;; COM9: Rx: <Z1> 5A 31
;; SOL7150PLUS: Rx <Z1>
;; Z1

For the 6.5 digit mode, or in general, it's possible that, if after a request i get a 0byte answer, redo the read (rd command) until i get a value?
« Last Edit: June 22, 2020, 11:21:59 pm by masterx81 »
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #853 on: June 23, 2020, 06:18:59 am »
set the 3000ms pause, it pause correctly after the write, but the command go in timeout. If i send it manually, it works:

Could it be because it need a longer timeout?
Like [9999]

For the 6.5 digit mode, or in general, it's possible that, if after a request i get a 0byte answer, redo the read (rd command) until i get a value?
I could add a command to do that, but is it really necessary?

Please try to establish if the meter sends a could of 0 characters or if a longer timeout could fix it.
 

Offline masterx81

  • Frequent Contributor
  • **
  • Posts: 481
  • Country: it
Re: Program that can log from many multimeters.
« Reply #854 on: June 23, 2020, 07:16:14 am »
I've tried several timeout, yesterday evening also from realterm (so sending slowly  the data) i've had to do 2/3 retries before have a value. I would sat that have a gpibReadRetryCount would be useful also for dump away some Random data That is Sent Sometimes, when a timeout happen. If the data received can't be parsed, retry n times to read (using the same delay as before).
I not know if it's a problem of the meter or of the ni interface ( i suspect from the meter, but this delays aren't documented).
Did you have seen the strange behaviour of the Z1 command?
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #855 on: June 23, 2020, 11:45:31 am »
V0.94 is up
It has some improvement to charting and scales as shown above:
   Option for SI prefixes on chart scales
   Option for logarithmic chart scales
   Settings for chart overload handling

I have also added two commands to the Ascii driver for masterx81:

rxUntil? timeoutInSeconds expression
rxAllUntil? timeoutInSeconds expression

They will repeatedly call the Rx function, until expression is true or timeoutInSeconds expires. rxAllUntil will return all data returned, rxUntil will only return the matching return value.


Can be used like this:

rxUntil? 5 indexOf(value,"T")>=0
or
rxUntil? 5 strlen(value)>=2

The two commands are completely untested


 
The following users thanked this post: masterx81, tubularnut, Marco1971, MikeLud

Online tv84

  • Super Contributor
  • ***
  • Posts: 3217
  • Country: pt
Re: Program that can log from many multimeters.
« Reply #856 on: June 23, 2020, 12:39:44 pm »
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

(Attachment Link)

HKJ,

Wouldn't it be possible to allow a more generic definition for a range of equipments in one setting only? Instead of having to define them to allow all BW model definitions. Something with generic chars (ex.: ** or xx).
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #857 on: June 23, 2020, 01:06:29 pm »
Wouldn't it be possible to allow a more generic definition for a range of equipments in one setting only? Instead of having to define them to allow all BW model definitions. Something with generic chars (ex.: ** or xx).

There are usually some small differences between models, meaning that the definitions are slightly different. I have tools that makes that fairly easy to handle. If you look in a definition for a range of equipment you will see that there is only a few lines (Depending on differences) for each device.
Wildcards would not help with that.

Finding specific devices on the list of supported devices is not really affected by the number of defined devices when you use the filter function. If you have a Siglent SDS1104CFL, just type 1104 in the filter box and you only have 3 devices to select between.
 

Offline MikeLud

  • Regular Contributor
  • *
  • Posts: 218
  • Country: us
Re: Program that can log from many multimeters.
« Reply #858 on: June 23, 2020, 07:24:46 pm »
V0.94 is up
It has some improvement to charting and scales as shown above:
   Option for SI prefixes on chart scales
   Option for logarithmic chart scales
   Settings for chart overload handling

HKJ,

I just tried using the SI prefixes and logarithmic chart scales, when both are checked the SI does not work see below. Si work without logarithmic.



 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #859 on: June 23, 2020, 07:34:19 pm »
I just tried using the SI prefixes and logarithmic chart scales, when both are checked the SI does not work see below. Si work without logarithmic.

Strange, as you can see above it worked fine for me.
Can you post the CSV file of your data, I would like to try with the same data.
 

Offline MikeLud

  • Regular Contributor
  • *
  • Posts: 218
  • Country: us
Re: Program that can log from many multimeters.
« Reply #860 on: June 23, 2020, 08:05:08 pm »
I just tried using the SI prefixes and logarithmic chart scales, when both are checked the SI does not work see below. Si work without logarithmic.

Strange, as you can see above it worked fine for me.
Can you post the CSV file of your data, I would like to try with the same data.

HKJ,

See attached.

* Data.csv.txt (26.98 kB - downloaded 62 times.)
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #861 on: June 23, 2020, 08:37:18 pm »
See attached.

Thanks, the library I use for charts do really fight against number format overrides on logarithmic scales, but it is fixed for the next version.



Doing frequency and phase sweeps of audio gear is a nice application for TestController.
 

Offline MikeLud

  • Regular Contributor
  • *
  • Posts: 218
  • Country: us
Re: Program that can log from many multimeters.
« Reply #862 on: June 24, 2020, 12:59:16 am »
HKJ,

While creating the Siglent Scope device file I notice the two items below.

1.  When using the #remove tag to remove the last section in the device file the device file will not load
2.  #replacetext does not work with #askValuesReadFormat, it does work with #askValues

Thanks
Mike
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #863 on: June 24, 2020, 10:01:08 am »
1.  When using the #remove tag to remove the last section in the device file the device file will not load

This is fixed in the new jar file at the usual link (V0.95).

2.  #replacetext does not work with #askValuesReadFormat, it does work with #askValues

I do not really believe this, #replaceText do not check anything about tags, but simple do a plain text replacement.


To help with debugging #metadef there are some possibilities:
Add a "#metadebug" or "#metadebug save" tag on the line after a #metadef will list what that meta definition do and optionally save the processed output.
You must, of course, remove the #metadebug tag before publishing the definitions.


 

Online ArsenioDev

  • Regular Contributor
  • *
  • Posts: 236
  • Country: us
    • DiscountMissiles: my portfolio and landing page
Re: Program that can log from many multimeters.
« Reply #864 on: June 26, 2020, 08:11:19 pm »
Recently discovered this program which is just about the PERFECT thing for my networked hardware in the loop testing and general debugging rack. Only instruments I'd like to see added are the Korad KA3005P type power supplies and the Kunkin KP184 programmable load. Took a crack at adding the Korad since I have that on hand to no avail, not 100% sure what I'm doing wrong yet
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #865 on: June 26, 2020, 08:24:32 pm »
Recently discovered this program which is just about the PERFECT thing for my networked hardware in the loop testing and general debugging rack. Only instruments I'd like to see added are the Korad KA3005P type power supplies and the Kunkin KP184 programmable load. Took a crack at adding the Korad since I have that on hand to no avail, not 100% sure what I'm doing wrong yet

If you have specific questions or wishes for improvement I am listening.
First location to look is the RidenRD60xx.txt file, it uses a Modbus driver.
Note: Modbus requires an address, I have defined that as 1, because the software will only handle one device on a RS232 connection and 1 is as good as any other address.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #866 on: June 29, 2020, 01:10:33 pm »
V0.96 is up
It adds a script library, right click in the log window:


When selecting a entry it will be copied to the log window:


Adjust the parameters and press run to run the script.

Available scripts is filtered against loaded devices, this means a power supply, a electronic load or a waveform generator must be loaded for
any scripts to show up at the current time. The scripts are downloaded from my server on each program start (Missing connection means a local backup is used).

It is also possible to add scripts to the menu locally in the ..\Documents\TestController\ScriptLibrary directory.
Each script must start with (There can be more than one script in a file):
#scriptMenu menu entry

Example: #scriptMenu Power supply;Fuse test
The files must be called somethingScript.txt where something can be any name.


Usually a couple of DMM's will be used together with a script to log values in the tested circuit.
« Last Edit: June 29, 2020, 01:50:09 pm by HKJ »
 
The following users thanked this post: tubularnut, Marco1971, MikeLud

Offline gby

  • Regular Contributor
  • *
  • Posts: 238
  • Country: us
Re: Program that can log from many multimeters.
« Reply #867 on: July 01, 2020, 03:58:25 pm »
HKJ,

It has taken a while, but with your help in supporting required functions I finally have a fully working set up file for Kollmorgen AKD2G servo drives.  See attached to include with next releases for all to use.

There are a couple of issues.  First, this device is not SCPI but Telnet ascii based.  That means that TestController doesn't get an answer to the *IDN? query and I can't use #metadef statements to customize the result.  The main issue is that AKD2G devices come as single motor or dual motor capable.

The other issue is that there are potentially 100's of different things you might want to log.  Including them all would not make sense and would greatly slow communications.  So, I just included a few useful and example signals in the #askValues line.

It is still very usable, but to really get what you want/want for a particular AKD2G servo model and particular test you would need to edit the #askValues line.

All in all a useful tool.  I might look to do a setup file for a Tektronix MDO3000 oscilloscope next depending on time and whether there is community interest.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #868 on: July 01, 2020, 04:32:20 pm »
Interesting device, thanks. It will be included in next release.

I do not know if there is any idea in implementing a interface for it, but I suspect it is too complex for that.
Note: The purpose of the interface is to make scripts that work with many different brands of equipment without needed to change anything. Some examples of that can be seen in the last version of TestController.

There are a couple of issues.  First, this device is not SCPI but Telnet ascii based.  That means that TestController doesn't get an answer to the *IDN? query and I can't use #metadef statements to customize the result.  The main issue is that AKD2G devices come as single motor or dual motor capable.

The *idn? is not required for #metadef.
You can use the #verifyDevice to verify model
 

Offline gby

  • Regular Contributor
  • *
  • Posts: 238
  • Country: us
Re: Program that can log from many multimeters.
« Reply #869 on: July 01, 2020, 07:12:12 pm »
Good idea to at least have a simple interface popup.  I am trying to create a simple ON/OFF interface but I am stuck.  The device indicates status with AXIS1.ACTIVE, you turn it on with AXIS1.EN and you turn it off with AXIS.DIS.  I thought to use control buttonOn but I can't see a way to use one command for the ON button and a different command for the OFF button.  Any suggsetions?
« Last Edit: July 01, 2020, 07:14:30 pm by gby »
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #870 on: July 01, 2020, 07:26:38 pm »
Good idea to at least have a simple interface popup.  I am trying to create a simple ON/OFF interface but I am stuck.  The device indicates status with AXIS1.ACTIVE, you turn it on with AXIS1.EN and you turn it off with AXIS.DIS.  I thought to use control buttonOn but I can't see a way to use one command for the ON button and a different command for the OFF button.  Any suggsetions?

The popup was not what I was thinking about with interface. See "Generic interface" in the documentation: https://lygte-info.dk/project/TestControllerConfigDevice%20UK.html#A_generic_interface

The on/off button is not that hard (At least not when I have written the code), but it is untested:
#cmdSetup buttonsOn Output
:read: AXIS1.ACTIVE?
:readmath: getElement("AXIS.DIS AXIS1.EN",value)
:write: #
:tip: Turn output on or off
:updatealloff:
Off AXIS.DIS
On AXIS1.EN

It has to be the SCPI version of the command, you you must use tx/txrx/txrx? prefix
The getElement("AXIS.DIS AXIS1.EN",value) converts 0 to AXIS.DIS and 1 to AXIS1.EN that can then be matched to activation strings

 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #871 on: July 01, 2020, 07:28:44 pm »
For people using #metadef

I am working on a section tag, that will make it much easier on include/exclude large sections of a definition
 

Offline gby

  • Regular Contributor
  • *
  • Posts: 238
  • Country: us
Re: Program that can log from many multimeters.
« Reply #872 on: July 01, 2020, 08:30:53 pm »
The :readmath: getElement makes the buttons work fine.  Unfortunately the indicator light is always on. It never turns off.  Below is the setup code I have from your suggestion:
Code: [Select]
#cmdSetup buttonsOn Output
:read: AXIS1.ACTIVE?
:readmath: getElement("AXIS1.DIS AXIS1.EN",value)
:write: txrx #
:tip: Disable (Off) or Enable (On)
:color: (0,255,0)
:updatealloff:
Off AXIS1.DIS
On AXIS1.EN

I tried a few variations but nothing ever got the indicator light to turn off.  Below is debug output right from startup to just opening the control popup.  The device is off and the light should be off but is on.  The debug output shows the :read: giving 0 back.
Code: [Select]
Starting
;; Start thread for: 192.168.1.178 - Kollmorgen AKD2G Servo
;; Found Kollmorgen AKD2G Servo on 192.168.1.178
;; AKD2G: Tx <AXIS1.ACTIVE?>
;; AKD2G: Tx <txrx? AXIS1.ACTIVE>
;; 192.168.1.178: Tx: <AXIS1.ACTIVE..> 41 58 49 53 31 2E 41 43 54 49 56 45 0D 0A
;; 192.168.1.178: Rx: <0> 30 0D
;; AKD2G: Rx <0>
;; AKD2G: Rx after :readmath: getElement("AXIS1.DIS AXIS1.EN",value) <AXIS1.DIS>
;; AKD2G: Rx as number <NaN>
If I do the exact same sequence but have the output already On the result is the same except the :read: gives "1" back which selects "AXIS1.DIS".  Even though the read state is opposite the other the indicator light is still on.
Code: [Select]
Starting
;; Start thread for: 192.168.1.178 - Kollmorgen AKD2G Servo
;; Found Kollmorgen AKD2G Servo on 192.168.1.178
;; AKD2G: Tx <AXIS1.ACTIVE?>
;; AKD2G: Tx <txrx? AXIS1.ACTIVE>
;; 192.168.1.178: Tx: <AXIS1.ACTIVE..> 41 58 49 53 31 2E 41 43 54 49 56 45 0D 0A
;; 192.168.1.178: Rx: <1> 31 0D
;; AKD2G: Rx <1>
;; AKD2G: Rx after :readmath: getElement("AXIS1.DIS AXIS1.EN",value) <AXIS1.EN>
;; AKD2G: Rx as number <NaN>

So, what is used to decide the indicator light being on/off?  Or, better yet, how to make it work?
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #873 on: July 01, 2020, 09:07:31 pm »
So, what is used to decide the indicator light being on/off?  Or, better yet, how to make it work?

I was thinking about a combobox, the buttonson is more simple. Remove the :readmath: line
 

Offline gby

  • Regular Contributor
  • *
  • Posts: 238
  • Country: us
Re: Program that can log from many multimeters.
« Reply #874 on: July 01, 2020, 10:06:02 pm »
After removing the readmath line the indicator light is now always off.
Code: [Select]
#cmdSetup buttonsOn Axis_1_Enable
:read: AXIS1.ACTIVE?
:write: txrx #
:tip: Disable (Off) or Enable (On)
:color: (0,255,0)
:updatealloff:
Off AXIS1.DIS
On AXIS1.EN

Starting the control pop up with the output already on debug gives:
Code: [Select]
Starting
;; Start thread for: 192.168.1.178 - Kollmorgen AKD2G Servo
;; Found Kollmorgen AKD2G Servo on 192.168.1.178
;; AKD2G: Tx <AXIS1.ACTIVE?>
;; AKD2G: Tx <txrx? AXIS1.ACTIVE>
;; 192.168.1.178: Tx: <AXIS1.ACTIVE..> 41 58 49 53 31 2E 41 43 54 49 56 45 0D 0A
;; 192.168.1.178: Rx: <1> 31 0D
;; AKD2G: Rx <1>
;; AKD2G: Rx as number <1.0>
Note that the last debug line now shows 1.0 instead of just 1 with the readmath line.  Based on the web site doc saying "indicator, it will be on if the read value matches second parameter line" I tried the last two lines at 0.0 AXIS1.DIS and 1.0 AXIS1.EN.  Same thing buttonsOn indicator always off.

So far nothing I have tried has the buttonsOn indicator changing.  So, what am I missing??  :scared:
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf