Протокол Овен для VISA
-
yuxx
- interested

- Сообщения: 4
- Зарегистрирован: 16 фев 2017, 16:16
- Версия LabVIEW: 2012
- Благодарил (а): 1 раз
- Контактная информация:
Re: Протокол Овен для VISA
Добрый день, попробовал вашу программу в связке с трм210. Однако возникает странная ошибка, при попытке записи параметра уставки SP запись происходит, но в прибор записываются странные значения, 0 записывает как 0, 10 как 2.0, любое число больше 19 как 2.1. Чтение уставки и текущей температуры происходит нормально. Я так понимаю ошибка возникает при формировании пакета данных, но вот где? 
-
Chupakabra
- professional

- Сообщения: 362
- Зарегистрирован: 21 янв 2009, 10:50
- Награды: 1
- Версия LabVIEW: 2015
- Откуда: Москва
- Поблагодарили: 4 раза
- Контактная информация:
Re: Протокол Овен для VISA
Как на рисунках Тип данных SP должен быть Single (SGL), потом TypeCast в байтовый массив и обрезка до 3 первых байт. В таком виде уже отправляется.
-
yuxx
- interested

- Сообщения: 4
- Зарегистрирован: 16 фев 2017, 16:16
- Версия LabVIEW: 2012
- Благодарил (а): 1 раз
- Контактная информация:
Re: Протокол Овен для VISA
Спасибо, заработало!
дело было в типе данных.
Попробовал сделать на modbus без сервера, регистры читает, но запутался в преобразовании данных регистров в температуру.
Потом выползла еще проблема записи, по modbus почему-то не получается записать данные во второй регистр (SP адрес 0х0002 команда 0х10). В чем там дело так и не понял,
подсовываю те же данные регистров на текущую температуру как исходные данные для SP, ошибка 01 - код функции не поддерживается.
дело было в типе данных.
Попробовал сделать на modbus без сервера, регистры читает, но запутался в преобразовании данных регистров в температуру.
Потом выползла еще проблема записи, по modbus почему-то не получается записать данные во второй регистр (SP адрес 0х0002 команда 0х10). В чем там дело так и не понял,
подсовываю те же данные регистров на текущую температуру как исходные данные для SP, ошибка 01 - код функции не поддерживается.
-
Andrey Petrzhik
- user

- Сообщения: 88
- Зарегистрирован: 17 ноя 2015, 11:57
- Версия LabVIEW: 12
- Благодарил (а): 4 раза
- Контактная информация:
Re: Протокол Овен для VISA
Chupakabra, спасибо огромное за драйвер!
Подцепил счётчик импульсов Овен СИ30, заменив всего несколько параметров:
- скорость 115200 -> 9600
- порт 1 -> 16
- com1 -> com3
И всё бы отлично, но никак не могу разобраться как мне перевести принятый блок данных в число импульсов...
Может кто в формате для дураков как это делать рассказать? А то чёта запутался в алгоритме... Да, в мануале написано что текущие значения счётчика (на запросы CEU и Ctr) приходят как 4-байтный Long...
Спасибо за помощь!
Подцепил счётчик импульсов Овен СИ30, заменив всего несколько параметров:
- скорость 115200 -> 9600
- порт 1 -> 16
- com1 -> com3
И всё бы отлично, но никак не могу разобраться как мне перевести принятый блок данных в число импульсов...
Может кто в формате для дураков как это делать рассказать? А то чёта запутался в алгоритме... Да, в мануале написано что текущие значения счётчика (на запросы CEU и Ctr) приходят как 4-байтный Long...
Спасибо за помощь!
-
dadreamer
- professor

- Сообщения: 3998
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 9
- Версия LabVIEW: 2.5 — 2025
- Благодарил (а): 14 раз
- Поблагодарили: 149 раз
Re: Протокол Овен для VISA
- Вложения
-
- 2019-03-01_0-49-28.jpg (12.56 КБ) 6147 просмотров
-
- 2019-03-01_0-49-52.jpg (25.31 КБ) 6147 просмотров
-
Andrey Petrzhik
- user

- Сообщения: 88
- Зарегистрирован: 17 ноя 2015, 11:57
- Версия LabVIEW: 12
- Благодарил (а): 4 раза
- Контактная информация:
Re: Протокол Овен для VISA
Точно!
Пысы: кому надо вдруг... вот так для СИ30 всё работает (см. принтскрин).
Пысы: кому надо вдруг... вот так для СИ30 всё работает (см. принтскрин).
-
yuxx
- interested

- Сообщения: 4
- Зарегистрирован: 16 фев 2017, 16:16
- Версия LabVIEW: 2012
- Благодарил (а): 1 раз
- Контактная информация:
Re: Протокол Овен для VISA
Добрый день. Спасибо за протокол, написал на основе него много всего для терморегуляторов. Сейчас появился двухканальный прибор и я никак не могу разобраться реализована ли в Вашем протоколе возможность адресации для разных каналов. Как я понимаю, канал прибора это базовый адрес прибора плюс смещение. Но как это задать в этом протоколе не очень понятно.
-
Artem.spb
- professor

- Сообщения: 3643
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 61 раз
- Поблагодарили: 200 раз
- Контактная информация:
Re: Протокол Овен для VISA
О каком "вашем" протоколе идёт речь? О протоколе, разработанном Овном?yuxx писал(а): 03 фев 2021, 14:56 реализована ли в Вашем протоколе возможность адресации для разных каналов.
Что за прибор? По-моим воспоминаниям Овен на разных приборах разные протоколы и методы адресации реализует
-
yuxx
- interested

- Сообщения: 4
- Зарегистрирован: 16 фев 2017, 16:16
- Версия LabVIEW: 2012
- Благодарил (а): 1 раз
- Контактная информация:
Re: Протокол Овен для VISA
Разобрался, протокол ОВЕН. Я скачал первую версию реализации протокола овен под labview. А в первом сообщении есть и вторая версия реализации протокола и там работа с многоканальными приборами доделана. Еще раз спасибо огромное автору!
-
Maks1m
- interested

- Сообщения: 5
- Зарегистрирован: 04 сен 2025, 12:04
- Версия LabVIEW: 13/17
- Благодарил (а): 1 раз
- Контактная информация:
Re: Протокол Овен для VISA
Доброго времени суток!
По работе выдали МВ110.8АС и МУ110.6У H/W v2.0 (второй из обновлённой линейки, как я понимаю).
С МВ110.8АС проблем не возникло, значения успешно считываю через LabVIEW с помощью закреплённой в теме реализации ОВЕН-протокола.
А вот с МУ110.6У уже не получается управлять выходом. Пока подключён лишь 4 вход, сам прибор у меня на COM3, базовый адрес 32 (35 для 4-го канала, соответственно). Через Owen Configurator по протоколу Modbus RTU на 4 выходе подаю напряжение и всё работает корректно: подал 10В, на мультиметре ~10В.
Перешёл в LabVIEW, через оперативный параметр r.OE подаю 1.0 (что эквивалентно 10В на аналоговом выходе) в формате float24 и... ничего не генерируется, нулевое напряжение на 4 выходе вместо ожидаемых 10В. Ошибок при этом тоже нет, которые возникают в случае неверных сетевых параметров.
Сделал по примерам, сам пока не представляю в чём может быть причина:

Может это связано с тем, что МУ110.6У из обновлённой линейки H/W v2.0? Или у меня что-то не так на блок-диаграмме?
По работе выдали МВ110.8АС и МУ110.6У H/W v2.0 (второй из обновлённой линейки, как я понимаю).
С МВ110.8АС проблем не возникло, значения успешно считываю через LabVIEW с помощью закреплённой в теме реализации ОВЕН-протокола.
А вот с МУ110.6У уже не получается управлять выходом. Пока подключён лишь 4 вход, сам прибор у меня на COM3, базовый адрес 32 (35 для 4-го канала, соответственно). Через Owen Configurator по протоколу Modbus RTU на 4 выходе подаю напряжение и всё работает корректно: подал 10В, на мультиметре ~10В.
Перешёл в LabVIEW, через оперативный параметр r.OE подаю 1.0 (что эквивалентно 10В на аналоговом выходе) в формате float24 и... ничего не генерируется, нулевое напряжение на 4 выходе вместо ожидаемых 10В. Ошибок при этом тоже нет, которые возникают в случае неверных сетевых параметров.
Сделал по примерам, сам пока не представляю в чём может быть причина:

Может это связано с тем, что МУ110.6У из обновлённой линейки H/W v2.0? Или у меня что-то не так на блок-диаграмме?
-
IvanLis
- guru

- Сообщения: 5678
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 35 раз
- Поблагодарили: 125 раз
Re: Протокол Овен для VISA
Стандартной программой посмотрите.Maks1m писал(а): 04 сен 2025, 12:38 Может это связано с тем, что МУ110.6У из обновлённой линейки H/W v2.0? Или у меня что-то не так на блок-диаграмме?
Он может быть на другой протокол включен.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение Картинку или Файл
Как добавить в сообщение Видео
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение Картинку или Файл
Как добавить в сообщение Видео
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
Maks1m
- interested

- Сообщения: 5
- Зарегистрирован: 04 сен 2025, 12:04
- Версия LabVIEW: 13/17
- Благодарил (а): 1 раз
- Контактная информация:
Re: Протокол Овен для VISA
Речь про овеновский конфигуратор? Согласно руководству, там автоопределение протокола, насколько я понимаю: В пользу этого еще говорит отсутствие команды Prot в перечне конфигурационных параметров, приводимого в руководстве для МУ110.6У H/W v2.0.
Для старой линейки (которая не H/W v2.0) наоборот, данный параметр присутствует. Он там и отвечал за выбор протокола.
В Owen Configurator удалось подключить устройство по Modbus RTU, по ОВЕНу не хочет (но в руководстве как раз и указан Модбас для конфигурации, видимо так оно и работает только по модбасу).
А опции смены протокола уже после подключения нигде больше не увидел.
Есть ещё старый Конфигуратор М110 под старую линейку, там есть смена протокола после подключения, но для новых H/W v.2.0 данная опция закономерно подсвечивается ошибкой, параметр никак не записать в прибор.
Последний раз редактировалось Maks1m 05 сен 2025, 06:04, всего редактировалось 2 раза.
-
Maks1m
- interested

- Сообщения: 5
- Зарегистрирован: 04 сен 2025, 12:04
- Версия LabVIEW: 13/17
- Благодарил (а): 1 раз
- Контактная информация:
Re: Протокол Овен для VISA
Решил попробовать через dll ОВЕНа, загрузил с сайта производителя (https://owen.ru/product/biblioteka_win_dll). Там же взял и описание библиотеки.
Сделал просто для проверки, но результат тот же - напряжения на выходе нет, а в LabVIEW функции OpenPort и WriteFloat24 возвращают 0 (т.е. ошибки не обнаружены, т.к. при их наличии функция возвращала бы значение <0):
Сделал просто для проверки, но результат тот же - напряжения на выходе нет, а в LabVIEW функции OpenPort и WriteFloat24 возвращают 0 (т.е. ошибки не обнаружены, т.к. при их наличии функция возвращала бы значение <0):
-
Maks1m
- interested

- Сообщения: 5
- Зарегистрирован: 04 сен 2025, 12:04
- Версия LabVIEW: 13/17
- Благодарил (а): 1 раз
- Контактная информация:
Re: Протокол Овен для VISA
В ТП Овена посоветовали вместо функции WriteFloat24 использовать универсальную OwenIO. Увы, проблема осталась, напряжение на выходе МУ110 неизменно нулевое.
Во вложениях прикрепил свою тестовую программу, описание функции из руководства по библиотеке и прототип функции в Call Library Function.
На 1-й странице данной темы сам автор отметил, что для МУ110 генерация происходит через запись значения формата float24 в параметр r.OE. Т.е. в посылке значение передаётся 3 байтами.
В функции OwenIO параметр params в формате char*, т.е. необходимо подать набор символов.
На простом примере: хочу сгенерировать на выходе 10В, что эквивалентно значению 1 у параметра r.OE. 1 = 0х3F800000. Для формата float24 отбрасываю младший байт мантиссы и получаю 3F8000.
В протоколе Овен байт кодируется двумя символами, согласно таблице 3F8000 = JVOGGG Данный набор символов и подаю в качестве params, но никакого результата на мультиметре не обнаружил...
Замечу, что сама функция не вернула ошибку, что продемонстрировано на рис.1 во вложениях (return type 2). А сам индикатор "Авария" на модуле при выполнении программы гаснет, т.е. запросы от ПК проходят.
Во вложениях прикрепил свою тестовую программу, описание функции из руководства по библиотеке и прототип функции в Call Library Function.
На 1-й странице данной темы сам автор отметил, что для МУ110 генерация происходит через запись значения формата float24 в параметр r.OE. Т.е. в посылке значение передаётся 3 байтами.
В функции OwenIO параметр params в формате char*, т.е. необходимо подать набор символов.
На простом примере: хочу сгенерировать на выходе 10В, что эквивалентно значению 1 у параметра r.OE. 1 = 0х3F800000. Для формата float24 отбрасываю младший байт мантиссы и получаю 3F8000.
В протоколе Овен байт кодируется двумя символами, согласно таблице 3F8000 = JVOGGG Данный набор символов и подаю в качестве params, но никакого результата на мультиметре не обнаружил...
Замечу, что сама функция не вернула ошибку, что продемонстрировано на рис.1 во вложениях (return type 2). А сам индикатор "Авария" на модуле при выполнении программы гаснет, т.е. запросы от ПК проходят.
Последний раз редактировалось Maks1m 08 сен 2025, 08:16, всего редактировалось 4 раза.
-
Maks1m
- interested

- Сообщения: 5
- Зарегистрирован: 04 сен 2025, 12:04
- Версия LabVIEW: 13/17
- Благодарил (а): 1 раз
- Контактная информация:
Re: Протокол Овен для VISA
Приключения продолжаются
Написал в ТП Овена повторно, содержание в целом идентично написанному мною выше.
Вот оттуда ответ:
Допустим, в описании функции WriteFloat24 для VB6 ошибка. Как мне это знание применить к моей проблеме? Что надо исправить? С VB не знаком.
Прикрепляю описание функции во вложениях.
Своё использование функции WriteFloat24 и её прототип в Call Library Function скидывал ранее:


Написал в ТП Овена повторно, содержание в целом идентично написанному мною выше.
Вот оттуда ответ:
Помогите разобраться, причём тут Visual Basic 6? Хорошо, в Windows10 с VB6 не работают функции записи, но с МУ110 я работаю в LabVIEW, что не забыл указать в своём запросе. Разве между данными средами есть какая-то связь? Или библиотека на VB создавалась, речь об этом?Добрый день.
Уточнил. Подобная проблема уже была. Нашли ошибку.
Owen_io.dll программирование модуля МУ110.224.8Р на Visual Basic 6 Ошибка в описании функции Неправильно: Function WriteFloat24(ByVal adr As Long, ByVal adr_type As Long, ByVal command As String, ByVal value As Single, ByVal Index As Integer) As Long Правильно: Function WriteFloat24(ByVal adr As Long, ByVal adr_type As Long, ByVal command As String, value As Single, ByVal Index As Integer) As Long
По аналогии с Function ReadFloat24(ByVal adr As Long, ByVal adr_type As Long, ByVal cmd As String, res As Single, ByVal Index As Integer) As Long
В Windows 10 с Visual Basic 6 не работают функции записи, т.к. скорее всего сама Windows 10 неправильно работает с Visual Basic 6. В COM-порт прилетает неправильный пакет, судя по расшифровкам оно неправильно формирует именно часть пакета с значащими данными, т.е. если отправили туда 1, то оно отправляет туда неправильное значение.
Попробуйте использовать функцию WriteFloat24.
Допустим, в описании функции WriteFloat24 для VB6 ошибка. Как мне это знание применить к моей проблеме? Что надо исправить? С VB не знаком.
Прикрепляю описание функции во вложениях.
Своё использование функции WriteFloat24 и её прототип в Call Library Function скидывал ранее:
Последний раз редактировалось Maks1m 08 сен 2025, 18:27, всего редактировалось 2 раза.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение