Marathon MR1S и VISA

Простейшие вопросы в области инженерной разработки
Аватара пользователя
ARN1_1
beginner
beginner
Сообщения: 43
Зарегистрирован: 19 янв 2023, 21:04
LabVIEW Version: 2022 Q3
Has thanked: 14 times

Marathon MR1S и VISA

Сообщение ARN1_1 »

Всем привет!

Я столкнулся с проблемой при работе с пирометром, подключенным через RS-485 к PCIE-1620 далее к LabVIEW через VISA.

Когда я пытаюсь использовать функцию VISA Read для получения данных о температуре, появляется ошибка -1073807253 (Hex 0xBFFF006B) с сообщением: "A framing error occurred during transfer".
Снимок экрана 2025-03-06 130443.png
Скорость передачи данных 9600, 8 бит данных, без паритета, 1 стоповый бит (настройки соответствуют документации пирометра).
Команды, отправляемые пирометру, пробовал разные.
В документации предложены такие варианты:
Снимок экрана 2025-03-05 164737.png
Я пробовал добавить символы конца строки (\r и \n) в команду, но ошибка все равно сохраняется.
Тестировал VISA Flush I/O Buffer перед отправкой и чтением данных - не сработало.

В итоге получаю вот такие крякозябры
Снимок экрана 2025-03-05 171103.png
Может быть, кто-то сталкивался с подобной проблемой при работе с пирометрами через RS-485 в LabVIEW?
Буду признателен за любые советы по устранению этой ошибки или дополнительной настройке порта.
Также оставил свой маленький VI и полную документацию к пирометру
You do not have the required permissions to view the files attached to this post.
Аватара пользователя
dadreamer

Activity Professionalism Tutorials Gold Silver
Bronze Black Автор
professor
professor
Сообщения: 3998
Зарегистрирован: 17 фев 2013, 13:33
Medals: 9
LabVIEW Version: 2.5 — 2025
Has thanked: 14 times
Been thanked: 149 times

Re: Marathon MR1S и VISA

Сообщение dadreamer »

ARN1_1 писал(а): 06 мар 2025, 11:37Скорость передачи данных 9600, 8 бит данных, без паритета, 1 стоповый бит (настройки соответствуют документации пирометра).
38400 же по дефолту:
2025-03-06_22-18-21.jpg
Попробуйте сначала добиться нормального обмена в NI-MAX, а уже потом в :labview: . Из практики, framing error довольно редко возникала, причины могут быть такие: всё-таки не полностью правильные настройки порта или проблема с физ. подключением (контакт отпал, провода где-то перепутаны). Также в мануале упоминается заводская утилита, проснифьте её обмен с прибором, сравните настройки.
You do not have the required permissions to view the files attached to this post.
FredP
user
user
Сообщения: 80
Зарегистрирован: 18 апр 2020, 22:22
LabVIEW Version: 2021
Has thanked: 8 times
Been thanked: 14 times

Re: Marathon MR1S и VISA

Сообщение FredP »

Ну тут все ясно как божий день. У пирометра RS-485 а у PCIE-1620 - RS-232. Так работать не будет.

P.S. Я встречался с такой ошибкой. "Удивительно", но в статье на ni.com было правильное решение "проверьте подключение". Контакт был плохой. Осциллограф помог выявить проблему.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2319
Зарегистрирован: 28 июн 2012, 06:32
Medals: 3
LabVIEW Version: 2009..2020
Откуда: город семи холмов
Has thanked: 34 times
Been thanked: 38 times

Re: Marathon MR1S и VISA

Сообщение Borjomy_1 »

Есть еще риск попортить плату. Уровни напряжения могут различаться и сильно

Для подключения по 485 интерфейсу специальная плата не нужна. Достаточно поискать качественный преобразователь RS-485 - USB.
Аватара пользователя
ARN1_1
beginner
beginner
Сообщения: 43
Зарегистрирован: 19 янв 2023, 21:04
LabVIEW Version: 2022 Q3
Has thanked: 14 times

