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

0 Members and 2 Guests are viewing this topic.

Offline PaWill68

  • Regular Contributor
  • *
  • Posts: 117
  • Country: ru
Re: Program that can log from many multimeters.
« Reply #1825 on: July 20, 2021, 03:58:42 pm »
For example, such a file. All values have 3 decimal places, but only 2 are loaded. All columns are registered in the "Scales for chart" tab.
 

Offline PaWill68

  • Regular Contributor
  • *
  • Posts: 117
  • Country: ru
Re: Program that can log from many multimeters.
« Reply #1826 on: July 20, 2021, 04:06:23 pm »
Second question. This is export. If you select "First sample to export" equal to 3 and "Last ..." equal to 100, in fact 2-98 are selected inclusive. These are the index numbers.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1827 on: July 20, 2021, 04:40:52 pm »
For example, such a file. All values have 3 decimal places, but only 2 are loaded. All columns are registered in the "Scales for chart" tab.

No surprise, the columns are not names with a device and column, then the default is used.
I cannot save any format info the the .csv file, then it would not be a correctly formatted .csv file. If you need it often simply use a script with:
Code: [Select]
#valueformat V d3
#valueformat Ah d3
#valueformat 1a d3
#valueformat 2a d3
#valueformat 3a d3
#valueformat 5a d3
#valueformat 7a d3
#valueformat 10a d3
#valueformat 15a d3
#valueformat 20a d3

You can copy it into the log window and run it or save it as a menu entry.
 
The following users thanked this post: PaWill68

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1828 on: July 20, 2021, 04:55:13 pm »
Second question. This is export. If you select "First sample to export" equal to 3 and "Last ..." equal to 100, in fact 2-98 are selected inclusive. These are the index numbers.

The samples to export will usually be based on time, prefix the numbers with # to get index.
 
The following users thanked this post: PaWill68

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1829 on: July 27, 2021, 10:19:27 am »
V1.76 is up
It includes a couple of new devices and improvements to the KP184
   Added: Metrix MTX3291
   Added: Chauvin Arnoux CA 5292, CA 5293, Metrix MTX3292B, Metrix MTX3293B multimeter
   Added: Kunkin KP184 V4+, includes Ah & Wh columns using 0x301 message (Thanks PaWill68)
   Added: Kunkin, support for 0x300 message, will hopefully reduce noise in logged values.
   Added: Modbus now supports multiple factors when requesting multiple values.
   Fixed: ? values in the middle of a dataset when importing
   Added: Yokogawa WT3000 power analyzer (Thanks gby)
   Added: txrx1Bin and txrxnBin in Ascii and SCPIx driver.
 

Offline yaybee

  • Contributor
  • Posts: 18
  • Country: nl
Re: Program that can log from many multimeters.
« Reply #1830 on: July 28, 2021, 12:39:17 pm »
Hi HKJ,

Thank you for releasing your Testcontroller program. Finally an easy way to "play" with SCPI commands of my equipment. I never installed the VISA drivers due to the expected complex "clutter" of all the required software.
I had a go at controlling my Rigol DS2302A and Siglent SDG2122 just to see what is possible with SCPI commands. Like you said in the beginning of this topic not to display the scope image in real time but to control the scope and signal generator.
Interesting to see is the big difference between Rigol and Siglent in their responses to a read command. While Rigol only returns the requested value of specific reads, Siglent only has global reads for many values at the same time.

During testing I got some unexpected results during tests with V1.70. To me it is not clear if I am doing something wrong or this a bug / not implemented function.

Item 1:
:enable: seems not to disable #cmdSetup button. The other controls are OK.

.

   #cmdSetup button Save_source_as_current_ref_(memory) Reference
   :write: REF:SAV
   :enable: Reference.Display_refs=="1"
   :tip: Save source trace as current reference (memory only).

   #cmdSetup button Reset_current_ref Reference
   :Write: REF:RES
   :enable: Reference.Display_refs=="1"
   :update: Vscale_ratio_ref; Voffset_ref

