Протокол Овен для VISA
-
Chupakabra
- professional
- Сообщения: 360
- Зарегистрирован: 21 янв 2009, 10:50
- Награды: 1
- Версия LabVIEW: 2015
- Откуда: Москва
- Поблагодарили: 4 раза
- Контактная информация:
Протокол Овен для VISA
Доброго времени суток.
Анонс :)
Существует известная в узких кругах компания Овен. У нее есть одноименный собственный протокол обмена данными с приборами
Для поддержки этого протокола производитель предоставляет DLL (owen_io.dll)
Библиотека предназначена для связи с приборами ОВЕН, поддерживающими сетевой интерфейс RS-485 и "токовая петля".
Мною была написана LabVIEW-only реализация этого протокола для VISA, без вызова DLL, что, в принципе, позволяет программисту использовать serial-порт также для других нужд (шарить т.е.). Итак.
Основной блок OwenIO.vi, в котором реализован весь протокол обмена + несколько VI, Овен Hash, Овен CRC16 и другие вспомогательные функции (см описание протоколо от производителя). На вход блока OwenIO.vi подается комманда (строка) и массив данных (если необходимо), а также указывается признак команды (запись или чтение) и еще нексколько доп. параметров. С выхода снимается массив данных.
Исходные данные и полученные подготавливаются и разбираются в соответствии с коммандами. В примерах можно посмотреть как это делается. Еще хочу обратить внимание, что при обмене используются терминирующии символ 0xD.
LabVIEW 8.6, 2009
Анонс :)
Существует известная в узких кругах компания Овен. У нее есть одноименный собственный протокол обмена данными с приборами
Для поддержки этого протокола производитель предоставляет DLL (owen_io.dll)
Библиотека предназначена для связи с приборами ОВЕН, поддерживающими сетевой интерфейс RS-485 и "токовая петля".
Мною была написана LabVIEW-only реализация этого протокола для VISA, без вызова DLL, что, в принципе, позволяет программисту использовать serial-порт также для других нужд (шарить т.е.). Итак.
Основной блок OwenIO.vi, в котором реализован весь протокол обмена + несколько VI, Овен Hash, Овен CRC16 и другие вспомогательные функции (см описание протоколо от производителя). На вход блока OwenIO.vi подается комманда (строка) и массив данных (если необходимо), а также указывается признак команды (запись или чтение) и еще нексколько доп. параметров. С выхода снимается массив данных.
Исходные данные и полученные подготавливаются и разбираются в соответствии с коммандами. В примерах можно посмотреть как это делается. Еще хочу обратить внимание, что при обмене используются терминирующии символ 0xD.
LabVIEW 8.6, 2009
- Вложения
-
- ОВЕН_OWEN_протокол_LabVIEW8_6_2009.rar
- предыдущая версия
- (295.52 КБ) 845 скачиваний
-
- ОВЕН протокол для LabVIEW 2009 v.2.rar
- новейшая версия
- (171.78 КБ) 928 скачиваний
Последний раз редактировалось Chupakabra 25 мар 2011, 12:39, всего редактировалось 4 раза.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Протокол Овен для VISA
Если не жалко - выкладывай конечно, наверняка кому нибудь пригодится. А чем использование DLL не понравилось? Что можно ещё сделать с портом, если на нём висит прибор?
-
Chupakabra
- professional
- Сообщения: 360
- Зарегистрирован: 21 янв 2009, 10:50
- Награды: 1
- Версия LabVIEW: 2015
- Откуда: Москва
- Поблагодарили: 4 раза
- Контактная информация:
Re: Протокол Овен для VISA
Как что, повесить другой прибор с другим протоколом :) (я имею ввиду линию RS-485, на которой при организации master-slave запросов, может быть много слейвов).eg писал(а):Если не жалко - выкладывай конечно, наверняка кому нибудь пригодится. А чем использование DLL не понравилось? Что можно ещё сделать с портом, если на нём висит прибор?
p.s. Вообще протокол реализовал как бонус к коду для подключения таймера УТ1М (той же фирмы), у которого порт RS-485 сделали, а dll его не поддерживала из-за кривости реализации протокола в приборе. Техподдержка "отнекивалась", говорили, что порт в таймере чисто номинальный. Смекнул, что скорее всего в приборе протокол реализован, но немного не правильный, удалось его восстановить. Потом чуть переделал и получил поддержку всех остальных приборов.
Так что, есть реализация для УТ1М и для всего остального. Скоро выложу.
Последний раз редактировалось Chupakabra 03 сен 2010, 13:28, всего редактировалось 1 раз.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Протокол Овен для VISA
Теперь понятно, конечно, если использовать последовательный порт как bus, то да.
Выкладывай обязательно.
Выкладывай обязательно.
-
- adviser
- Сообщения: 221
- Зарегистрирован: 18 май 2009, 10:50
- Награды: 1
- Версия LabVIEW: 8.6
- Откуда: Москва
Re: Протокол Овен для VISA
Выкладывай обязательно, мне частенько приходится работать с овеновскими терморегуляторами. Раньше я использовал протокол ModBus, но заметил что через ModBus можно менять не все параметры индикаторов Owen.
-
Chupakabra
- professional
- Сообщения: 360
- Зарегистрирован: 21 янв 2009, 10:50
- Награды: 1
- Версия LabVIEW: 2015
- Откуда: Москва
- Поблагодарили: 4 раза
- Контактная информация:
-
Chupakabra
- professional
- Сообщения: 360
- Зарегистрирован: 21 янв 2009, 10:50
- Награды: 1
- Версия LabVIEW: 2015
- Откуда: Москва
- Поблагодарили: 4 раза
- Контактная информация:
-
Chupakabra
- professional
- Сообщения: 360
- Зарегистрирован: 21 янв 2009, 10:50
- Награды: 1
- Версия LabVIEW: 2015
- Откуда: Москва
- Поблагодарили: 4 раза
- Контактная информация:
Re: Протокол Овен для VISA
Небольшое рабочее обновление. Добавил поддержку широковещательной рассылки по адресу 255 + блок U16BCD_to_I32.vi
v.2
v.2
-
Chupakabra
- professional
- Сообщения: 360
- Зарегистрирован: 21 янв 2009, 10:50
- Награды: 1
- Версия LabVIEW: 2015
- Откуда: Москва
- Поблагодарили: 4 раза
- Контактная информация:
Re: Протокол Овен для VISA
Итак продолжаем...
Поступил вопрос. Есть прибор Овен МУ110-8Р (8-канальный DO). Задача: управлять дискретными выходами.
1. Смотрим документ под названием "Список параметров МУ110-8Р(К) (Список параметров МУ110-8Р(К))" и находим в нем Список оперативных параметров. Далее r.ОЕ E894 Состояние ВЭ(выходного элемента) float24 (по ВЭ, от 0 до 7 0...1.0)
Считывает / записывает состояние ВЭ. Дробные
значения задают скважность ШИМ дискретных
ВЭ. Отсюда следует, что в прибор нужно писать float24 (для выкл. канало: 0, для вкл: 1), т.е. 3 байта, номер канала определяется, на сколько я понял, "адресом прибора + смещение"
2. т.к. float24 - это вообще-то не стандартный для PC (и LabVIEW) тип данных, идем на хитрость.
Из описания протокола Овен:
Формат числа с плавающей точкой - это просто стандартное 4-байтовое плавающее число в IEEE-формате, или усеченное 3-х байтовое
(PIC-формат) - то же, что и IEEE, но с отброшенным младшим байтом мантиссы. Если известно, что формат плавающий, то усеченный и
полный IEEE-форматы можно различить по битам размера информационного поля. Внутренние поля представлены только в двоичном, но не
в двоично-десятичном виде.
Итого:
1 - для Float32 вяглядит как набор байт 16x3F800000, а для овеновского float24 как 3F8000 (отбрасываем младший)
0 - 16x00000000 и 16x000000 соответственное.
На рисунке показано, что нужно подключать к входам и выходам.
Обратите внимение, что контрол берется типа Single (SGL) и преобразуется в массив типа U8, из которого потом выкидывается последний байт!
Поступил вопрос. Есть прибор Овен МУ110-8Р (8-канальный DO). Задача: управлять дискретными выходами.
1. Смотрим документ под названием "Список параметров МУ110-8Р(К) (Список параметров МУ110-8Р(К))" и находим в нем Список оперативных параметров. Далее r.ОЕ E894 Состояние ВЭ(выходного элемента) float24 (по ВЭ, от 0 до 7 0...1.0)
Считывает / записывает состояние ВЭ. Дробные
значения задают скважность ШИМ дискретных
ВЭ. Отсюда следует, что в прибор нужно писать float24 (для выкл. канало: 0, для вкл: 1), т.е. 3 байта, номер канала определяется, на сколько я понял, "адресом прибора + смещение"
2. т.к. float24 - это вообще-то не стандартный для PC (и LabVIEW) тип данных, идем на хитрость.
Из описания протокола Овен:
Формат числа с плавающей точкой - это просто стандартное 4-байтовое плавающее число в IEEE-формате, или усеченное 3-х байтовое
(PIC-формат) - то же, что и IEEE, но с отброшенным младшим байтом мантиссы. Если известно, что формат плавающий, то усеченный и
полный IEEE-форматы можно различить по битам размера информационного поля. Внутренние поля представлены только в двоичном, но не
в двоично-десятичном виде.
Итого:
1 - для Float32 вяглядит как набор байт 16x3F800000, а для овеновского float24 как 3F8000 (отбрасываем младший)
0 - 16x00000000 и 16x000000 соответственное.
На рисунке показано, что нужно подключать к входам и выходам.
Обратите внимение, что контрол берется типа Single (SGL) и преобразуется в массив типа U8, из которого потом выкидывается последний байт!
- Вложения
-
- owen1.png (7.21 КБ) 21449 просмотров
-
- interested
- Сообщения: 6
- Зарегистрирован: 20 мар 2014, 19:05
- Версия LabVIEW: 16
- Откуда: Казань
- Контактная информация:
Re: Протокол Овен для VISA
Я новичок в программе. Пробовал по примеру ОВЕН протокол для LabVIEW 2009 v.2.rar подключить ОВЕН СИ8 для считывания расхода. Но возникает ошибка. Не могли бы помочь какие параметры надо настроить. адреса и скорости вроде настроил, но после первого модуля VISA информация идет с ошибкой.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 2 Ответы
- 662 Просмотры
-
Последнее сообщение Borjomy_1
-
- 4 Ответы
- 246 Просмотры
-
Последнее сообщение Embedder74