Допрос Mastech MS8050 бюджетного цифрового мултиметра
Допрос Mastech MS8050 бюджетного цифрового мултиметра
Уважаемые знатоки,
прошу помочь с пониманием, как правильно допросить одного китайца, а именно - Mastech MS8050. По описанию накатал простейший VI для общения по последовательному порту с помощью VISA, но, пока, получаю только сообщение о TimeOutError.
К вопросу прилагаю описание прибора и его протокола данных: Буду очень признателен.
прошу помочь с пониманием, как правильно допросить одного китайца, а именно - Mastech MS8050. По описанию накатал простейший VI для общения по последовательному порту с помощью VISA, но, пока, получаю только сообщение о TimeOutError.
К вопросу прилагаю описание прибора и его протокола данных: Буду очень признателен.
-
Jakob Brontfeyn
- expert

- Сообщения: 1738
- Зарегистрирован: 28 фев 2008, 11:01
- Награды: 6
- Благодарил (а): 2 раза
- Контактная информация:
Re: Допрос Mastech MS8050 бюджетного цифрового мултиметра
Не заставляй нас скачивать и копаться в чужой документации,
просто опиши, как выглядит посылка опроса
и как выглядит принимаемая посылка,
а может этот "китаец" работает спорадически без опроса...?
а может по интервалу времени...?
просто опиши, как выглядит посылка опроса
и как выглядит принимаемая посылка,
а может этот "китаец" работает спорадически без опроса...?
а может по интервалу времени...?
-
IvanLis
- guru

- Сообщения: 5692
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 35 раз
- Поблагодарили: 129 раз
Re: Допрос Mastech MS8050 бюджетного цифрового мултиметра
я как-то сражался с подобным приборомEndeavour писал(а):прошу помочь с пониманием, как правильно допросить одного китайца
он не начинал передавать данные пока не установишь DTR в "1", а RTS в "0".
Посмотрите здесь: Задержка между Visa Write и Visa Read, но у Вас может быть и иная комбинация.Сигналы последовательных портов писал(а):DTR - Установленный сигнал показывает модему или другому устройству, что модуль последовательного порта готов установить соединение.
RTS - Установленный сигнал информирует модем или другое устройство о том, что модуль последовательного порта готов к обмену данными.
У меня была с ним демо программа и я сниффером внешним подключался и смотрел, как они взаимодействуют с прибором.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение Картинку или Файл
Как добавить в сообщение Видео
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение Картинку или Файл
Как добавить в сообщение Видео
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
Oleg B.
- leader

- Сообщения: 674
- Зарегистрирован: 25 сен 2011, 11:30
- Награды: 2
- Версия LabVIEW: 5 .. 2021
- Откуда: Israel
- Контактная информация:
Re: Допрос Mastech MS8050 бюджетного цифрового мултиметра
Чтобы этот китаец начал что-то передавать через RS-232, надо нажать кнопку "HOLD" на две секунды.
А чтобы перестал - еще раз на две секунды.
А чтобы перестал - еще раз на две секунды.
veni, vidi, phallomorphi
Re: Допрос Mastech MS8050 бюджетного цифрового мултиметра
У меня и мысли не было нагружать вас лишней информацией! Просто мои знания работы с RS232 по скудности сравнимы с описанием этого зверя. Я интерпретировал инфу из Data Format в свой VI, но не был уверен в своей правоте.Jakob Brontfeyn писал(а):Не заставляй нас скачивать и копаться в чужой документации, просто опиши, как выглядит посылка опроса и как выглядит принимаемая посылка, а может этот "китаец" работает спорадически без опроса...? а может по интервалу времени...?
Посылки опроса нет, девайс все время лопочет по последовательному порту то, что у него сейчас на уме.
Спасибо, учёл: DTR = "Asserted", а RTS = "Unasserted".IvanLis писал(а): я как-то сражался с подобным прибором, он не начинал передавать данные пока не установишь DTR в "1", а RTS в "0"...
У меня была с ним демо программа и я сниффером внешним подключался и смотрел, как они взаимодействуют с прибором.
Качнул это убожество, оно даже кое-как работает. А что за сниффер вы использовали? Можно ли такое организовать через "RS232 то USB" + LabView? Или может hyperterminal заставить слушать китайца?
ДА! Именно! Только после этого он и стал лопотать. Теперь вот, пытаюсь распознать, что.Oleg B. писал(а):Чтобы этот китаец начал что-то передавать через RS-232, надо нажать кнопку "HOLD" на две секунды.
А чтобы перестал - еще раз на две секунды.
Выглядит это так: включил коммуникацию по RS-232, выставил модус DCV autorange и подал 17Vdc. В описалове стоит: "Each group datas is made up of 8 bytes, transmitted baud rate is 2400, even parity bit, 8 data bits and 1 start bit,1 stop bit. Ага, установил это в настройках VISA: Пытался считать последовательно по байтам 1. один байт - диапазон, 2. один байт - перегруз, 3. байт - минимум/максимум/нагатив и пять оставшихся - значение.
Работает через раз: сначала - VISA overrun error, затем - есть соединение и данные читаются. Но меняются каждый такт. Чтобы разобраться, что мне всё же китаец посылает, установил чтение до 100 байт. Вот результат: Заметил, что группы байтов разделeны "7D00 A101", а значния пятёрки в группе меняются слабо (не хамелион: трудно отследить показание монитора и DMMа). Могу предположить, это - значение моей напруги. Но! А где же информация о том, что мереется, диапазон, знак/мин/макс?
-
Oleg B.
- leader

- Сообщения: 674
- Зарегистрирован: 25 сен 2011, 11:30
- Награды: 2
- Версия LabVIEW: 5 .. 2021
- Откуда: Israel
- Контактная информация:
Re: Допрос Mastech MS8050 бюджетного цифрового мултиметра
В присланном тобой файле Mastech_MS8050_Data_Format.pdf написано, что первый полубайт(4 бита В7-В4) в блоке данныхКак интерпретировать эти 100 байтов, к сожалению не знаю.
всегда 1010 (0хА)
Поэтому данные разбиваются следующим образом: Сам очень удивился, но блоки получились по 14 байт вместо 8-и.
В указанном случае почти все блоки совершенно идентичны - поэтому попытаюсь "перевести" на наш язык только один
Код: Выделить всё
A101 1000 0106 0908 0400 0000 7D00 - 6 раз
A101 1000 0106 0908 0300 0000 7D00 - 1 разoption2 01 (b000) -? (b00001) - dBm ( автор уверяет, что должен быть DCV - для DCV множитель как раз подходит)
0106 0908 04 -> 16984 -> 16.984V , что близко к установленным 17.0
0106 0908 03 -> 16983 -> 16.983V
A101 1000 0106 0908 0400 0000 7D00
o1o2 o3x1 D4D3 D2D1 D0x2 x3x4 x5x6
x1..x6 -ХЗ(рус)
Больше мне сказать нечего, так как формат представленных данных и его описание не совпадают.
Последний раз редактировалось Oleg B. 01 авг 2012, 20:23, всего редактировалось 1 раз.
veni, vidi, phallomorphi
Re: Допрос Mastech MS8050 бюджетного цифрового мултиметра
Да, пока измеряю DCV. Спасибо, вы подтвердили моё подозрение.option1 A1 А - start of block, (b0001) - множитель, в зависимости от режима измерения (option2,B4-B0), но для dBm такого множителя нет. option2 01 (b000) -? (b00001) - dBm ( автор уверяет, что должен быть DCV)
Простите покорно, но у меня проблема с идентификацией данных: start of block это А, А1 или А101? А end of block будет 7D00, 0 или начло следующего блока? Он же долже, по правилам, кончаться бинарным 0. По какому значнию мне нужно парсер ответа организовать, чтобы срезать нос и хвост?
Я всё ещё не понимаю, где в этих 7 байтах(?) части OPTION1, OPTION2, OPTION3, D4, D3, D2, D1 и D0? Они ведь должны быть разделены 01.
-
Oleg B.
- leader

- Сообщения: 674
- Зарегистрирован: 25 сен 2011, 11:30
- Награды: 2
- Версия LabVIEW: 5 .. 2021
- Откуда: Israel
- Контактная информация:
Re: Допрос Mastech MS8050 бюджетного цифрового мултиметра
Посмотри мой предыдущий пост - я его поправил.Я всё ещё не понимаю, где в этих 7 байтах(?) части OPTION1, OPTION2, OPTION3, D4, D3, D2, D1 и D0? Они ведь должны быть разделены 01.
о1,о2,о3, D4,D3,D2,D1,D0 = OPTION1, OPTION2, OPTION3, D4, D3, D2, D1 и D0 соответственно.
01 - это старт и стоп биты протокола и пользователю они не передаются.
start of block это А!!!!
veni, vidi, phallomorphi
Re: Допрос Mastech MS8050 бюджетного цифрового мултиметра
Всё верно, это показание дисплея DMM с погрешностью моего источника и самого вольтметра, оно не всегда стабильно и прыгает временами.0106 0908 04 -> 16984 -> 16.984 , что близко к установленным 17.0
0106 0908 03 -> 16983 -> 16.983
A101 1000 0106 0908 0400 0000 7D00
o1o2 o3x1 D4D3 D2D1 D0x2 x3x4 x5x6
x1..x6 -ХЗ(рус)
Олег, если я персчитываю DEC ->HEX, то получаю 16984 -> 4258, если же наоборот - 0106 0908 04 -> 1125290901508. По какому правилу вы разгадали ответ китайца? Ваше поясниение "o1o2 o3x1 D4D3 D2D1 D0x2 x3x4 x5x6" я понять не смог.
-
Oleg B.
- leader

- Сообщения: 674
- Зарегистрирован: 25 сен 2011, 11:30
- Награды: 2
- Версия LabVIEW: 5 .. 2021
- Откуда: Israel
- Контактная информация:
Re: Допрос Mastech MS8050 бюджетного цифрового мултиметра
Код: Выделить всё
0106 0908 04
1 6 9 8 4 -> 16984 -> 16.984V
00 -> 0
01 -> 1
02 -> 2
03 -> 3
04 -> 4
05 -> 5
06 -> 6
07 -> 7
08 -> 8
09 -> 9
A101 o1o2
1000 o3x1
0106 D4D3
0908 D2D1
0400 D0x2
0000 x3x4
7D00 x5x6
veni, vidi, phallomorphi
Re: Допрос Mastech MS8050 бюджетного цифрового мултиметра
Олег, спасибо, разжевали-разъяснили: теперь алгоритм понятен.
С вашей подачи начал парсить ответ. Цифирь начала вырисовываться: метод найден, а остальное дело техники.
Так как имею честь общаться с профессионалами, представлю текущие скриншоты: может быть есть более простой способ? Уж больно навороченный парсер вылупился. И это только для напруги, а у китайца еще 20 модусов. И это меня толкает в сомнения.
Буду рад узнать ваше мнение. Прошу смотреть картинки.
С вашей подачи начал парсить ответ. Цифирь начала вырисовываться: метод найден, а остальное дело техники.
Так как имею честь общаться с профессионалами, представлю текущие скриншоты: может быть есть более простой способ? Уж больно навороченный парсер вылупился. И это только для напруги, а у китайца еще 20 модусов. И это меня толкает в сомнения.
Буду рад узнать ваше мнение. Прошу смотреть картинки.
-
Oleg B.
- leader

- Сообщения: 674
- Зарегистрирован: 25 сен 2011, 11:30
- Награды: 2
- Версия LabVIEW: 5 .. 2021
- Откуда: Israel
- Контактная информация:
Re: Допрос Mastech MS8050 бюджетного цифрового мултиметра
Посмотри, что получилось у меня
- Вложения
-
- Read MS8050.vi
- LV 8.0
- (16.47 КБ) 180 скачиваний
veni, vidi, phallomorphi
Re: Допрос Mastech MS8050 бюджетного цифрового мултиметра
Ваше решение оптимальнее, и, к тому же, стабильнее моего. Трудно поверить, но у меня VISA заартачилась, как раз, когда я увидел ваше сообщение!
Итак, наступил следующий этап: распознание режимов китайца. Их там у него аж 21 штука зарезервированна, и (почти) для каждого - свои множетели значений. Я как раз, с этим до конца не разобрался. Прилагаю ваш дополненнный
и "замороженную" версию моего парсера.
Буду очень рад любым предложениям и поправкам!
Итак, наступил следующий этап: распознание режимов китайца. Их там у него аж 21 штука зарезервированна, и (почти) для каждого - свои множетели значений. Я как раз, с этим до конца не разобрался. Прилагаю ваш дополненнный
-
Oleg B.
- leader

- Сообщения: 674
- Зарегистрирован: 25 сен 2011, 11:30
- Награды: 2
- Версия LabVIEW: 5 .. 2021
- Откуда: Israel
- Контактная информация:
Re: Допрос Mastech MS8050 бюджетного цифрового мултиметра
Взломал я этого китайца до конца.
Он передает в каждом блоке 14 байт:
4 байта служебной информации (флаг начала блока, режим, множитель, знак,.....) (opt1,opt2,opt3,opt4)
5 байт данных основного индикатора (D4,D3,D2,D1,D0)
5 байт данных дополнительного индикатора (S4,S3,S2,S1,S0)
opt1- B7..B4 - всегда b1010 (xA) - флаг начала блока
B3..B0 - множитель основного индикатора - зависит от режима работы
opt2 - B4..B0 режим работы
opt3 - опции индикаторов
opt4 - опции дополнительного индикатора
D4,D3,D2,D1,D0 - цифры основного индикатора
S4,S3,S2,S1,S0 - цифры дополнительного индикатора
Ухожу - допишу, когда вернусь
Он передает в каждом блоке 14 байт:
4 байта служебной информации (флаг начала блока, режим, множитель, знак,.....) (opt1,opt2,opt3,opt4)
5 байт данных основного индикатора (D4,D3,D2,D1,D0)
5 байт данных дополнительного индикатора (S4,S3,S2,S1,S0)
opt1- B7..B4 - всегда b1010 (xA) - флаг начала блока
B3..B0 - множитель основного индикатора - зависит от режима работы
opt2 - B4..B0 режим работы
opt3 - опции индикаторов
opt4 - опции дополнительного индикатора
D4,D3,D2,D1,D0 - цифры основного индикатора
S4,S3,S2,S1,S0 - цифры дополнительного индикатора
Ухожу - допишу, когда вернусь
veni, vidi, phallomorphi