Item 2:
#cmdSetup buttonsOn works well when On is represented by 1 in the #cndSetup definition. In my case the read returns FFT.
I tried to use the if statement, but the indicator did not turn on.
It would be nice to have a thing like :onvalue: FFT to signal the read result for the indicator to turn on.

   #cmdSetup buttonsOn FFT_status FFT
   :read: CALC:MODE?
   ; readmath > set to 1 if FFT to turn the indicator on
   :readmath: value=="FFT" ? 1 : 0
   :write: CALC:MODE #
   :color: (0,255,0)
   :tip: Turn FFT on or off
   Off OFF
   On FFT

With if I get:
   ;; DS2302A: Tx <CALC:MODE FFT>
   ;; DS2302A: Tx <CALC:MODE?>
   ;; DS2302A: Rx <FFT
   >
   ;; DS2302A: Rx after :readmath: value=="FFT" ? 1 : 0 <1>
   ;; DS2302A: Rx as number <1.0>

Item 3:
Some controls create a variable. They work with :enable: and :update:, but I could not get them to work with :read:, :readmath: and :write:
I got a Java exception for an unknown variable. I would really like to use them with those statements. Is that possible?

Example of their use for Siglent SDG modulation SCPI commands:
Current setup: Separate #cmdSetup for AM and FM modulation due to SCPI write requirements
Requires #cmdSetup statements to be repeated and additional :update: controls

   #cmdSetup comboboxhot Mod_type Mod_Out_1
   :read: C1:MDWV?
   :readmath: getElement(value,1,",")
   :write: C1:MDWV WVTP,#
   :update: AM_source AM_freq AM_mod_wave FM_source FM_freq FM_mod_wave
   :updatedelayed: 0.1
   Amplitude AM
   Dual_sideband_amplitude DSBAM
   Frequency FM
   Phase PM
   Pulse_width PWM
   Amplitude_Shift_Keying ASK
   Frequency_Shift_Keying FSK
   Phase_Shift_Keying PSK

   #cmdSetup radio AM_source Mod_Out_1
   :read: C1:MDWV?
   :readmath: getElement(getMatch(value,"SRC,[^,]*,"),1,",")
   :readformat: u
   :write: C1:MDWV AM,SRC,#
   :update: AM_freq AM_mod_wave
   :enable Mod_Out_1.Mod_type=="AM"
   Internal INT
   External EXT

   #cmdSetup radio AM_freq Mod_Out_1
   :read: C1:MDWV?
   :readmath: getElement(getMatch(value,"FRQ,[^,]*,"),1,",")
   :readformat: u
   :write: C1:MDWV AM,FRQ,#
   :enable: Mod_Out_1.Mod_type=="AM" && Mod_Out_1.AM_source=="INT"
   :tip: Only with internal source; ext +/- 6V correspond to 100%
   Hz 1m 1M

   #cmdSetup combobox AM_mod_wave Mod_Out_1
   :write: C1:MDWV AM,MDSP,#
   :read: C1:MDWV
   :readmath: getElement(getMatch(value,"MDSP,[^,]*,"),1,",")
   :readformat: u
   :enable Mod_Out_1.Mod_type=="AM" && Mod_Out_1.AM_source
   Sine SINE
   Square SQUARE
   Triangle TRIANGLE
   Up_ramp UPRAMP
   Down_ramp DNRAMP
   Noise NOISE
   Arbitary ARB

   #cmdSetup radio FM_source Mod_Out_1
   :read: C1:MDWV?
   :readmath: getElement(getMatch(value,"SRC,[^,]*,"),1,",")
   :readformat: u
   :write: C1:MDWV FM,SRC,#
   :update: FM_freq FM_mod_wave
   :enable Mod_Out_1.Mod_type=="FM"
   Internal INT
   External EXT

   #cmdSetup number FM_freq Mod_Out_1
   :read: C1:MDWV?
   :readmath: getElement(getMatch(value,"FRQ,[^,]*,"),1,",")
   :readformat: u
   :write: C1:MDWV FM,FRQ,#
   :enable: Mod_Out_1.Mod_type=="FM" && Mod_Out_1.FM_source=="INT"
   :tip: Only with internal source; ext +/- 6V correspond to 100%
   Hz 1m 1M

   #cmdSetup combobox Mod_wave Mod_Out_1
   :write: C1:MDWV FM,MDSP,#
   :read: C1:MDWV?
   :readmath: getElement(getMatch(value,"MDSP,[^,]*,"),1,",")
   :readformat: u
   :enable Mod_Out_1.Mod_type=="FM" && Mod_Out_1.FM_source=="INT"
   Sine SINE
   Square SQUARE
   Triangle TRIANGLE
   Up_ramp UPRAMP
   Down_ramp DNRAMP
   Noise NOISE
   Arbitrary ARB

