|
Связь с внешним миром Modbus, RS232, RS485, Lon и другое. |
|
Опции темы | Поиск в этой теме |
25.06.2018, 14:48 | #1 |
Member
Регистрация: Apr 2017
Сообщения: 71
Благодарил(а): 0 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Неправильная запись значения в ЭРИС-110-МВТ (решено)
Имеется девайс СГМ ЭРИС-110-МВТ (адрес устройства 93 (5D)). Пытаюсь записать в регистр 10E значение 3 в формате Integer, но записывается 512. При записи любого другого значения в диапазоне от 0 до 512 всё равно в регистре оказывается 512. Какое значение записалось в регистр просматриваю с помощью специальной программы предоставленной разработчиком девайса.
Вот лог обмена при записи: 5D 10 01 0E 00 01 02 00 03 5E BC 5D 03 01 0E 00 01 E8 A9 5D 10 01 0E 00 01 6D 6A Пробный проект прикладываю. |
25.06.2018, 17:00 | #2 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 115
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Неправильная запись значения в ЭРИС-110-МВТ
Цитата:
Покажите ответ на команду чтения по адресу 010Eh, пожалуйста. Эта команда у вас второй строчкой идёт. И почему у вас ответ на запись приходит позже запроса на чтение? Похоже, тайм-аут маленький слишком? __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
25.06.2018, 17:33 | #3 |
Member
Регистрация: Apr 2017
Сообщения: 71
Благодарил(а): 0 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Неправильная запись значения в ЭРИС-110-МВТ
Вот лог чтения:
5D 03 01 0E 00 01 E8 A9 5D 03 02 02 00 69 29 |
25.06.2018, 18:47 | #4 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 115
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Неправильная запись значения в ЭРИС-110-МВТ
Всё верно, девайс ответил 512.
Итого, имеем запись контроллером нужного вам значения по нужному адресу. Проблема однозначно в Эрисе. Пинайте его разработчиков. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
25.06.2018, 22:25 | #5 |
Member
Регистрация: Apr 2017
Сообщения: 71
Благодарил(а): 0 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Неправильная запись значения в ЭРИС-110-МВТ
Ок! Я так и думал.
|
28.06.2018, 13:22 | #6 |
Member
Регистрация: Apr 2017
Сообщения: 71
Благодарил(а): 0 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Неправильная запись значения в ЭРИС-110-МВТ (решено)
Производитель утверждает, что лог записи должен быть следующий:
Tx:5D 10 01 0E 00 01 00 03 EC BE В реальности такой: Tx:5D 10 01 0E 00 01 02 00 03 5E BC У кого Modbus реализован более кошерно? Напомню задачу. В устройство с адресом 93 (5D) нужно записать в регистр 10E значение 3 в формате Integer. Добавлено через 12 минут Производитель утверждает, что лог записи должен быть следующий: Tx:5D 10 01 0E 00 01 00 03 EC BE В реальности такой: Tx:5D 10 01 0E 00 01 02 00 03 5E BC У кого Modbus реализован более кошерно? Напомню задачу. В устройство с адресом 93 (5D) нужно записать в регистр 10E значение 3 в формате Integer. |
28.06.2018, 15:23 | #7 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 115
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Неправильная запись значения в ЭРИС-110-МВТ (решено)
Цитата:
Slave Address 5D Function 10 Starting Address Hi 01 Starting Address Lo 0E No. of Registers Hi 00 No. of Registers Lo 01 Byte Count 02 Data Hi 00 Data Lo 03 Error Check (LRC or CRC) 5E BC Возникает второй вопрос к производителю. Почему на якобы ошибочный запрос от нашего контроллера ЭРИС отвечает подтверждением? По стандарту при несовпадении формата запроса, слейв отбрасывает запрос и не генерирует ответа. Я думаю, вас просто дезинформировали. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
28.06.2018, 15:45 | #8 |
Member
Регистрация: Apr 2017
Сообщения: 71
Благодарил(а): 0 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Неправильная запись значения в ЭРИС-110-МВТ (решено)
Спасибо большое за подробный ответ!
|
28.06.2018, 15:52 | #9 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 115
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Неправильная запись значения в ЭРИС-110-МВТ (решено)
Я думаю, судя по тому, что вам сказали, что проблема в парсе запроса. Подсчёт контрольной суммы ведётся верно, проверка формата проходит как нужно, а вот при работе с данными парсер (точнее его программист) "забывает", что данные начинаются с указателя размера данных, т.е. с этого самого 02.
Ну и в результате распарсивает не 02 00 03, а 02 00 03 - это и есть те самые 512 __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 28.06.2018 в 16:20 |