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

0 Members and 8 Guests are viewing this topic.

Offline Alias

  • Contributor
  • Posts: 17
  • Country: ru
Re: Program that can log from many multimeters.
« Reply #2075 on: October 29, 2021, 08:14:46 pm »
I tried to choose different numbers - nothing changes (((
Sorry for my English - this is a google translate
 

Offline Alias

  • Contributor
  • Posts: 17
  • Country: ru
Re: Program that can log from many multimeters.
« Reply #2076 on: October 29, 2021, 08:17:21 pm »
com17
Sorry for my English - this is a google translate
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #2077 on: October 29, 2021, 08:26:54 pm »
I tried to choose different numbers - nothing changes (((

Using numbers alone will not work on windows, it has to be com..
Use right click to get the correct value. Using right click will take a few seconds for TestController to collect the port numbers (That is the main reason I do not automatically do it).
 

Offline Alias

  • Contributor
  • Posts: 17
  • Country: ru
Re: Program that can log from many multimeters.
« Reply #2078 on: October 29, 2021, 08:31:50 pm »
Thanks for the tips! But that's what I do - F2 - right key - select from the list
You have helped a lot. I'm already uncomfortable asking you further ((
Sorry for my English - this is a google translate
 

Offline Alias

  • Contributor
  • Posts: 17
  • Country: ru
Re: Program that can log from many multimeters.
« Reply #2079 on: October 29, 2021, 08:37:30 pm »
Korad3005P
Sorry for my English - this is a google translate
 

Offline Alias

  • Contributor
  • Posts: 17
  • Country: ru
Re: Program that can log from many multimeters.
« Reply #2080 on: October 29, 2021, 08:50:13 pm »
I accidentally ran not * .bat, but jar - it worked! Now starts and * .bat
I don't know what happened, but thanks for your patience! If possible, I will write an addendum to my ET3240 article with a link to your program and how to configure it. Do you mind?
Sorry for my English - this is a google translate
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #2081 on: October 30, 2021, 06:25:58 am »
I accidentally ran not * .bat, but jar - it worked! Now starts and * .bat
I don't know what happened, but thanks for your patience! If possible, I will write an addendum to my ET3240 article with a link to your program and how to configure it. Do you mind?

I have no idea why it now works for you, there is usually not supposed to be any difference between using the .bat file or .jar file. Only problem is if the program is started from outside its directory, then it may not be able to find the device definitions.

You are welcome to write about TestController, it may be a good idea to post a link to your writing about it here.
 

Offline Alias

  • Contributor
  • Posts: 17
  • Country: ru
Re: Program that can log from many multimeters.
« Reply #2082 on: October 30, 2021, 09:26:08 am »
Perhaps I missed something because of the difficulties of translation. Thanks for the help! When I complete my note about the multimeter (https://delta-f.ru/et3240), I will definitely inform about it.
Sorry for my English - this is a google translate
 

Offline C.J.S.

  • Contributor
  • Posts: 47
  • Country: nl
Re: Program that can log from many multimeters.
« Reply #2083 on: October 30, 2021, 11:06:52 am »
Thanks for the help! When I complete my note about the multimeter (https://delta-f.ru/et3240), I will definitely inform about it.
Nice review. In your note you say that only little information can be found about this meter on the internet. Did you know that HKJ also did a review of the ET3240? Apart from that there are also a few reviews on YouTube.
 

Offline Alias

  • Contributor
  • Posts: 17
  • Country: ru
Re: Program that can log from many multimeters.
« Reply #2084 on: October 30, 2021, 11:15:56 am »
Of course, I've seen these reviews on YouTube too, but not all questions are answered there. And we became spoiled and got used to the fact that you can always find any answer on the Internet))) My review is short and it was the answer to questions from the forum. But now I will do it in more detail.
Sorry for my English - this is a google translate
 

Offline rfdes

  • Regular Contributor
  • *
  • Posts: 204
  • Country: us
Re: Program that can log from many multimeters.
« Reply #2085 on: October 30, 2021, 02:58:42 pm »
I believe this has been bought up a couple of times.  I recently acquired a used NI GPIB-USB-HS controller that I want to use with the Test Controller software and saw that only the RS232 version of the NI-GPIB controller is supported.  Does anyone know of wrapper software that would allow the USB version of the controller to emulate the RS232 version?  I've looked and couldn't find a solution.  Any other solutions to using the USB controller versions?
Thanks
Jim
 

Offline bdunham7

  • Super Contributor
  • ***
  • Posts: 8011
  • Country: us
Re: Program that can log from many multimeters.
« Reply #2086 on: November 01, 2021, 05:28:15 am »
I believe there is not yet any way to use the NI USB GPIB adapter with Testcontroller.

Does anyone have a link to a specific cable that is known to work well as a USB/RS232 connector with Testcontroller?  The one I got from Fluke works, but I'd like another eBay special or whatever--is there a $15 solution?
A 3.5 digit 4.5 digit 5 digit 5.5 digit 6.5 digit 7.5 digit DMM is good enough for most people.
 

Offline Pukker

  • Regular Contributor
  • *
  • Posts: 153
  • Country: nl
Re: Program that can log from many multimeters.
« Reply #2087 on: November 01, 2021, 04:13:30 pm »
I believe there is not yet any way to use the NI USB GPIB adapter with Testcontroller.

Does anyone have a link to a specific cable that is known to work well as a USB/RS232 connector with Testcontroller?  The one I got from Fluke works, but I'd like another eBay special or whatever--is there a $15 solution?

This one works good for me with DL24 and PX100 loads. Seems to support RS232 to.

https://nl.aliexpress.com/item/1005001908476987.html?spm=a2g0s.9042311.0.0.27424c4dw443HL
 

Offline C.J.S.

  • Contributor
  • Posts: 47
  • Country: nl
Device definition for Siglent SPD3303X PSU
« Reply #2088 on: November 02, 2021, 04:32:27 pm »
I am working on a TestController device definition file for the Siglent SPD3303X 3-channel power supply. The same definition should also work for models SPD3303C and SPD3303X-E.
The definition file is mostly working, as can be seen in attached screenshot:
  • Measurement of output voltages and currents of the 2 main channels is working
  • Mode popup window for selection between Independent, Serial and Parallel mode is working
  • Most of the Configuration menu for setting output voltages and current limit values is working

Unfortunately the control buttons for switching ON and OFF the individual channels (located inside the red box in the screenshot) are not working yet.
There are two issues with these ON and OFF buttons, that are related to the non standard SCPI commands that are specified for this PSU:

1) The required SCPI commands for switching ON or OFF an output of this PSU are as follows (example for channel 1):
Code: [Select]
OUTP CH1,ON
OUTP CH1,OFF

Unfortunately the SCPI code that is generated by control "ButtonsOn" (used for CH1 and CH2) and control "Buttons" (used for CH3) is as follows:
Code: [Select]
OUTP CH1, ON
OUTP CH1, OFF

The space between the comma and ON or OFF causes the generated SCPI command not to work.
=> Can somebody (HKJ?) advise me how to get rid of this space?

2) Proper operation of the colored indicator of Control "ButtonsOn" (used for CH1 and CH2) requires correct readout of the ON or OFF state of channels CH1 and CH2. The output state of CH1 and CH2 can be checked by reading a 10-bit status word by means of following SCPI command:
Code: [Select]
SYST:STAT?
This SCPI command returns the hexadecimal value of the 10-bit status word. The hex value of this word can vary between 0 and 3FF. The output state of CH1 and CH2 is indicated by bits 4 and 5 of this status word, see attached picture. I am not sure but I think that I need to use function "binConvBit" to extract the value of the two status bits from the returned hex value.
=> Can somebody suggest which is the proper syntax for the :read: tag inside the definition of the two "ButtonsOn" control buttons (taking into account the definition of the status word)?
My not working attempt ( :read: binConvBit(SYST:STAT?,4,1) ) can be found at the end of attached SPD3303X definition file.

For reference I have attached the SCPI chapter from the SPD3303X user manual, as well as the definition file for the SPD3303X (work in progress) below.
Thanks in advance for your assistance!

UPDATE: Latest SPD3303X definition file is attached to Reply #2094.
« Last Edit: November 11, 2021, 10:06:00 am by C.J.S. »
 
The following users thanked this post: tubularnut, Bad_Driver

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Device definition for Siglent SPD3303X PSU
« Reply #2089 on: November 02, 2021, 04:51:32 pm »
1) The required SCPI commands for switching ON or OFF an output of this PSU are as follows (example for channel 1):
Code: [Select]
OUTP CH1,ON
OUTP CH1,OFF

Unfortunately the SCPI code that is generated by control "ButtonsOn" (used for CH1 and CH2) and control "Buttons" (used for CH3) is as follows:
Code: [Select]
OUTP CH1, ON
OUTP CH1, OFF

The space between the comma and ON or OFF causes the generated SCPI command not to work.
=> Can somebody (HKJ?) advise me how to get rid of this space?

There are 3 way to build a answer string:
1) :write: OUTP CH1,
2) :write: OUTP CH1,#
3) :write: OUTP CH1,(value)

One 1) will include a space.


2) Proper operation of the colored indicator of Control "ButtonsOn" (used for CH1 and CH2) requires correct readout of the ON or OFF state of channels CH1 and CH2. The output state of CH1 and CH2 can be checked by reading a 10-bit status word by means of following SCPI command:
Code: [Select]
SYST:STAT?
This SCPI command returns the hexadecimal value of the 10-bit status word. The hex value of this word can vary between 0 and 3FF. The output state of CH1 and CH2 is indicated by bits 4 and 5 of this status word, see attached picture. I am not sure but I think that I need to use function "binConvBit" to extract the value of the two status bits from the returned hex value.
=> Can somebody suggest which is the proper syntax for the :read: tag inside the definition of the two "ButtonsOn" control buttons (taking into account the definition of the status word)?
My not working attempt ( :read: binConvBit(SYST:STAT?,4,1) ) can be found at the end of attached SPD3303X definition file.

For reference I have attached the SCPI chapter from the SPD3303X user manual, as well as the definition file for the SPD3303X (work in progress) below.
Thanks in advance for your assistance!

Isolating the bit is done with :readmath:
The main question is how the value is returned from the power supply, if it is a binary value you need to use "#driver SCPIx" and a txrxbin command. If it is a number (hex or decimal) in ascii format you can work directly with it (You may need to add a 0x before a hex value).
« Last Edit: November 02, 2021, 05:00:18 pm by HKJ »
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #2090 on: November 02, 2021, 04:52:43 pm »
I believe this has been bought up a couple of times.  I recently acquired a used NI GPIB-USB-HS controller that I want to use with the Test Controller software and saw that only the RS232 version of the NI-GPIB controller is supported.  Does anyone know of wrapper software that would allow the USB version of the controller to emulate the RS232 version?  I've looked and couldn't find a solution.  Any other solutions to using the USB controller versions?

For GPIB take a look at AR488, it is a Arduino based GPIB interface. It is cheap and fast enough for this purpose.
 

Offline C.J.S.

  • Contributor
  • Posts: 47
  • Country: nl
Re: Device definition for Siglent SPD3303X PSU
« Reply #2091 on: November 02, 2021, 08:40:10 pm »
Thanks HKJ, we are nearly there.
Turning ON and OFF the individual channels is working now. Your tip helped to get rid of the space in the SCPI command.
Only the indicator of the two buttonsOn controls (CH1_Output and CH2_Output) is not working yet.

Isolating the bit is done with :readmath:
The main question is how the value is returned from the power supply, if it is a binary value you need to use "#driver SCPIx" and a txrxbin command. If it is a number (hex or decimal) in ascii format you can work directly with it (You may need to add a 0x before a hex value).

The value of the status word that is returned is a hex number, and I am now able to isolate the CH1 and CH2 status bits from the returned hex value.
I have now the following definition for the Off and On buttons for CH1:
Code: [Select]
#cmdSetup buttonsOn CH1_Output
:read: SYST:STAT?
:readmath: binConvBit(value,4,1)
:write: OUTP CH1,#
:updatealloff:
:tip: Turn CH1 output On or Off
:color: (0,240,0)
Off OFF
On ON

When I open the Setup window, the indicator lights are ON for a fraction of a second, and then they are turned OFF again (actually the indicators become _very_ faint, i.e. hardly visible). This behavior is independent from the output state (ON or OFF) of CH1 and CH2.

When I click on the CH1_Output OFF button, the debug window shows following response:
Code: [Select]
;; SPD33: Tx <OUTP CH1,OFF>
;; SPD33: Tx <SYST:STAT?>
;; SPD33: Rx <0x4>
;; SPD33: Rx after :readmath: binConvBit(value,4,1) <0>
;; SPD33: Rx as number <0.0>

And when I click the CH1_Output ON button, I get following response:
Code: [Select]
;; SPD33: Tx <OUTP CH1,ON>
;; SPD33: Tx <SYST:STAT?>
;; SPD33: Rx <0x14>
;; SPD33: Rx after :readmath: binConvBit(value,4,1) <1>
;; SPD33: Rx as number <1.0>

So the CH1 output status bit is correctly isolated (value 0 when OFF, value 1 when ON), but the indicator light stays off.

The help for buttonsOn says:
Quote
buttonsOn
One or more buttons on a line with a indicator last on the line. A :read: tag is needed to get the status for the indicator, it will be on if the read value matches second parameter line. The rest is similar to buttons.
The read result is supposed to be a numeric result, use a :string: tag for a non-numeric result.

If I understand correctly the second parameter line is (correct me if I am wrong):
On ON

Do I somehow need to translate numerical value "1" to text string "ON" or vice versa for a correct comparison?
Can you advise?

Latest definition file is attached FYI.
UPDATE: Latest definition file is attached to Reply #2094.
« Last Edit: November 11, 2021, 10:08:27 am by C.J.S. »
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Device definition for Siglent SPD3303X PSU
« Reply #2092 on: November 02, 2021, 09:04:32 pm »
The value of the status word that is returned is a hex number, and I am now able to isolate the CH1 and CH2 status bits from the returned hex value.

TestController cannot hand a text string like 3ff, it needs to be 0x3ff, then it will be automatic converted to an int
This can be done in :readmath: with ("0x"+value)

Do I somehow need to translate numerical value "1" to text string "ON" or vice versa for a correct comparison?
Can you advise?

The result from :readmath: must match the "ON" text, i.e. you have to use an expression that returns ON when the output is on, it is probably easiest to do with the ?: style test/expression.

Note: You can use the displayVar() function in :readmath: to see what is going on.
 

Offline C.J.S.

  • Contributor
  • Posts: 47
  • Country: nl
Re: Program that can log from many multimeters.
« Reply #2093 on: November 03, 2021, 11:59:31 am »
Thanks for your very useful hints! With the following code the indicator lights for the channel output buttons are working (example is for CH1 output):

Code: [Select]
#cmdSetup buttonsOn CH1_Output
:string:
:read: SYST:STAT?
:readmath: (binConvBit(value,4,1) == "1") ? "ON" : "OFF"
:write: OUTP CH1,#
:updatemodechange:
:update: CH2_Output
:updatealloff:
:tip: Turn CH1 output On or Off
:color: (0,240,0)
:bgcolor: (128,128,128)
OFF OFF
ON ON

The SYST:STAT? command is already returning a hex code starting with 0x, so there was no need to add 0x at the beginning. After translating the isolated CH1 and CH2 status bits to "ON" and "OFF" using the conditional expression in the :readmath: line, it was needed to add the :string: tag to make the indicator lights work.

I will do some more tweaking and testing on the Configuration Menu before posting a new definition file.
 

Offline C.J.S.

  • Contributor
  • Posts: 47
  • Country: nl
Definition file for Siglent SPD3303X/X-E PSU
« Reply #2094 on: November 04, 2021, 06:34:43 pm »
Attached below is version 1.0 of my TC definition file for the Siglent SPD3303X and SPD3303X-E 3 channel Power Supplies.
This definition supports basic setup of the PSU, including Independent, Serial and Parallel operating modes for CH1 and CH2. I have included the Operating Mode control in the Setup menu, such that all settings of the PSU can be controlled from a single menu. A picture of the Setup menu is attached below.

Limitations:
- Only LAN connection is supported, not USB
- No support for the built-in Timer functionality of the SPD3303X/X-E
- No indicator for the output state (ON or OFF) of CH3. The output state of CH3 cannot be read out via SCPI. This is a limitation of the PSU.

I have tried to control the PSU via USB, but found that the USB connection uses the "USBTMC" protocol (not virtual COM port), and it seems that this protocol is not supported by TC (correct me if I am wrong). This means that the definition cannot be used to control model SPD3303C, that only has an USB port (no LAN).

@HKJ, if you want you can include this definition file in the next release of Test Controller.

UPDATE 06 Nov 2021: Attached an updated version v1.0.1 of the Siglent SPD3303X.txt definition file. This version includes the changes to the #interface section of the Setup menu (per recommendation of HKJ below). Also a remark is added to the #notes section that firmware version 1.01.01.02.07R2 is required. The definition appears not to work with firmware versions 1.01.01.02.05 and earlier.
« Last Edit: November 06, 2021, 05:25:44 pm by C.J.S. »
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Definition file for Siglent SPD3303X/X-E PSU
« Reply #2095 on: November 04, 2021, 07:09:21 pm »
@HKJ, if you want you can include this definition file in the next release of Test Controller.

I will.
I have changed the interface definitions slightly:
Code: [Select]
#interface setVoltage CH(channel):VOLT (value)
#interface getVoltage CH(channel):VOLT?
:readmath: getMatch(value, "( |^)[-+.0-9].*")

#interface setCurrent CH(channel):CURR (value)
#interface getCurrent CH(channel):CURR?
:readmath: getMatch(value, "( |^)[-+.0-9].*")

#interface readVoltage 0 3
#interface readCurrent 1 4

The idea is to have the same names for ALL power supplies, i.e. a script using these function can work with any power supply without modification.
 

Offline C.J.S.

  • Contributor
  • Posts: 47
  • Country: nl
Re: Definition file for Siglent SPD3303X/X-E PSU
« Reply #2096 on: November 04, 2021, 08:20:43 pm »
I have changed the interface definitions slightly:
<snip>
The idea is to have the same names for ALL power supplies, i.e. a script using these function can work with any power supply without modification.

OK, that is fine. Then you may also want to update a few #interface lines in the "Owon ODP6033.txt" definition file, since I copied the lines with setCHVoltage and setCHCurrent from that file.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Definition file for Siglent SPD3303X/X-E PSU
« Reply #2097 on: November 05, 2021, 06:11:53 am »
OK, that is fine. Then you may also want to update a few #interface lines in the "Owon ODP6033.txt" definition file, since I copied the lines with setCHVoltage and setCHCurrent from that file.

Thanks, it will be fixed in next release.
 

Offline C.J.S.

  • Contributor
  • Posts: 47
  • Country: nl
Re: Program that can log from many multimeters.
« Reply #2098 on: November 06, 2021, 05:35:36 pm »
@ HKJ, FYI I have attached an updated version v1.0.1 of the Siglent SPD3303X definition file to reply #2094 above. Today I found that the definition works well with the latest firmware version of the SPD3303X/X-E, but not with earlier firmware versions. For this reason I have added a remark to the #notes section about the firmware version that is required.

v1.0.1 release notes:
- Updated #interface section per recommendation of HKJ.
- Removed leading colons from SCPI commands in #askValues (just for consistency).
- Added a remark about required firmware version to the #notes section.
 
The following users thanked this post: tautech, tubularnut, Bad_Driver

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #2099 on: November 06, 2021, 07:28:09 pm »
@ HKJ, FYI I have attached an updated version v1.0.1 of the Siglent SPD3303X definition file to reply #2094 above. Today I found that the definition works well with the latest firmware version of the SPD3303X/X-E, but not with earlier firmware versions. For this reason I have added a remark to the #notes section about the firmware version that is required.

v1.0.1 release notes:
- Updated #interface section per recommendation of HKJ.
- Removed leading colons from SCPI commands in #askValues (just for consistency).
- Added a remark about required firmware version to the #notes section.

I have updated the definition.
It will be some time before I release the next version with this definition included, mostly because I do not have any significant updates to the TestController software. Until then just put the file from CJS into the device directory.
I have no idea what "some time" is, it may be a week or a month, if somebody post a good idea or a bug I need to fix, it will be soon after that.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf