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

blackdog, pivous and 14 Guests are viewing this topic.

Offline Gertjan

  • Regular Contributor
  • *
  • Posts: 134
  • Country: nl
Re: Program that can log from many multimeters.
« Reply #3450 on: May 20, 2024, 04:50:13 pm »
It sort of is there, but not in the configuration. In the .bat file that can be used to start TC you can specify some command line options, including paths. This also means you can create multiple .bat files to start with different directories.

Hi HKJ,

Thank you! I tested immediately, and it works.
At first it did not, because there are spaces in my path, But with the pathname in quotes it is working fine:
Code: [Select]
start javaw -jar TestController.jar dataDir="D:\Mijn documenten\TestController\Metingen GJM" %1 %2 %3 %4 %5 %6 %7 %8 %9
I wish I asked earlier, because last month I used TC every day, all day long, restarting many times :).

Still I think it is a good idea to put this on the configuration tab. Just because a lot of users will not find it in the batch file. It would make TestContoller easier to use for those people who do not look deeper or read documentation. (=most people? :))

To keep the "you can create multiple .bat files to start with different directories" functionality, the batch file could override the path setting in the configuration tab.

regards, Gertjan.
 

Offline pieter155

  • Newbie
  • Posts: 4
  • Country: nl
Re: Program that can log from many multimeters.
« Reply #3451 on: May 22, 2024, 11:19:02 am »
Dear all, just registered myself on this forum.
I'm trying to use Testcontroller in combination with an Siglent SDS2202X-E oscilloscope via Ethernet. Just for logging some DC voltages on both channels.

The automatic device detection works, altough no data is coming through. On the Siglent I enabled RMS and PK-PK measurements and in Testcontroller I selected a few lines on the tab 'Current values', but still no data is visible in Testcontroller.

Does any of you have tried a Siglent oscilloscope with Testcontroller?

The program only shows: ';; SDS2202XE: Rx as numbers <No data (timeout?)>'
A linktest gives: ';;T2AISWelcome to the SCPI instrument 'Siglent SDS2202X-E''

The author of the 'SiglentSDSxxxxxx.txt' configuration is 'MikeLud'. Is there a way to get in touch with this person? Maybe he is also active on EEVBlog?

Thanks!

Screenshot:
https://www.dropbox.com/scl/fi/sev19a7so16553hrfh1rq/Testcontroller1.jpg?rlkey=yae8xo077zt12vsle3hzekp5x&dl=0
 

Online KungFuJosh

  • Super Contributor
  • ***
  • Posts: 1996
  • Country: us
  • TEAS is real.
Re: Program that can log from many multimeters.
« Reply #3452 on: May 22, 2024, 02:09:57 pm »
I'm trying to use Testcontroller in combination with an Siglent SDS2202X-E oscilloscope via Ethernet. Just for logging some DC voltages on both channels.

Is there anything showing up on the Current Values tab? What happens if you enable logging? Have you looked at the Scales for chart tab to setup what you want to chart?
"I installed a skylight in my apartment yesterday... The people who live above me are furious." - Steven Wright
 

Offline pieter155

  • Newbie
  • Posts: 4
  • Country: nl
Re: Program that can log from many multimeters.
« Reply #3453 on: May 22, 2024, 09:05:33 pm »
Hi thanks for your response.

Just performed some additional testing. Tab Current Values only gives zero's. I've tried different settings (AC and DC coupling) but no luck here.
The Mode and Setup controls are working without any issues. Turning on/off both CH1 and CH2 works fine and can be observed from the DSO screen.
Note that there is a signal connected to the CH1 input for testing.

When I try to modify the V/DIV setting I can see this happening and the debug window shows some proper communication.

Logging doesn't give any difference unfortunately. I only see zero's here as well.

I'm curious to see if this definition/driver would work with another type of Siglent DSO. Did any of you here tried this before?

Some screenshots of todays testing:

https://www.dropbox.com/scl/fi/m0cu4mu7he77lvr8q1qpq/TC2-channel-setup.jpg?rlkey=dwe88d2qmogz996hcva488uo4&dl=0

https://www.dropbox.com/scl/fi/hjsr6jrp7sme8zf2qqdg7/TC3-currentvalues.jpg?rlkey=h72rgyigsl7xziyaoejlzxuqc&dl=0

https://www.dropbox.com/scl/fi/76ni3imrfbn4m41ci3ggz/TC4-Table-with-logging-enabled.jpg?rlkey=e2e3mzikmdn8mvs27m2trsok4&dl=0

https://www.dropbox.com/scl/fi/48edh4mhc4cxmf4thtafn/TC5-Debugging-set-values-test.jpg?rlkey=5360vbcby101blwol1xc50gho&dl=0
 

Online KungFuJosh

  • Super Contributor
  • ***
  • Posts: 1996
  • Country: us
  • TEAS is real.
Re: Program that can log from many multimeters.
« Reply #3454 on: May 22, 2024, 10:17:22 pm »
AFAIK, The idString at the start of each device definition needs to match that of the device you want to connect. If it doesn't exist, it won't be auto detected.
"I installed a skylight in my apartment yesterday... The people who live above me are furious." - Steven Wright
 

Offline gby

  • Regular Contributor
  • *
  • Posts: 248
  • Country: us
Re: Program that can log from many multimeters.
« Reply #3455 on: May 24, 2024, 03:30:56 am »
Hi HKJ,

Attached is a driver file for the Tasi 4 channel thermocouple data logger to be included with the next TestController release.

See https://www.eevblog.com/forum/testgear/tasi-ta612c-4-channel-thermocouple-data-logger-short-review/ for a short review of this thermocouple data logger.

Also, I have made a small update to the Kollmorgen AKD2G servo driver file.  Please substitute this attached file in the next TestController release.

Thanks.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2975
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #3456 on: May 24, 2024, 07:31:57 am »
Still I think it is a good idea to put this on the configuration tab. Just because a lot of users will not find it in the batch file. It would make TestContoller easier to use for those people who do not look deeper or read documentation. (=most people? :))

I have added a note on about command line options on the help page for TC configuration, I hope it makes it easier to discover.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2975
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #3457 on: May 24, 2024, 07:46:22 am »
Attached is a driver file for the Tasi 4 channel thermocouple data logger to be included with the next TestController release.

See https://www.eevblog.com/forum/testgear/tasi-ta612c-4-channel-thermocouple-data-logger-short-review/ for a short review of this thermocouple data logger.

Also, I have made a small update to the Kollmorgen AKD2G servo driver file.  Please substitute this attached file in the next TestController release.

Thanks, I will update/include in next release.
 

Offline thooker

  • Newbie
  • Posts: 5
Re: Program that can log from many multimeters.
« Reply #3458 on: May 27, 2024, 01:59:17 am »
I have a Siglent SDL1020 that I would like to automate in a battery test system for multiple charge/discharge cycles.  Can TestController start the load in the battery test mode, then determine when the load has stopped the test, and then click a series of relays (like from ControlByWeb) in order to disconnect the load and charge the battery, and then deenergize the relays and start the test again?
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2975
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #3459 on: May 27, 2024, 10:52:25 am »
I have a Siglent SDL1020 that I would like to automate in a battery test system for multiple charge/discharge cycles.  Can TestController start the load in the battery test mode, then determine when the load has stopped the test, and then click a series of relays (like from ControlByWeb) in order to disconnect the load and charge the battery, and then deenergize the relays and start the test again?

Yes (It is sort of designed for that kind of stuff), but not directly from a popup, you will have to write a script.
TC can help your with that. The "Log Event" popup can generate a script (Right click in log window and select Generate script when Log Event is filled). This way you can generate a script for charging and one for discharging.
For relays use a Arduino and my example here: https://lygte-info.dk/project/TestControllerArduino2%20UK.html#Digital_input_and_output_module and add relays to it.

You need to combine the charge/discharge scripts and the relay control in one script file and if you want to be fancy you can add a popup menu to ask for parameters.
 
The following users thanked this post: thooker

Offline Pukker

  • Regular Contributor
  • *
  • Posts: 153
  • Country: nl
Re: Program that can log from many multimeters.
« Reply #3460 on: May 27, 2024, 11:00:44 am »
I have a Siglent SDL1020 that I would like to automate in a battery test system for multiple charge/discharge cycles.  Can TestController start the load in the battery test mode, then determine when the load has stopped the test, and then click a series of relays (like from ControlByWeb) in order to disconnect the load and charge the battery, and then deenergize the relays and start the test again?

When you have an powersupply that is capable for charging and it works with Testcontroller, you can start the the powersupply to charge when the Sigilent stops discharging and so on.
 
The following users thanked this post: thooker

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2975
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #3461 on: May 27, 2024, 11:24:30 am »
When you have an powersupply that is capable for charging and it works with Testcontroller, you can start the the powersupply to charge when the Sigilent stops discharging and so on.

That is the best solution, but you can get away with switcher a charge in/out with a relay. You can get the battery voltage from the load, but will miss the charge current.
 
The following users thanked this post: thooker

Offline fricci

  • Contributor
  • Posts: 21
  • Country: it
Re: Program that can log from many multimeters.
« Reply #3462 on: May 27, 2024, 03:55:39 pm »
Hello,
first of all my compliments to HKJ for the beautiful Test Controller software.

Although I successfully used it with several devices, now I would like to interface it to a custom device so I need to add an appropriate definition file. Unfortunately I don't know how to do it.....  :-[
I look at the Test Controller documentation but it is not easy to understand without experience in SCPI interfacing.

At the moment my goal is to write a very simple definition file for reading 3 modbus register. I don't need to select any function or range for the custom device (the device does not provide any mode/range selection), simply read the value of 3 modbus register (word) at address 0x8006, 0x8007, 0x8008 of a device with Modbus slave Id 254.
I can do it without issue using Modbus Poll software, but I would like to have a basic but working definition file for TestController allowing to connect to the device and to see the 3 values in the Current Values tab to take as a starting point to create a more complex definition file. 

I tried to wrote the following few rows for defining the new device, but I am not sure they are correct and moreover I don'know how to complete it. I don't want TestController checks for idString, it has just to connect to the specific slave ID to retrieve the desired register values.

#idString GS,A3
#name GS A3
#handle A3

#driver Modbus
#driver Ascii

#port comfixedbaud
#baud 19200E81

How to go on further?
I suppose I have to use something like a "scpiCmd holding? 0x8006" command, but I didn't understand how to do it to have the desired values shown in the Current Values tab.


A big thanks to all for your help.
 

Offline thooker

  • Newbie
  • Posts: 5
Re: Program that can log from many multimeters.
« Reply #3463 on: May 28, 2024, 05:19:51 am »
The battery is a drone 3S, 650mAh LiPo.  We have an Amazon charger, which the process is 1) connect the battery 2)connect the balance connector 3) press and hold the Start button.  I would need to write a script to do all of that with a relay.  After it finishes charging, I would need to use relays to remove the charger, and connect the DC Load, and start its test.  After the test, I would need to repeat the process.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2975
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #3464 on: May 28, 2024, 05:44:02 am »
How to go on further?
I suppose I have to use something like a "scpiCmd holding? 0x8006" command, but I didn't understand how to do it to have the desired values shown in the Current Values tab.

You can only specify one driver, get rid of the "#driver Ascii" line

You need to specify the data columns:
#value Value1 Unit D2
#value Value2 Unit D2
#value Value3 Unit D2

The scpi commands looks like this:
#scpiCmd Value1? holding?  0x8006 /100
#scpiCmd Value2? holding?  0x8007 /100
#scpiCmd Value3? holding?  0x8008 /100

The /100 is a scale factor and will probably be different for you, it can also be left out when no scaling is required (It is possible to do more advanced data processing in the command when necessary).


And you need a statement to read the data:

#askValues Value1;Value2;Value3;

This makes the definition look like this:
Quote
#idString GS,A3
#name GS A3
#handle A3

#driver Modbus

#port comfixedbaud
#baud 19200E81

#value Value1 Unit D2
#value Value2 Unit D2
#value Value3 Unit D2

#scpiCmd Value1? holding?  0x8006 /100
#scpiCmd Value2? holding?  0x8007 /100
#scpiCmd Value3? holding?  0x8008 /100

#askValues Value1;Value2;Value3;


You can find a example of modbus in "RidenRD60xx.txt and "Kunkin KP184.txt"

 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2975
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #3465 on: May 28, 2024, 05:45:52 am »
The battery is a drone 3S, 650mAh LiPo.  We have an Amazon charger, which the process is 1) connect the battery 2)connect the balance connector 3) press and hold the Start button.  I would need to write a script to do all of that with a relay.  After it finishes charging, I would need to use relays to remove the charger, and connect the DC Load, and start its test.  After the test, I would need to repeat the process.

You do not need to remove the DC Load when charging, just disable it.
 

Offline fricci

  • Contributor
  • Posts: 21
  • Country: it
Re: Program that can log from many multimeters.
« Reply #3466 on: May 28, 2024, 02:31:44 pm »
You can only specify one driver, get rid of the "#driver Ascii" line

You need to specify the data columns:
#value Value1 Unit D2
#value Value2 Unit D2
#value Value3 Unit D2

The scpi commands looks like this:
#scpiCmd Value1? holding?  0x8006 /100
#scpiCmd Value2? holding?  0x8007 /100
#scpiCmd Value3? holding?  0x8008 /100

The /100 is a scale factor and will probably be different for you, it can also be left out when no scaling is required (It is possible to do more advanced data processing in the command when necessary).


And you need a statement to read the data:

#askValues Value1;Value2;Value3;

This makes the definition look like this:
Quote
#idString GS,A3
#name GS A3
#handle A3

#driver Modbus

#port comfixedbaud
#baud 19200E81

#value Value1 Unit D2
#value Value2 Unit D2
#value Value3 Unit D2

#scpiCmd Value1? holding?  0x8006 /100
#scpiCmd Value2? holding?  0x8007 /100
#scpiCmd Value3? holding?  0x8008 /100

#askValues Value1;Value2;Value3;


You can find a example of modbus in "RidenRD60xx.txt and "Kunkin KP184.txt"

HKJ, thank you very much for your help.
I begin to understand a bit more........ anyway I don't understand how to address a specific modbus slave device (I don't see any slave ID parameter in your code). For example how can I retrieve the described registers value from a modbus device with slave ID 5?
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2975
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #3467 on: May 28, 2024, 03:22:13 pm »
HKJ, thank you very much for your help.
I begin to understand a bit more........ anyway I don't understand how to address a specific modbus slave device (I don't see any slave ID parameter in your code). For example how can I retrieve the described registers value from a modbus device with slave ID 5?

You can use "address 5" on the TC command line to switch to modbus address 5
Default address is 1
It can also be added to the definition, but it is a command so it must be added on a # statement like:
#initCmd address 5
 

Offline fricci

  • Contributor
  • Posts: 21
  • Country: it
Re: Program that can log from many multimeters.
« Reply #3468 on: May 28, 2024, 06:38:08 pm »
Unfortunately, I didn't succeed to make it working.
After connecting, I always get "Rx as numbers <No data (timeout?)>". Sigh....
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2975
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #3469 on: May 28, 2024, 07:48:45 pm »
Unfortunately, I didn't succeed to make it working.
After connecting, I always get "Rx as numbers <No data (timeout?)>". Sigh....

Try using TC in debug mode, this will list the actual communication.
 

Offline fricci

  • Contributor
  • Posts: 21
  • Country: it
Re: Program that can log from many multimeters.
« Reply #3470 on: May 29, 2024, 05:50:20 am »
Try using TC in debug mode, this will list the actual communication.

Thank you again for your help, HKJ.
Starting TC in debug mode I got the following messages from the console:
;; Start thread for: COM6 - GS A3
;; COM6: Set params: 9600
;; COM6: Tx <address 5>
;; Found GS A3 on USB-RS485 Cable (COM6)
;; A3: Tx <Value1>
;; A3: Tx <Value2>
;; A3: Tx <Value3>
;; A3: Rx as numbers <No data (timeout?)>
;; A3: Tx <Value1>
;; A3: Tx <Value2>
;; A3: Tx <Value3>
;; A3: Rx as numbers <No data (timeout?)>

What sounds odd is the message "COM6: Set params: 9600". The definition file contains the statements:
#port comfixedbaud
#baud 19200E81
because the device uses 19200 as baud rate (8 data bits, even parity, 1 stop bit).
 

Offline the Chris

  • Contributor
  • Posts: 39
  • Country: de
Re: Program that can log from many multimeters.
« Reply #3471 on: May 29, 2024, 07:37:18 am »
;; A3: Tx <Value3>
;; A3: Rx as numbers <No data (timeout?)>

The "Rx as numbers" appears because the string "<Value3>" was transmitted instead of a numer. It looks like there is a replacement of the placeholder "<Value3>" by a numeric value missing. Use the command window to try to transmit a numeric value instead, followed by an Rx command to see if that works out.
 

Offline fricci

  • Contributor
  • Posts: 21
  • Country: it
Re: Program that can log from many multimeters.
« Reply #3472 on: May 29, 2024, 02:31:33 pm »
The "Rx as numbers" appears because the string "<Value3>" was transmitted instead of a numer. It looks like there is a replacement of the placeholder "<Value3>" by a numeric value missing. Use the command window to try to transmit a numeric value instead, followed by an Rx command to see if that works out.
It sound like no values are received at all.........
exactly the same messages I can see when the device is powered off.
First of all I think it is important to understand if TC sets the necessary baud rate (19200, Even, 8, 1) and the debug message ";; COM6: Set params: 9600" sounds weird.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2975
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #3473 on: May 30, 2024, 07:23:51 am »
Thank you again for your help, HKJ.
Starting TC in debug mode I got the following messages from the console:
;; Start thread for: COM6 - GS A3
;; COM6: Set params: 9600
;; COM6: Tx <address 5>
;; Found GS A3 on USB-RS485 Cable (COM6)
;; A3: Tx <Value1>
;; A3: Tx <Value2>
;; A3: Tx <Value3>
;; A3: Rx as numbers <No data (timeout?)>
;; A3: Tx <Value1>
;; A3: Tx <Value2>
;; A3: Tx <Value3>
;; A3: Rx as numbers <No data (timeout?)>

What sounds odd is the message "COM6: Set params: 9600". The definition file contains the statements:
#port comfixedbaud
#baud 19200E81
because the device uses 19200 as baud rate (8 data bits, even parity, 1 stop bit).

Something is completely wrong.

I did not catch it at first but:
#baud 19200E81
is wrong, it is
#baudrate 19200E81

The log is supposed to log something like:
Tx: AA 00 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 CB
Rx: AA 00 12 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3C
I.e. with hex codes.

That probably means that it is not using the Modbus driver. Also note that Modbus exist in multiple version, the default is RTU, but there is also a Ascii and a LAN version that can be selected with a #subDriver statement.
 

Offline fricci

  • Contributor
  • Posts: 21
  • Country: it
Re: Program that can log from many multimeters.
« Reply #3474 on: May 30, 2024, 02:55:23 pm »
Something is completely wrong.

I did not catch it at first but:
#baud 19200E81
is wrong, it is
#baudrate 19200E81

The log is supposed to log something like:
Tx: AA 00 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 CB
Rx: AA 00 12 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3C
I.e. with hex codes.

That probably means that it is not using the Modbus driver. Also note that Modbus exist in multiple version, the default is RTU, but there is also a Ascii and a LAN version that can be selected with a #subDriver statement.

As I supposed, I wrote a statement using a wrong syntax...... I apologize for that.
I rewrote the following  very simplified definition file, retriving just one register (Firmware):

#idString GS,A3
#name GS A3
#handle A3
#driver Modbus
#port comfixedbaud
#baudrate 19200E81
#value Firmware Unit INT
#initCmd address 5
#scpiCmd Firmware? holding? 0x8000
#askValues Firmware;

Now something begin to work, starting TC in debug mode, if I type Firmware?  in the command line, I get:

Starting
;; jSerialComm version: 2.10.3
;; Start thread for: COM6 - GS A3
;; COM6: Set params: 19200E81
;; COM6: Tx <address 5>
;; Found GS A3 on USB-RS485 Cable (COM6)
Firmware?
;; A3: Tx <Firmware?>
;; A3: Tx <holding?  0x8000>
;; COM6: Tx: 05 03 80 00 00 01 AC 4E
;; COM6: Rx: 05 03 02 01 20 49 CC
;; A3: Rx <288>
;; 288

which is correct (except I would like to show it as an hex).
Anyway, selecting the tab "Current Values" I get an infinite number of message like:

;; A3: Tx <Firmware>
;; A3: Rx as numbers <No data (timeout?)>
;; A3: Tx <Firmware>
;; A3: Rx as numbers <No data (timeout?)>

What is going on? I think I missed something.......
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf