
В данном тексте я выполнил обзор одного широко известного и распространенного мультиметра модели XDM1241.
У меня уже был текст про то, как управлять лабораторным блоком питания. Теперь надо понять как управлять мультиметром.
Будучи ВУЗовцем, у нас был курс Advanced Electronic Tеchnique. Суть лабораторных работ была в том, чтобы взять электронную плату, придумать для нее авто‑тест, подключить всю измериловку (осциллограф, блок питания, DMM, генератор сигналов и прочее) к PC, написать скрипт и протестировать электронную плату этим скриптом. Из 20 плат надо было выявить одну бажную. Я тогда тестировал генератор на таймере 555. Проверял амплитуду, частоту, скважность и прочее.
При тестировании электронных плат на производстве часто надо делать множество однообразных измерений напряжений. Например для проверки линейности ADC пинов на автомобильных ECU надо прочитать множество измерений на всем рабочем диапазоне. Чтобы исключить человеческий фактор, надо автоматизировать данную рутинную задачу. Для этого надо как‑то заставить мультиметр работать по электрическим командам, нежели через кнопки на HMI. В связи с этим возникает следующая задача:
Постановка задачи
Научиться опрашивать DMM XDM1241 по последовательному порту. Научиться измерять напряжения без использования HMI на лицевой панели.
Какие команды надо отправлять на XDM1241 по последовательному COM порту, чтобы прибор выдавал в ответ напряжение на клеммах?
Аппаратная часть
Как можно заметить, с оборотной стороны прибора присутствует USB‑B разъём. Это для управления прибором. Надо соединить DMM и LapTop PC кабелем от принтера.

Управление буду производить по проводам (Drive‑by‑Wire). С обратной стороны заложен USB‑B штекер для соединения DMM и LapTop. Внутри себя прибор использует чип CH340.
Программная часть
При соединении DMM и LapTop PC принтерным кабелем в Windows появляется виртуальный последовательный порт. У меня выскочил COM11. При переключении через USB HUB стал COM4.

Битовая скорость последовательного порта задается через HMI кнопками Utility → Next → Serial. По умолчанию там применяется битовая скорость 115 200 бит в секунду.
Протокол SCPI
Для управления мультиметром XDM1241 по COM‑порту (без использования HMI), прибор использует стандартный протокол SCPI (Standard Commands for Programmable Instruments). Это очень старый протокол. SCPI — это текстовый протокол. По сути — CSV строки. Работает по принципу запрос‑ответ.

Каждый запрос должен заканчиваться байтом 0x0A. Это ASCII символ возврата каретки LF. Он же \r. Ответ заканчивается байтами 0x0D 0x0A. Убедиться, что интерфейс живой, можно при помощи утилиты HTerm и команды *IDN?.
Перед Вами система команд для управления мультиметром. В принципе, этого должно быть достаточно для 99% задач.
Запрос |
Ответ |
Пояснение |
*IDN? |
OWON,XDM1241,xxxxxxxx,V4.1.0,3 |
Получение информации о приборе |
CONF:VOLT:DC AUTO |
ничего |
Переключиться на режим измерения напряжений постоянного тока |
CONF:CURR:DC |
ничего |
Переключиться на режим измерения силы постоянного тока |
CONF:CAP |
ничего |
Переключиться на режим измерения ёмкости конденсатора |
CONF:FREQ |
ничего |
Переключиться на режим измерения частоты |
CONF:RES |
ничего |
Переключиться на режим измерения сопротивления |
CONF:TEMP |
ничего |
Переключиться на режим измерения температуры |
*RST |
ничего |
Перезагрузка прибора |
MEAS? |
-4.008602E-05 |
прочитать напряжение |
MEAS? |
1.197084E+01 |
прочитать напряжение |
MEAS1? |
1.197065E+01 |
Запрос значения на основном экране |
FUNC? |
«VOLT» или «RES» или «CURR» или «CAP» или «FREQ» или «TEMP» |
Запрос текущей функции |
FUNC1? |
“TEMP” |
Запрос текущего режима измерения |
FUNC2? |
NONe |
второй дисплей выключен |
RANGE1? |
50 V |
Запрос текущего диапазона на основном дисплее |
RATE? |
S |
Запрос текущей частоты дискретизации |
MEAS:VOLT? CH1 |
2.978931E+01 |
Как можно заметить, XDM1241 мультиметр возвращает действительное число в научном формате. То есть с мантиссой и экспонентой (например 2.978931E+01). Поэтому Ваша клиентская программа должна уметь распознавать число из такой строки. Про то, как делать синтаксический разбор числа из строки, есть отдельный текст: Техникум: Распознавание Вещественного Числа из Строчки. Если коротко, то это делает отдельный конечный автомат.
Я написал консольную утилиту xdm1241.exe, которая позволяет измерять напряжения на входе DMM. Утилита сама вызывает все нужные команды и просто выдает физическую величину в консоль. Аргументы очень просты. Вот пример типичной команды xdm1241_get 4 VOLT
Порядковый номер аргумента |
Пояснение |
Допустимые значения |
1 |
Номер COM порта |
0.... N |
2 |
режим измерения |
VOLT; RES; CURR; CAP; FREQ или TEMP |
Благодаря этой tool‑е можно буквально одной строчкой управлять прибором.

Недостатки XDM1241
У мультиметра XDM1241 нет внутри акселерометра. Если поставить прибор вертикально (что интуитивно естественно для мультиметров), то экран не делает транспонирование изображения, как мы привыкли это видеть на всех смартфонах и планшетных компьютерах. При этом в вертикальном положении прибор, как блок питания, занимает меньше места на столе.
Протокол SCPI интуитивно непонятный. Нет как таковой help команды. Прибор сам про себя ничего рассказать не способен. Протокол SCPI реализован в приборе тоже далеко не полностью. На ключевые команды даже нет ответа по serial интерфейсу, что провоцирует мысли об осечке. Пришлось прибегнуть у реверс инжинирингу, чтобы хоть приблизительно понять, как управлять данным мультиметром. Лучше бы разработчики просто реализовали классический интерфейс командной строки, с командой help.
Итоги
Удалось опрашивать измеренное XDM1241 напряжение по последовательному порту через текстовый протокол SCPI. Это открывает прямую дорогу для проведения огромного количества последовательных автоматических тестов электронной аппаратуры в условиях массового конвейерного производства.
Ссылки
Название |
URL |
XDM1241, Портативный настольный цифровой мультиметр с аккуммулятором |
https://www.chipdip.ru/product/xdm1241-portativnyy‑nastolnyy‑tsifrovoy‑multimetr‑s‑owon-9001094063 |
Программирование блока питания АКИП-1160/6 (или Drive‑by‑Wire) |
|
Техникум: Распознавание Вещественного Числа из Строчки |
|
Утилита xdm1241.exe |
|
HTerm is a terminal program for serial communication |
|
Синтаксический разбор CSV строчек |
|
Японский мультиметр‑калькулятор Hioki 3208 |
|
Почему нам нужен интерфейс командной строки? |
|
Измерительные приборы под контролем — универсальный SCPI‑драйвер управления: Python + Keysight, АКИП, R&S |
|
Использование SCPI команд стандарта LXI для автоматического управления измерительными приборами |
Словарь
Сокращение |
Пояснение |
ADC |
Analog‑to‑Digital Converter |
SCPI |
Standard Commands for Programmable Instruments |
ECU |
Electronic Control Unit |
DMM |
Digital Multimeter |
HMI |
Human‑Machine Interface |
DC |
Direct current |
USB |
Universal Serial Bus |
КИП |
Контрольно‑измерительные приборы |
Вопросы
1) Зачем в UART 2 стоповых бита, если это только замедляет битовую скорость? Это для режима передачи по DMA. Чтобы можно было подключаться к UART в середине трансляции по DMA и найти начало байта для синхронизации приема.
2) Как заставить DMM XDM1241 переключить режим измерения? Например, с VOLT на RES, или с CURR на FREQ? Какие SCPI команды надо исполнить для переключения режима измерений? CONF:CAP;CONF:VOLT и тому подобное
Комментарии (7)

Coder007
07.09.2026 15:39Отличная статья, которая отражает как можно нормально работать с более-менее интеллектуальным прибором при помощи практически "АТ" - команд (утрирую конечно, но протокол текстовый, поэтому такая ассоциация)
Особенно приятно, когда эти команды описаны в мануале.
А такой вопрос: практически применяли утилиту в реальных "боевых" условиях, как мне кажется, немного неудобно, если это просто мультиметр. Если я хочу измерить ток, то нужно или на нем переключить режим, или при помощи утилиты.
Вот если бы голосом можно было бы переключать, то есть резон...
Никогда не сталкивался с таким мультиметром, может и хорошо ))). Честно, для первого впечатления, мультиметр не особо понравился, места занимает много, привязка к рабочему месту жесткая. Больше ничего не могу сказать, так как не использовал.
Как всегда у aabzel красивая и четкая статья, с полным и отличным описанием. Спасибо большое!

aabzel Автор
07.09.2026 15:39Утилита задаёт физическую величину измерения вторым аргументом.
Можно выбирать ток, ёмкость, частоту, температуру, напряжение и сопротивление.
При изменении режима внутри прибора издается звонкий щелчок.

aabzel Автор
07.09.2026 15:39Вот если бы голосом можно было бы переключать, то есть резон...
яндексы в 2019 обещали выпустить модуль алисдуино для преобразования голоса в uart символы, однако так и не осилили.

aabzel Автор
07.09.2026 15:39Как консольная утилита может вернуть float число вызывающей программе? Файлы не использовать.
Reason89
Очень не удобный прибор.
Особенно добивает автоматическое переключение с mV на V. А обратно уже надо ручками переключать.
Абсолютно не понятно как сунули акселерометр в минусы. Экран не сенсорный, управляется обычными кнопками, которые расположением завязаны к экрану. Я честно говоря даже не встречал приборов лабораторных, где экран переворачивался бы.
aabzel Автор
Надеюсь прекрасные мультиметры будущего станут делать с аксами.