Форум программистов, компьютерный форум, киберфорум
АСУ ТП, промэлектроника
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.79/160: Рейтинг темы: голосов - 160, средняя оценка - 4.79
25 / 25 / 2
Регистрация: 08.11.2011
Сообщений: 284

Расшифровка данных Modbus RTU

23.11.2012, 12:23. Показов 36247. Ответов 36

Студворк — интернет-сервис помощи студентам
Добрый день. Подскажите как расшифровать данные от прибора ? Снимаю снифером обмен данными через стандартную программу. Вот что получаю:
Запрос:23.11.2012 14:55:57.59164 (+1.0000 seconds)

FF 3A 31 3B 31 3B 30 3B 37 36 32 37 0D ÿ:1;1;0;7627.

Ответ:23.11.2012 14:55:57.59164 (+0.0000 seconds)

FF 21 31 3B 35 2E 33 30 37 31 3B 36 36 38 0D ÿ!1;5.3071;668.

Запрос:23.11.2012 14:55:58.59164 (+1.0000 seconds)

FF 3A 31 3B 31 3B 30 3B 37 36 32 37 0D ÿ:1;1;0;7627.

Ответ:23.11.2012 14:55:58.59164 (+0.0000 seconds)

FF 21 31 3B 35 2E 33 31 31 37 3B 32 34 34 34 36 ÿ!1;5.3117;24446
0D .

Порт закрыт

В последнем ответе присутствует число 5,3117. Как ни пытался преобразовывать FF 21 31 3B 35 2E 33 31 31 37 3B 32 34 34 34 36 0D такого числа ну ни как не получается...
Помогите разобраться, спасибо!

Добавлено через 2 минуты
Вот тот же обмен, только с десятичными числами.
Запрос:23.11.2012 14:55:57.59164 (+1.0000 seconds)

255 58 49 59 49 59 48 59 55 54 50 55 13 ÿ:1;1;0;7627.

Ответ:23.11.2012 14:55:57.59164 (+0.0000 seconds)

255 33 49 59 53 46 51 48 55 49 59 54 54 56 13 ÿ!1;5.3071;668.

Запрос:23.11.2012 14:55:58.59164 (+1.0000 seconds)

255 58 49 59 49 59 48 59 55 54 50 55 13 ÿ:1;1;0;7627.

Ответ:23.11.2012 14:55:58.59164 (+0.0000 seconds)

255 33 49 59 53 46 51 49 49 55 59 50 52 52 52 54 ÿ!1;5.3117;24446
13 .

Порт закрыт
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.11.2012, 12:23
Ответы с готовыми решениями:

Нет связи между модулем ввода (modbus rtu slave) и программой modbus poll на ноутбуке
Добрый день форумчанам. Сконфигурирован модуль modbus rtu slave в Ovation system. Опыт работы с modbus rtu master в овации есть, со slave...

Сформировать запрос Modbus RTU к МВА8
Добрый день! Никак не получается получить ответ от МВА8. По протоколу ascii проблем не возникло. Пример: :100300010001EB ...

Modbus RTU. Oпрос прибора Овен ТРМ202
подскажите пожалуйста, что-то явно делаю не так, прибор опрашиваю по modbus rtu , но в ответ в response приходят одни нули , посылаю на...

36
1 / 1 / 6
Регистрация: 23.09.2014
Сообщений: 176
01.10.2015, 14:25
Студворк — интернет-сервис помощи студентам
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
01.10.2015, 14:38
...а кто читать PDF-доку будет с примером подключения?
0
1 / 1 / 6
Регистрация: 23.09.2014
Сообщений: 176
01.10.2015, 14:55
от ipserial ? зачем ?

Добавлено через 15 минут
млин так и остался вопрос - что мне слать, в биты что переводить?
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
01.10.2015, 17:35
...без понятия, Модбас к вашей работе с сокетом не имеет ни малейшего отношения. Как только вернетесь к COM-портам или IPSerial.DLL для которой есть документация на формат обмена, тогда и продолжим разговор.
0
1 / 1 / 6
Регистрация: 23.09.2014
Сообщений: 176
02.10.2015, 06:18
и опять разработчик повторяет ваши слова....

signur

В вашем приборе установлен RS232, у которого ничего общего с MODBUS нет.

Добавлено через 1 минуту
а зачем мне ком порт? по словам разработчиков мохи, если выставить режим тсп-сервер, то принятые данные будут пересланы в ком без изменения. а вот как мне понять что слать?

Добавлено через 10 минут
не работает
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
                        TcpClient client = new TcpClient(server, port);
 
                        // Translate the passed message into ASCII and store it as a Byte array.
                        // Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);
                        Byte[] data = new byte[1] { 0x55 };
 
                        // Get a client stream for reading and writing.
                        //  Stream stream = client.GetStream();
 
                        NetworkStream stream = client.GetStream();
 
                        // Send the message to the connected TcpServer. 
                        stream.Write(data, 0, data.Length);
 
                        logger.Debug("Sent: {0}", message);
 
                        doWork = false;
                        // Receive the TcpServer.response.
                        // Buffer to store the response bytes.
                        data = new Byte[256];
 
                        // String to store the response ASCII representation.
                        String responseData = String.Empty;
 
                        // Read the first batch of the TcpServer response bytes.
                        Int32 bytes = stream.Read(data, 0, data.Length);
                        responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
                        responseData = responseData.Substring(0, responseData.Length - 1);
                        string isdig = null;
                        isdig = responseData.Substring(7);
                        string hash = responseData.Substring(1, 3);
                        string hash2 = message.Substring(1, 3);
                        string end = responseData.Substring(responseData.Length - 1, 1);
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
02.10.2015, 06:27
У меня впечатление, что вы читаете между строк. NPort 5630-16: 16-портовый асинхронный сервер RS-422/485 в Ethernet. У него есть пользовательский и командные порты, взаимодействие с которыми осуществляет их закрытая библиотека IPSerial, которая для разработчиков предоставляет внешнее API.

Данные в COM порт пересылаются виртуальным драйвером последовательного порта мохи-нпорт с Ethernet и наоборот. Какого вы тулите свой сырой клиент без знания внутреннего протокола обмена?
0
1 / 1 / 6
Регистрация: 23.09.2014
Сообщений: 176
02.10.2015, 06:45
отсюда же IPSerial.dll производства Moxa Nport - по ip подключаться к оборудованию

Если честно, мы в своих проектах не используем библиотеку ipserial. С NPort можно легко работать и без нее. Для этого:
1. Переведите NPort в режим TCP Server;
2. Установите TCP-соединение с NPort (по умолчанию Data Port = TCP:4001)
3. Посылайте в TCP-сокет данные, они в неизменном виде выйдут в COM-порт;
4. Данные, которые NPort будет принимать по последовательному интерфейсу, он будет передавать в этот же TCP-сокет.

Команцев Александр | ООО "Ниеншанц-Автоматика",

то есть тсп предпочтительней в силу того, что не нужен сервер, к которому нужно мапить ком-порт. а вот что слать я действительно не знаю

Добавлено через 3 минуты
signur
послать прибору 0х55 на скорости 2400 с одним стоп-битом.
0
1 / 1 / 6
Регистрация: 23.09.2014
Сообщений: 176
02.10.2015, 07:01
может проблема в протоколах?



но ноутбук с программой смог прочитать данные. вопрос - что он послал?
0
1 / 1 / 6
Регистрация: 23.09.2014
Сообщений: 176
02.10.2015, 07:18
хотя http://www.signur.ru/catalog-43.html

Расходомер ЭХО-Р-02 имеет дополнительный выходной сигнал 0- 5, 0- 20, 4- 20 мА постоянного тока, который служит для индикации мгновенного значения расхода, возможность вывода информации на компьютер через встроенный интерфейс RS-232 или RS-485, а также релейные уставки сигнализации уровня заполнения водовода.
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
02.10.2015, 10:54
Если честно, мы в своих проектах не используем библиотеку ipserial. С NPort можно легко работать и без нее. Для этого
...
Команцев Александр | ООО "Ниеншанц-Автоматика"
вы знаете, переписку с этим Александром из саппорта не веду и то, что это они не отобразили в официальной документации и то, что вы с этой темой уже год возитесь наводит на неутешительные выводы. В то время как давно можно было использовать либо опробованную официальную библиотеку с известными методами, либо работать по Modbus через виртуальный COM-порт/шлюз. Последний вариант универсален для большинства типов конверторов, вне зависимости моху или не моху на объекте поставили.

Если вам так нравится продолжать биться по прошествии года головой об стенку вместо того, чтобы просто изучить простой для понимания и реализации Modbus протокол, можете продолжать. Но к текущей теме ваши потуги работы с сокетами не относятся.

что не нужен сервер, к которому нужно мапить ком-порт
у вас каша в голове. Сервер - это и есть сама моха, а клиентом выступал бы официальный драйвер транслирующий туда и обратно с сокета на виртуальный последовательный порт данные. Драйвер-шлюз устанавливается однократно и ничего маппить больше не надо, вашей работы там на два клика.
0
1 / 1 / 6
Регистрация: 23.09.2014
Сообщений: 176
02.10.2015, 11:14
так. есть расходомер и моха. моху можно выставить в 2 режима - тсп и ком. при этом в режиме тсп он без изменений отдает полученный сигнад расходомеру и так же без изменений пишет в тсп порт. т.е. кому что - хочешь мапь нпорт администратором и получай ком-порт. хочешь - шли по известному ип и порту данные в тсп. мапить нужно на реальном сервере - а если в режиме тсп, то и сервер не нужен. над задачей год не мучаюсь. сервисы под тсп успешно работают. только вот зачем мне ипсериал, если я могу спокойно отправить хоть в ком, хоть в тсп нужный пакет. просто сто мне слать? как мне перевести что написано в документации? можете в этом помочь? как мне послать команду 03 на 1 регистр ?
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
02.10.2015, 11:52
я могу спокойно отправить хоть в ком
так шлите в последовательный порт.

просто что мне слать?
шлите пакет Модбас согласно его формату. Формат и структура расписаны вначале этой темы и закрепленных. Конкретные функции и значения в поля подставите из документации на прибор. В чем проблема до сих пор?
0
1 / 1 / 6
Регистрация: 23.09.2014
Сообщений: 176
02.10.2015, 12:19
я не знаю формат модбас. и яснее он для меня не становится
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
02.10.2015, 12:47
Так прочитайте пост #2, пост #5/
0
1 / 1 / 6
Регистрация: 23.09.2014
Сообщений: 176
06.10.2015, 08:17
0
1 / 1 / 6
Регистрация: 23.09.2014
Сообщений: 176
06.10.2015, 11:06
что слать то?
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
06.10.2015, 13:12
Если уже и пользуетесь готовым терминалом, то рекомендую MBRTU. Формат расписан в постах выше, конкретные значения в вашей документации.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.10.2015, 13:12

Интеграция с контроллером по ModBus RTU
Здравствуйте. В щите используется контроллер, который опрашивает модули, датчики и т.п. по modbus rtu как мастер. Но по заданию...

MVI56-ADM. Релизация Modbus RTU
Всем привет. Пытаюсь разобраться с программированием ADM модуля MVI56-ADM компании Allen Bradley и реализовать в нем протокол Modbus RTU...

Modbus RTU и ASCII на одном интерфейсе
Возникла ситуация следующего рода. На один интерфейс посажены несколько приборов (одних и тех же). Протоколы по документации Modbus...

Modbus-RTU. Синхронизация. Формат времени
Здравствуйте! Помогите разобраться с форматом времени. Прибор- БМРЗ-100. В описании протокола обмена (Modbus-MT), в описании регистров...

Уточнить адреса регистров АС-3М MODBUS RTU
Доброго времени суток уважаемые форумчане. С авто синхронизатора (АС-3М) нужно получить данные, функция3(RHR) тип данных uint16. В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Новые блоги и статьи
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru