- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Расшифровка протокола MODBUS
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 2
- Зарегистрирован: 02 апр 2012, 07:13
- Имя: Чернов Сергей Михайлович
- Страна: Казахстан
- город/регион: Караганда
Расшифровка протокола MODBUS
Здравствуйте!
Прошу вас помочь в решении возникшего вопроса
Мне необходимо получить значение измеряемого параметра прибором РМТ59 компании "Элемер". Поключая прибор к компьютеру через Ethernet, по протоколу MODBUS TCP, отправляю следущий пакет:
5865 0000 0006 0104 0000 0002
где : 0104 - (01 - сетевой адрес, 04 - команда на чтение значений перьев)
0000 - номер пера;
0002 - колличество считываемых регистров.
В ответ приходит пакет:
5865 0000 0007 0104 04 41af 5446
где 0104 - (01 - сетевой адрес, 04 - команда на чтение значений перьев)
04 - длина полученных данных (как я понял);
41af 5446 - само значение получается.
То есть получается что посылаю запрос на чтение значения первого пера. Для пробы я использовал термопару типа ХА, в момент опроса прибор показал примерно 22 градуса.
И вопрос: как получить эти 22 градуса ? Узнавать только у производителя или же все делается стандартно? В инструкции написано только как делать запрос!
Спасибо за внимание!
Прошу вас помочь в решении возникшего вопроса
Мне необходимо получить значение измеряемого параметра прибором РМТ59 компании "Элемер". Поключая прибор к компьютеру через Ethernet, по протоколу MODBUS TCP, отправляю следущий пакет:
5865 0000 0006 0104 0000 0002
где : 0104 - (01 - сетевой адрес, 04 - команда на чтение значений перьев)
0000 - номер пера;
0002 - колличество считываемых регистров.
В ответ приходит пакет:
5865 0000 0007 0104 04 41af 5446
где 0104 - (01 - сетевой адрес, 04 - команда на чтение значений перьев)
04 - длина полученных данных (как я понял);
41af 5446 - само значение получается.
То есть получается что посылаю запрос на чтение значения первого пера. Для пробы я использовал термопару типа ХА, в момент опроса прибор показал примерно 22 градуса.
И вопрос: как получить эти 22 градуса ? Узнавать только у производителя или же все делается стандартно? В инструкции написано только как делать запрос!
Спасибо за внимание!
-
- эксперт
- Сообщения: 1146
- Зарегистрирован: 25 июл 2008, 10:06
- Имя: Леонид
- Страна: РФ
- Благодарил (а): 49 раз
- Поблагодарили: 134 раза
Re: Расшифровка протокола MODBUS
В инструкции должно быть написано, как полученное значение в градусы преобразовать. Стандартного преобразования нет. Т.к. в ответе 2 слова (4 байта), то можно предположить такие варианты:
1. Число с плавающей запятой (REAL)
2. Длиное целое, которое потом надо делить на что-то, кратное 10. Но обычно хватает одного слова.
3. Коды АЦП, которые потом надо перевести в градусы. Но обычно хватает одного слова.
и еще много других вариантов.
1. Число с плавающей запятой (REAL)
2. Длиное целое, которое потом надо делить на что-то, кратное 10. Но обычно хватает одного слова.
3. Коды АЦП, которые потом надо перевести в градусы. Но обычно хватает одного слова.
и еще много других вариантов.
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.
-
- эксперт
- Сообщения: 1146
- Зарегистрирован: 25 июл 2008, 10:06
- Имя: Леонид
- Страна: РФ
- Благодарил (а): 49 раз
- Поблагодарили: 134 раза
Re: Расшифровка протокола MODBUS
Кстати, 5446 - это не CRC?
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.
-
- не первый раз у нас
- Сообщения: 323
- Зарегистрирован: 26 сен 2010, 10:18
- Имя: Artur
- Страна: Russia
- Поблагодарили: 2 раза
Re: Расшифровка протокола MODBUS
Если производитель нормально не описал, как обрабатывать полученные данные, то это лучше спросить у него. А они так могут исковеркать, что мало и не покажется.И вопрос: как получить эти 22 градуса ? Узнавать только у производителя или же все делается стандартно? В инструкции написано только как делать запрос!
-
- авторитет
- Сообщения: 878
- Зарегистрирован: 21 авг 2009, 14:25
- Имя: Василий Иванович
- Благодарил (а): 1 раз
- Поблагодарили: 3 раза
Re: Расшифровка протокола MODBUS
Это и есть число в формате REAL, и равно оно 21,91615
http://en.wikipedia.org/wiki/Single-pre ... int_format
http://en.wikipedia.org/wiki/Single-pre ... int_format
-
- преподаватель
- Сообщения: 1357
- Зарегистрирован: 01 сен 2008, 18:32
- Имя: Пупена Александр
- Страна: Украина
- город/регион: Киев
- Поблагодарили: 6 раз
Re: Расшифровка протокола MODBUS
CRC в MODBUS TCP нету.leon78 писал(а):Кстати, 5446 - это не CRC?
Интерпритация real можно поискать в Инете, например тут:
http://ru.wikipedia.org/wiki/%D0%A7%D0% ... 1%82%D0%B8
Согласно протокола MODBUS доступ к данным типа DINT или REAL не описано. По этой причине действительно расположение байт в регистрах и регистров в байтах может быть разное (см. BIG ENDIAN / LITTLE ENDIAN). Щас покумекаю, может что-то получится с преобразованием.
--------------------
Пока писал, Василий Иванович уже все зделал. :-)
-
- не первый раз у нас
- Сообщения: 323
- Зарегистрирован: 26 сен 2010, 10:18
- Имя: Artur
- Страна: Russia
- Поблагодарили: 2 раза
Re: Расшифровка протокола MODBUS
А что кумекать? Василий Иванович уже расшифровал :D
Автору могу посоветовать онлайн калькулятор: http://www.h-schmidt.net/FloatApplet/IEEE754.html
Автору могу посоветовать онлайн калькулятор: http://www.h-schmidt.net/FloatApplet/IEEE754.html
-
- преподаватель
- Сообщения: 1357
- Зарегистрирован: 01 сен 2008, 18:32
- Имя: Пупена Александр
- Страна: Украина
- город/регион: Киев
- Поблагодарили: 6 раз
Re: Расшифровка протокола MODBUS
Так и я о том же.DelSnos писал(а):А что кумекать? Василий Иванович уже расшифровал :D
Автору могу посоветовать онлайн калькулятор: http://www.h-schmidt.net/FloatApplet/IEEE754.html
А калькулятор у меня не открылся :? . IE сказал что страница небезопасна и не открывал.
-
- преподаватель
- Сообщения: 1357
- Зарегистрирован: 01 сен 2008, 18:32
- Имя: Пупена Александр
- Страна: Украина
- город/регион: Киев
- Поблагодарили: 6 раз
Re: Расшифровка протокола MODBUS
А этот открылся http://www.binaryconvert.com/convert_float.htmlsan писал(а):А калькулятор у меня не открылся :? . IE сказал что страница небезопасна и не открывал.
-
- не первый раз у нас
- Сообщения: 323
- Зарегистрирован: 26 сен 2010, 10:18
- Имя: Artur
- Страна: Russia
- Поблагодарили: 2 раза
Re: Расшифровка протокола MODBUS
IE такой IE. Французским школьникам уже давно его запретили. :DIE сказал что страница небезопасна и не открывал.
А вот второй калькултор намного удобнее ;)
Чуть флуда насчет уязвимостей. На хабре недавно хорошая статья вышла : http://habrahabr.ru/company/pt/blog/140849
Так в серверном программном обеспечении широкое распространение получили уязвимости в SCADA-системах: в 17 уведомлениях безопасности было описано 37 уязвимостей. А это, если брать все относительности, очень много!
-
- здесь недавно
- Сообщения: 2
- Зарегистрирован: 02 апр 2012, 07:13
- Имя: Чернов Сергей Михайлович
- Страна: Казахстан
- город/регион: Караганда
-
- администратор
- Сообщения: 18777
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 974 раза
- Поблагодарили: 1856 раз
Re: Расшифровка протокола MODBUS
Еще есть калькулятор, встроенный в виндовс :)DelSnos писал(а):Автору могу посоветовать онлайн калькулятор: http://www.h-schmidt.net/FloatApplet/IEEE754.html
По вопросам работы Форума можно обратиться по этим контактам.
-
- преподаватель
- Сообщения: 1357
- Зарегистрирован: 01 сен 2008, 18:32
- Имя: Пупена Александр
- Страна: Украина
- город/регион: Киев
- Поблагодарили: 6 раз
Re: Расшифровка протокола MODBUS
так там вычисления ручками надо делать. А тут взял - ввел и получилTEB писал(а):Еще есть калькулятор, встроенный в виндовс :)DelSnos писал(а):Автору могу посоветовать онлайн калькулятор: http://www.h-schmidt.net/FloatApplet/IEEE754.html
-
- эксперт
- Сообщения: 1055
- Зарегистрирован: 11 ноя 2012, 18:21
- Имя: Нурисламов Руслан М.
- Страна: Казахстан
- город/регион: Алматы
- Благодарил (а): 23 раза
- Поблагодарили: 32 раза
Re: Расшифровка протокола MODBUS
Не подскажите где каталог с приборами на модбас ТСР. С Элемеровскими приборами пока сталкивался только на Модбас RTU. Интересно посмотреть что есть.
-
- завсегдатай
- Сообщения: 546
- Зарегистрирован: 05 ноя 2012, 07:38
- Имя: Дозморов Владимир Владимирович
- Страна: Россия
- город/регион: Северск
- Благодарил (а): 1 раз
- Поблагодарили: 28 раз
Re: Расшифровка протокола MODBUS
Прибор РМТ59 компании "Элемер" аналоговые MODBUS TCP/IP ANSI/IEEE Std 754-1985 - стандарт двоичной арифметики с плавающей точкой. Если скада умеет работать с данным протоколом никаких переводов не надо вы получите температуру на в реальном значении.
Подробней http://www.softelectro.ru/ieee754.html
Подробней http://www.softelectro.ru/ieee754.html
Чебурашку видишь???? я тоже не вижу, а он есть.
-
- эксперт
- Сообщения: 1055
- Зарегистрирован: 11 ноя 2012, 18:21
- Имя: Нурисламов Руслан М.
- Страна: Казахстан
- город/регион: Алматы
- Благодарил (а): 23 раза
- Поблагодарили: 32 раза
Re: Расшифровка протокола MODBUS
Спасибо за математику. B Modbus RTU в абсолютно таком же приведенном виде данные гоняются. Разница только в интерфейсных частях.