Re: Marathon MR1S и VISA

Сообщение ARN1_1 »

1)К сожалению RS-485 -> USB у меня нет(

2)Поискал плату, которая может работать в режиме RS-485 тоже от PCIE. (PCIE-1622B)

3)Подключение произвожу по COM10 (в моем случае) сделал небольшие настройки и вот что получилось:
Снимок экрана 2025-03-12 111921.png
Далее в документации глянул подключение к клеммневой колодке пирометра(RxA на TxA, RxB на TxB) аналогично и для TxA,TxB
(Если не ошибаюсь, то (R)TxD+ это (R)TxB, (R)TxD- это (R)TxA)

Контакты подключались от DB9 Female ну и логично дальше подсоединился к плате по DB9 Male


Через MAX начал прозванивать пирометр, но встречаю вот такие ошибки:
Снимок экрана 2025-03-12 130323.png
Снимок экрана 2025-03-12 130331.png
Единственное что мне пока нужно - это получить значения температуры, чтобы потом построить график для мониторинга, но пока успехов 0 :suicide:
You do not have the required permissions to view the files attached to this post.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2319
Зарегистрирован: 28 июн 2012, 06:32
Medals: 3
LabVIEW Version: 2009..2020
Откуда: город семи холмов
Has thanked: 34 times
Been thanked: 38 times

Re: Marathon MR1S и VISA

Сообщение Borjomy_1 »

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

поэтому вам надо уже делать пример, который вычитывает все, что поступает.
Аватара пользователя
ARN1_1
beginner
beginner
Сообщения: 43
Зарегистрирован: 19 янв 2023, 21:04
LabVIEW Version: 2022 Q3
Has thanked: 14 times

Re: Marathon MR1S и VISA

Сообщение ARN1_1 »

Сегодня решил опять протестировать, но все равно выкидывает такую же ошибку:
Снимок экрана 2025-03-13 144204.png
А в VI:
Снимок экрана 2025-03-13 165806.png
По предложенным рекомендациям я все подправил, проверил, но почему-то результата нет. Может я подаю не те команды?


Настраивал подключение следующим образом:
Снимок экрана 2025-03-13 142548.png
Connected.png
You do not have the required permissions to view the files attached to this post.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2319
Зарегистрирован: 28 июн 2012, 06:32
Medals: 3
LabVIEW Version: 2009..2020
Откуда: город семи холмов
Has thanked: 34 times
Been thanked: 38 times

Re: Marathon MR1S и VISA

Сообщение Borjomy_1 »

А почему вы решили, что значения должны приходить в текстовом виде?
Аватара пользователя
dadreamer

Activity Professionalism Tutorials Gold Silver
Bronze Black Автор
professor
professor
Сообщения: 3998
Зарегистрирован: 17 фев 2013, 13:33
Medals: 9
LabVIEW Version: 2.5 — 2025
Has thanked: 14 times
Been thanked: 149 times

Re: Marathon MR1S и VISA

Сообщение dadreamer »

ARN1_1 писал(а): 13 мар 2025, 14:02А в VI:
Изображение
А почему в :vi: скорость 9600 стоит? Не знаю, откуда этот :vi: , но в самом :labview: есть примеры по работе с VISA, хотя бы \LabVIEW 20xx\examples\Instrument IO\Serial\Continuous Serial Write and Read.vi. Попробуйте. Также в предыдущих сообщениях я заметил, что в настройках драйвера есть вкладка FIFOs. Посмотрите там, что активированы буферы порта на приём и передачу и у них установлен достаточный размер (4096 байт по умолчанию). Также не забудьте верно выставить терминатор (Termination Character) перед началом сессии.
Аватара пользователя
ARN1_1
beginner
beginner
Сообщения: 43
Зарегистрирован: 19 янв 2023, 21:04
LabVIEW Version: 2022 Q3
Has thanked: 14 times

Re: Marathon MR1S и VISA

Сообщение ARN1_1 »

Borjomy_1 писал(а): 14 мар 2025, 08:12 А почему вы решили, что значения должны приходить в текстовом виде?
Честно скажу вам - это всего лишь пример: "пальцем в небо". RS-485 часто используется для передачи данных в бинарном формате, а не в текстовом (ASCII). Пирометр может передавать данные в бинарном формате (например, температуры в виде целых или вещественных чисел), а не в ASCII, но я не знаю как это реализовать.. и за какие ниточки дергать пирометр..
dadreamer писал(а): 14 мар 2025, 09:06
ARN1_1 писал(а): 13 мар 2025, 14:02А в VI:
Изображение
А почему в :vi: скорость 9600 стоит? Не знаю, откуда этот :vi: , но в самом :labview: есть примеры по работе с VISA, хотя бы \LabVIEW 20xx\examples\Instrument IO\Serial\Continuous Serial Write and Read.vi. Попробуйте. Также в предыдущих сообщениях я заметил, что в настройках драйвера есть вкладка FIFOs. Посмотрите там, что активированы буферы порта на приём и передачу и у них установлен достаточный размер (4096 байт по умолчанию). Также не забудьте верно выставить терминатор (Termination Character) перед началом сессии.

Извините, но я случайно вставил не тот скрин. Конечно должно быть 38.4к боде, но даже так это не решило проблемы. На счет FIFOs я не совсем понял, как настроить достаточный размер (4096 байт по умолчанию)
Снимок экрана 2025-03-14 141442.png
В документации указано время реакции в режиме Setup. Правда я не совсем понял, что это за режим. (На самом пирометре я лишь отдаленно могу предположить, что это переключатель между S (setup) и A) и упоминается переменная n - кол-во символов в строке, включая <CR> <LF> - это я так понимаю завершение сроки \n\r ? (*IDN?\n\r)
Снимок экрана 2025-03-14 142249.png

Сам :vi: нашел на каком-то форуме, когда искал решение своей проблемы:
Снимок экрана 2025-03-14 140553.png
You do not have the required permissions to view the files attached to this post.
Аватара пользователя
dadreamer

Activity Professionalism Tutorials Gold Silver
Bronze Black Автор
professor
professor
Сообщения: 3998
Зарегистрирован: 17 фев 2013, 13:33
Medals: 9
LabVIEW Version: 2.5 — 2025
Has thanked: 14 times
Been thanked: 149 times

Re: Marathon MR1S и VISA

Сообщение dadreamer »

ARN1_1 писал(а): 14 мар 2025, 11:26На счет FIFOs я не совсем понял, как настроить достаточный размер (4096 байт по умолчанию)
Изображение
Здесь только прерывания и контроль потока. Оставьте значения по умолчанию (Defaults). Некоторые драйвера позволяют явно указать размеры буферов, но здесь видимо это не требуется. В параметрах самого порта тоже выставьте всё по умолчанию.
2025-03-14_17-20-54.jpg
ARN1_1 писал(а): 14 мар 2025, 11:26включая <CR> <LF> - это я так понимаю завершение сроки \n\r ? (*IDN?\n\r)
Похоже на то. Только терминатор последним идёт в посылке, и это один байт, так что придётся ставить <LF> \ \r \ 0xA, если только это не настраивается на приборе. Ну, а <CR> можно потом программно из строки удалить.
ARN1_1 писал(а): 14 мар 2025, 11:26Сам :vi: нашел на каком-то форуме, когда искал решение своей проблемы:
Это однократное чтение, вам нужно читать в цикле, как выше уже сказали. Возьмите за основу пример Continuous Serial Write and Read.vi.
You do not have the required permissions to view the files attached to this post.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2319
Зарегистрирован: 28 июн 2012, 06:32
Medals: 3
LabVIEW Version: 2009..2020
Откуда: город семи холмов
Has thanked: 34 times
Been thanked: 38 times

Re: Marathon MR1S и VISA

Сообщение Borjomy_1 »

Использование Bytes at Port все равно что goto в Сях. Один байт передается при скорости 38к за 0.3мс. Время выполнения опроса property в тысячи раз меньше. При этом штатно это значение обновляется с не пойми какой задержкой. И предугадать время, когда придёт заданное число байт невозможно. В результате перегрузка цп впустую.
Необходимо задавать на вход Visa Read константное значение, равное длине посылки. Функция сама выполнится, когда буфер накопит указанное число байт. Либо выйдет по таймауту. А таймаут вы задаете при конфигурировании. И его не надо делать больше секунды.
Аватара пользователя
ARN1_1
beginner
beginner
Сообщения: 43
Зарегистрирован: 19 янв 2023, 21:04
LabVIEW Version: 2022 Q3
Has thanked: 14 times

Re: Marathon MR1S и VISA

Сообщение ARN1_1 »

Ну-с.. начнем..

Во-первых, спасибо ещё раз всем за оказанную помощь, рекомендации.

Во-вторых, я вроде бы начал получать что-то адекватное от пирометра, использовал программу рекомендованную выше от dadreamer и ещё раз перепроверил подключение (Оказывается ошибся с (R)TxA (R)TxB подключением)
Снимок экрана 2025-03-19 110951.png
Хотел бы ещё у вас попросить помощи, а именно:
1) В документации я нашел пример описания протокола (приложения B) и видимо каждая буква, указанная в строке, означает определенный параметр?
Снимок экрана 2025-03-19 111734.png
2) Каким образом мне отправлять команды в пирометр? Мне нужно от него только текущие показатели температуры (режим по выбору) затем эти значения закинуть в XY Graph. Подскажите, пожалуйста, как это грамотно сделать. В таблице есть список команд, которые я кидал, но просто сделать условно Ctrl+С -> Ctrl+V не работает
Снимок экрана 2025-03-19 111721.png
MR1S_Manual_revc.pdf
(cтр. 103..110)
You do not have the required permissions to view the files attached to this post.
Аватара пользователя
dadreamer

Activity Professionalism Tutorials Gold Silver
Bronze Black Автор
professor
professor
Сообщения: 3998
Зарегистрирован: 17 фев 2013, 13:33
Medals: 9
LabVIEW Version: 2.5 — 2025
Has thanked: 14 times
Been thanked: 149 times

Re: Marathon MR1S и VISA

Сообщение dadreamer »

Насколько я понял (читал по-диагонали), датчик может работать в двух режимах: poll - запрос-ответ и burst - непрерывная передача. Не знаю, какой режим у вас сейчас выбран, но проще начать с первого, а потом, если надо будет увеличить производительность, перейти на второй. Дальше, может быть два варианта установки и подключения: standalone (один датчик) и multi-drop (несколько датчиков объединяются в сеть, работают в параллель). Точно так же, проще начать с одного датчика.

Запрос температуры целевого объекта - надо отправить символ T в ASCII-формате (обычной строкой). Приводится пример:
001?T
Прибор должен ответить так:
001!T1225
"1" - это сетевой адрес, не знаю, надо ли его указывать в standalone сетапе или только в multi-drop, пробуйте и так, и так. Последние 4 цифры, естественно, будут отличаться, это текущее значение температуры. А так, лучше бы, конечно, сначала потренироваться на заводской софтине, что описана в документации. Там и графики строятся, и куча всяких настроек.
You do not have the required permissions to view the files attached to this post.
Аватара пользователя
jane_wild

Gold
leader
leader
Сообщения: 557
Зарегистрирован: 29 июн 2016, 23:11
Medals: 1
LabVIEW Version: 2026
Has thanked: 108 times
Been thanked: 25 times

Re: Marathon MR1S и VISA

Сообщение jane_wild »

dadreamer писал(а): 20 мар 2025, 13:09 лучше бы, конечно, сначала потренироваться на заводской софтине, что описана в документации
А заодно снифером посмотреть что там за комманды софтина передает, думаю 14 дней пробного периода будет достаточно понять что к чему. Я прямо сейчас при помощи его с измерителем потока разбираюсь. Ну очень сильно помогает.
Life is short. Smile while you still have teeth!

Вернуться в «Для чайников»