Requested setup: Combined using (Mod_Out_1.Mod_type) as replacement for AM and FM on :write:
Giving less #cmdSetup statements and :update: controls

   #cmdSetup comboboxhot Mod_type Mod_Out_1
   :read: C1:MDWV?
   :readmath: getElement(value,1,",")
   :write: C1:MDWV WVTP,#
   :updatedelayed: 0.1
   Amplitude AM
   Dual_sideband_amplitude DSBAM
   Frequency FM
   Phase PM
   Pulse_width PWM
   Amplitude_Shift_Keying ASK
   Frequency_Shift_Keying FSK
   Phase_Shift_Keying PSK

   #cmdSetup radio Source Mod_Out_1
   :read: C1:MDWV?
   :readmath: getElement(getMatch(value,"SRC,[^,]*,"),1,",")
   :readformat: u
   :write: C1:MDWV (Mod_Out_1.Mod_type),SRC,#
   :update: Freq Mod_wave   
   Internal INT
   External EXT

   #cmdSetup number Freq Mod_Out_1
   :read: C1:MDWV?
   :readmath: getElement(getMatch(value,"FRQ,[^,]*,"),1,",")
   :readformat: u
   :write: C1:MDWV (Mod_Out_1.Mod_type),FRQ,#
   :enable: Mod_Out_1.Source=="INT"
   :tip: Only with internal source; ext +/- 6V correspond to 100%
   Hz 1m 1M

   #cmdSetup combobox Mod_wave Mod_Out_1
   :write: C1:MDWV (Mod_Out_1.Mod_type),MDSP,#
   :read: C1:MDWV?
   :readmath: getElement(getMatch(value,"MDSP,[^,]*,"),1,",")
   :readformat: u
   :enable: Mod_Out_1.Source=="INT"
   Sine SINE
   Square SQUARE
   Triangle TRIANGLE
   Up_ramp UPRAMP
   Down_ramp DNRAMP
   Noise NOISE
   Arbitrary ARB
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1831 on: July 28, 2021, 03:46:20 pm »
Item 1:
:enable: seems not to disable #cmdSetup button. The other controls are OK.

This will be supported in next release of TC

Item 2:
#cmdSetup buttonsOn works well when On is represented by 1 in the #cndSetup definition. In my case the read returns FFT.
I tried to use the if statement, but the indicator did not turn on.
It would be nice to have a thing like :onvalue: FFT to signal the read result for the indicator to turn on.

buttonsOn works with numeric results, use a :string: tag to switch to string values or use a :readmath: to convert the string value into a numeric value.



Item 3:
Some controls create a variable. They work with :enable: and :update:, but I could not get them to work with :read:, :readmath: and :write:
I got a Java exception for an unknown variable. I would really like to use them with those statements. Is that possible?

Example of their use for Siglent SDG modulation SCPI commands:
Current setup: Separate #cmdSetup for AM and FM modulation due to SCPI write requirements
Requires #cmdSetup statements to be repeated and additional :update: controls

For now these variables are only created when checking :enable: and :visible: and is not accessible anywhere else.

When selecting between controls the selector control has some advantages.
 

Offline yaybee

  • Contributor
  • Posts: 18
  • Country: nl
Re: Program that can log from many multimeters.
« Reply #1832 on: July 29, 2021, 02:43:16 pm »
Hi HKJ,

Thanks for your answers. The buttonsOn now works and I have started to use the selector control (now I understand what the intended use is  :)).

Two small questions remain:

1) The selector control displays the name of the selector control in the output window if a entry is selected with no control names attached (e.g. only OFF). I was expecting to see no text.

2) It seems, that you can only use control variables for :enable: defined on the same page of the setup window. Variables from other pages seem to be invalid.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1833 on: July 29, 2021, 03:26:09 pm »
1) The selector control displays the name of the selector control in the output window if a entry is selected with no control names attached (e.g. only OFF). I was expecting to see no text.

