вторник, 13 мая 2025 г.

Обзор программы Test Controller

Открыл для себя программу Test Controller которая предназначена для управления и регистрации данных с различных устройств (мультиметры, источники питания, электронные нагрузки). На момент обзора актуальная версия Test Controller V2.58.

У программы неплохой список поддерживаемого оборудования и возможность добавить поддержку нового устройства через текстовые конфигурационные файлы. Если сравнивать с Sigrok, то не придётся писать код и затем его компилировать. Я уже добавлял минимальную поддержку настольного мультиметра Agilent U3402A в libsigrok и это заняло несколько дней. В случае Test Controller процесс должен быть сильно проще.

Для демонстрации возможностей программы я добавлю поддержку измерителя ёмкости аккумуляторов (схема, корпус, тестирование) и сниму разрядную характеристику для аккумулятора от робота-пылесоса.

Test Controller написана на Java и будет работать в Windows, Linux и MacOS. У меня уже установлена Java 17, но установка с нуля для Debian 12 не должна вызывать проблемы:

$ sudo apt-get update
$ sudo apt-get install openjdk-17-jre
$ java -version
openjdk version "17.0.15" 2025-04-15
OpenJDK Runtime Environment (build 17.0.15+6-Debian-1deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.15+6-Debian-1deb12u1, mixed mode, sharing)

Скачиваю дистрибутив с сайта lygte-info.dk и распаковываю в директрорию ~/.local/ (все сторонние программы я устанавливаю в директорию ~/.local/ вместо /opt/ или /usr/local/):

$ wget https://lygte-info.dk/pic/Projects/TestController/TestController.zip
$ mkdir ~/.local/TestController/
$ unzip -d ~/.local/TestController/ TestController.zip
$ chmod +x ~/.local/TestController/{tcrun,tcrundebug}

Последняя команда не обязательна, если использовать запуск через меню окружения рабочего стола:

$ cat > ~/.local/share/applications/TestController.desktop <<_EOF_
[Desktop Entry]
Name=Test Controller
Path=$HOME/.local/TestController/
Exec=java -jar $HOME/.local/TestController/TestController.jar
Icon=$HOME/.local/TestController/TestController.png
Categories=Development
Version=1.0
Type=Application
Terminal=false
StartupWMClass=dk-hkj-main-Main
_EOF_

Измеритель ёмкости аккумуляторов поддерживает команды SCPI. Чтобы добавить его поддержку нужно создать файл ~/TestController/Devices/Power Monitor.txt и добавить в него описание устройства

$ cat > "~/TestController/Devices/Power Monitor.txt" <<_EOF_
#idString Andrei Tataranovich,Power Monitor,
#name Power Monitor
#handle PowerMonitor
#port com
#baudrate 9600
#driver SCPI
#eol \r\n

#value Current A D3
#value Voltage V D3

#askValues MEAS:CURR?;MEAS:VOLT?

#outputOff SYST:OUT OFF
_EOF_

Для начала добавил только получение показаний напряжения (MEAS:VOLT?) и тока (MEAS:CURR?) и отключение выхода (SYST:OUT OFF).

Документация по добавлению нового устройства есть для устройств поддерживающих протокол SCPI и для не-SCPI устройств.

После создания конфигурации для нового устройства нужно запустить программу, добавить устройство "Power Monitor" на вкладке "Load devices" и нажать кнопку "Reconnect"

Если всё сделано верно, то на вкладке "Commands" появится сообщение ";; Found Power Monitor on USB Serial (ttyUSB0)". Я отправил несколько команд устройству через строку слева от кнопки "Popups" и ответ виден в текстовом поле.

На вкладке "Current values" можно увидеть текущие показания напряжения и тока которые были настроены в конфигурации устройства

Чтобы начать регистрацию данных нужно настроить режим работы устройства (в Test Controller есть управление режимами работы, но я пока не разбирался с этим), вернуться на вкладку "Commands" и нажать кнопку "Log".

По мере записи данных они появляются в табличном виде на вкладке "Table" и при этом становятся активны вкладки "Chart", "Histogram" и "Range".

На вкладке "Table" можно выбрать какие колонки отображать

Поддерживается сохранение и загрузка значений а также импорт и экспорт в формате CSV. При импорте/экспорте можно настроить какие колонки сохранить и в каком формате.

На вкладке "Chart" данные представлены в виде графика

Поддерживается выбор данных которые нужно отображать на графике. Есть возможность ограничить показ части данных (параметры "First sample to display" и "Last sample to display") и сохранить изображение в формате PNG.

На вкладке "Histogram" данные представлены в виде гистограммы

Можно выбрать какие данные отображать на гистограмме, показать определённую часть данных (аналогично вкладке "Chart") и сохранить изображение в формате PNG.

На вкладке "Scales for chart" настраивается график

я задал минимальные и максимальные значения для тока и напряжения чтобы график получился более наглядным


 На вкладке "Range" можно проанализировать данные на определённом интервале

Я выбрал диапазон данных от 2-х часов до конца записи.

На вкладке "Math" можно добавить вычисляемые параметры. Например я добавил вычисление мощности через ток и напряжение

После этого со всех вкладках появляется новый параметр "PowerMonitorPower"

Для примера я вывел его на график совместно с напряжением и током.

На вкладке "Remap handles" можно сделать привязку устройств к конкретным идентификаторам. У меня использовалось только одно устройство у которого идентификатор "PowerMonitor", но его можно переназначить к более короткому "pm".

В случае если у вас несколько одинаковых устройств, то их можно назначить на различные идентификаторы, используя серийный номер.

На вкладке "Configuration" можно настроить основные параметры программы

Добавлено 2025-05-14:

Тестер ёмкости аккумуляторов сейчас поддерживает три настройки через команды SCPI:

  • включить или выключить выход
  • задать скорость измерений (медленно, средне, быстро)
  • задать режим измерений (двухпроводной или четырёхпроводной)

В программе есть функциональность для конфигурации устройств - добавлю в файл описания устройства дополнительные секции для этого

#cmdSetup buttonsOn Output
:read: SYST:OUT?
:string:
:write: SYST:OUT #
:tip: Turn output ON or OFF
:updatealloff:
Off OFF
On ON

#cmdSetup radio Mode
:read: CONF:MEAS:MODE?
:string:
:write: CONF:MEAS:MODE #
:tip: Setup measurement mode
2W 2W
4W 4W

#cmdSetup radio Rate
:read: CONF:MEAS:RATE?
:string:
:write: CONF:MEAS:RATE #
:tip: Setup measurement rate
Slow S
Medium M
Fast F

После перезапуска программы на вкладке "Commands" нужно нажать кнопку "Setup" и откроется дополнительное меню

В дальнейшем я планирую попробовать добавить конфигурацию для мультиметра Agilent U3402A который не поддерживает команды SCPI и выполнить регистрацию данных с нескольких устройств одновременно.

Комментариев нет:

Отправить комментарий