I use names like No_settings for the control.

2) It seems, that you can only use control variables for :enable: defined on the same page of the setup window. Variables from other pages seem to be invalid.

You are supposed to be able to access all variables on all pages in the popup, but there is a caveat with the selector control: It removes hidden controls from the page. This means they are not update (This makes the popup update faster) and do not create variables.
 

Offline yaybee

  • Contributor
  • Posts: 18
  • Country: nl
Re: Program that can log from many multimeters.
« Reply #1834 on: July 30, 2021, 05:33:49 pm »
HKJ,

The selector control works great! I have given the selector the name "Settings_visible_in_On_State".
See attached picture.

Unfortunately not everything goes according to plan:
Siglent uses some SCPI commands with an underscore in it like: MARK_STATE
This underscore is however removed in the request sent to the device.

#cmdSetup radio Sweep_Marker Channel_1
:read: C1:SWWV?
:readmath: getElement(getMatch(value,"MARK_STATE,[^,]*,"),1,",")
:readformat: u
:write: C1:SWWV MARK_STATE,#
:string:
Off OFF
On ON

;; SDG2122X: Tx <C1:SWWV MARK STATE,ON>
;; SDG2122X: Tx <C1:SWWV?>
;; SDG2122X: Rx <C1:SWWV STATE,ON,TIME,1S,STOP,1500HZ,START,500HZ,TRSR,INT,TRMD,OFF,SWMD,LINE,DIR,UP,SYM,4012168.00585382,MARK_STATE,OFF,MARK_FREQ,0HZ,CARR,WVTP,SINE,FRQ,1000HZ,AMP,4.0004V,AMPVRMS,1.41414Vrms,OFST,0V,PHSE,0
>
;; SDG2122X: Rx after :readmath: getElement(getMatch(value,"MARK_STATE,[^,]*,"),1,",") <OFF>

Can you comment on this?

 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1835 on: July 30, 2021, 07:31:32 pm »
Unfortunately not everything goes according to plan:
Siglent uses some SCPI commands with an underscore in it like: MARK_STATE
This underscore is however removed in the request sent to the device.

Yes, when transmitting commands a _ is changed to a space, I will have to add a escape (Like \_) to avoid it, I will look at this soon.

On receiving nothing is supposed to be changed, but some tests uses regular expressions (Java style). To see values exactly use the "displayVar()" function, it slows everything down significantly, but is very useful to check if a value is what you expect.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1836 on: July 31, 2021, 09:39:35 am »
Here is a version where you can escape the _ character in commands:

http://lygte-info.dk/pic/Projects/TestController/TestController.jar

Use \_ and it will surviev, if you are in scripting language you have to use \\_, i.e. two \ because scripting language also supports escapes.
 

Offline yaybee

  • Contributor
  • Posts: 18
  • Country: nl
Re: Program that can log from many multimeters.
« Reply #1837 on: August 01, 2021, 07:41:33 am »
I tested your new version and the command is now sent correctly, but I get a "NullPointerException" error in the debug console.
The debug console output is attached, with result for opening Setup and sending the command.

I also attached the current state of the config file for reference.
« Last Edit: August 01, 2021, 07:51:55 am by yaybee »
 

Online tautech

  • Super Contributor
  • ***
  • Posts: 28326
  • Country: nz
  • Taupaki Technologies Ltd. Siglent Distributor NZ.
    • Taupaki Technologies Ltd.
Re: Program that can log from many multimeters.
« Reply #1838 on: August 01, 2021, 07:52:50 am »
I tested your new version and the command is now sent correctly, but I get a "NullPointerException" error in the debug console.
The debug console output is attached, with result for opening Setup and send the command.

I also attached the current state of the config file for reference.
Is this an X model SDG ? SiglentSDGxxxx.txt
If so it might be better expressed as SiglentSDGxxxxX.txt
TIA
Avid Rabid Hobbyist
Siglent Youtube channel: https://www.youtube.com/@SiglentVideo/videos
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1839 on: August 01, 2021, 08:16:54 am »
I tested your new version and the command is now sent correctly, but I get a "NullPointerException" error in the debug console.
The debug console output is attached, with result for opening Setup and sending the command.

Bug fixed and new version uploaded, same link as before, but it might take up to an hour before you can get the updated version (V1.78), due to caching.
 

Offline yaybee

  • Contributor
  • Posts: 18
  • Country: nl
Re: Program that can log from many multimeters.
« Reply #1840 on: August 02, 2021, 06:50:07 am »
HKJ,

Tested the new version and the error has disappeared. So using underscores in device requests is now possible; thank you.

Please have a look at my next challenge. I am stuck with the match() statement to solve my problem.
I need to switch between channel tracking and channel coupling. There are three possible responses of the device:

Tracking off and coupling off : COUP TRACE,OFF,FCOUP,OFF
Tracking off and coupling on  : COUP TRACE,OFF,FCOUP,ON
Tracking on and coupling off  : COUP TRACE,ON

With tracking on the response for coupling is suppressed and cannot be tested by the selector control Frequency_Coupling_Off.
So I made :readmath: into an if statement with a test for FCOUP using the match() statement. This however always returns "OFF"
even if FCOUP is part of the response. How can I make this work?

Relevant part of the Setup config:

   #cmdSetup buttonsOn Channel_Tracking Coupling
   :read: COUP?
   :readmath: getElement(getMatch(value,"TRACE,[^,]*(,|$)"),1,",")
   :write: COUP FCOUP,OFF; COUP ACOUP,OFF; COUP PCOUP,OFF; COUP TRACE,#
   :update: CH2-CH1_Coupling Coupling_disabled_while_Tracking
   :string:
   :color: (240,60,0)
   CH2_Tracks_CH1_Off OFF
   CH2_Tracks_CH1_On ON

   #cmdSetup selector Coupling_disabled_while_Tracking Coupling
   :read: COUP?
   :readmath: getElement(getMatch(value,"TRACE,[^,]*(,|$)"),1,",")
   ; selector name will be displayed in ON state
   OFF Coupling.CH2-CH1_Coupling
   ON

   #cmdSetup checkbox CH2-CH1_Coupling Coupling
   :read: COUP?
   :readmath: getElement(getMatch(value,"FCOUP,[^,]*(,|$)"),1,",")
   :write: COUP FCOUP,#
   :update: Frequency_Coupling_Off
   :string:
   Frequency OFF ON

   #cmdSetup selector Frequency_Coupling_Off Coupling
   :read: COUP?
>>>   :readmath: match(value,"FCOUP") ? getElement(getMatch(value,"FCOUP,[^,]*(,|$)"),1,",") : "OFF"
   ; selector name will be displayed in OFF state
   ON Coupling.Freq_Coupling_Type
   OFF

   #cmdSetup info Freq_Coupling_Type Coupling
   :read: COUP?
   :readmath: getMatch(value,"(FDEV)|(FRAT)")=="FDEV" ? "CH2-CH1 Deviation" : "CH2/CH1 Ratio"
   _
   _

Device trace:

;; SDG2122X: Cache Tx: <COUP?> Rx: <COUP TRACE,OFF,FCOUP,ON,PCOUP,OFF,ACOUP,OFF,FRAT,3
>
;; SDG2122X: Rx after :readmath: match(value,"FCOUP") ? getElement(getMatch(value,"FCOUP,[^,]*(,|$)"),1,",") : "OFF" <OFF>
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1841 on: August 02, 2021, 07:11:50 am »
Please have a look at my next challenge. I am stuck with the match() statement to solve my problem.
I need to switch between channel tracking and channel coupling. There are three possible responses of the device:

Tracking off and coupling off : COUP TRACE,OFF,FCOUP,OFF
Tracking off and coupling on  : COUP TRACE,OFF,FCOUP,ON
Tracking on and coupling off  : COUP TRACE,ON

There are many ways to do that, one is:
getMatch("TRACE,OFF,FCOUP,ON","FCOUP,(OFF|ON)")

to get rid of the FCOUP use
replace(getMatch("TRACE,OFF,FCOUP,ON","FCOUP,(OFF|ON)"),"FCOUP,","")
 

Offline yaybee

  • Contributor
  • Posts: 18
  • Country: nl
Re: Program that can log from many multimeters.
« Reply #1842 on: August 02, 2021, 08:54:59 am »
In both examples the return message contain FCOUP.
What I want is to get an answer of OFF when FCOUP is not in the message e.g. with COUP TRACE,ON

I forgot to mention that I saw the "disabling" of #cmdSetup button, so this is now solved as well.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1843 on: August 02, 2021, 09:03:20 am »
In both examples the return message contain FCOUP.
What I want is to get an answer of OFF when FCOUP is not in the message e.g. with COUP TRACE,ON

That is even easier:

match(value,".*FCOUP.*")?"OFF":"ON"

The ?: operator is very useful for some tests
 

Offline yaybee

  • Contributor
  • Posts: 18
  • Country: nl
Re: Program that can log from many multimeters.
« Reply #1844 on: August 02, 2021, 04:30:05 pm »
Thank you HKJ, it now works.

I already found out about the getMatch(), replace() and  if with ? and :
What I did not realize was, that match() has to match the WHOLE string to be TRUE and not partially. So you have to specify ".*SUBSTRING.*" for a substring in the middle of a response.
On the other hand  getMatch() only requires to match the requested substring. In other languages you use brackets to identify the intended items you search for.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1845 on: August 02, 2021, 07:30:41 pm »
What I did not realize was, that match() has to match the WHOLE string to be TRUE and not partially. So you have to specify ".*SUBSTRING.*" for a substring in the middle of a response.
On the other hand  getMatch() only requires to match the requested substring. In other languages you use brackets to identify the intended items you search for.

For me that was the most logical way:
match check if value matches something, there a full match is most logical.
getMatch return a matching part of a text, there I cannot match on the full text.
You can use brackets with getMatchGroup
 

Offline Aleks

  • Contributor
  • Posts: 23
  • Country: nl
Re: Program that can log from many multimeters.
« Reply #1846 on: August 03, 2021, 09:57:26 am »
Hey guys,

Does the Test Controller software have the capabilities (or it is planned for them) to automate things with equipment? Or it is meant to be used so that it only manually interacts with the equipment connected to it?

What I have in mind - would it be possible to automate charging and discharging of batteries (while logging curves such as current, voltage, capacity) by using one power supply and one DC load?

Cheers!
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1847 on: August 03, 2021, 10:47:55 am »
Hey guys,

Does the Test Controller software have the capabilities (or it is planned for them) to automate things with equipment? Or it is meant to be used so that it only manually interacts with the equipment connected to it?

What I have in mind - would it be possible to automate charging and discharging of batteries (while logging curves such as current, voltage, capacity) by using one power supply and one DC load?

It has a scripting language that can control nearly any aspect of it and connected devices. There are also ways to automatic generate scripts and a couple of supplied scripts.

To make the curve below I just have to connect a power supply and a load to the battery and start the script. It will discharge the battery, then charge it while recording and when finished with that setup the chart, label the chart and save the chart and the logged data:

 

Offline Aleks

  • Contributor
  • Posts: 23
  • Country: nl
Re: Program that can log from many multimeters.
« Reply #1848 on: August 03, 2021, 08:25:43 pm »
Hi HKJ,

Thanks a lot for the reply! After my holidays I will try to play around with it and explore the options of using it to interface with a SM15K 70V/450A power supply from Delta Elektronika. The power supply natively speaks SCPI via Ethernet, and from what I can gather, it wouldn't be too difficult to interface with it.

Cheers!
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1849 on: August 04, 2021, 05:56:08 am »
Thanks a lot for the reply! After my holidays I will try to play around with it and explore the options of using it to interface with a SM15K 70V/450A power supply from Delta Elektronika. The power supply natively speaks SCPI via Ethernet, and from what I can gather, it wouldn't be too difficult to interface with it.

To add a new power supply, check some of the already defined power supplies (Like TTi). Adding the basic functionality is not very hard, but if the power supply has a lot of modes and options and you want to support all of them a definition can get fairly long.

One of my main applications for TestController is automatic tests and it can do some without scripting:


http://lygte-info.dk/project/TestControllerPopupParamSweeper%20UK.html

But the more advanced test requires scripting.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf