PDA

Просмотреть полную версию : Modbus запросы


kostkost
22.03.2019, 19:17
Пишу прогу на с#
Пытаюсь получить данные с 2010
порт ком1
port.BaudRate = 115200;
port.DataBits = 8;
port.Parity = System.IO.Ports.Parity.None;
port.StopBits = System.IO.Ports.StopBits.Two;
port.ReadTimeout = 1000;
port.WriteTimeout = 1000;

адрес Modbus 2
конекчусь к RS485- COM1
запрос отправляю
0204A000000113F9
ответа нема (SMLogix работает нормально)

kostkost
22.03.2019, 20:27
ответ приходит но он почему то такой
0204020000FD30
настроил сервер он тоже нули показывает а у мя в проге секунды подключены
чо за танцы?
причем ответ всегда одинаковый

kostkost
23.03.2019, 12:07
Добавил 2 ой выход в программе и все заработало
эт как понимать?
убрал один выход - работает

kostkost
23.03.2019, 16:56
Можно узнать какие команды модбас поддерживает 2010
Было бы неплохо в библиотеке знаний
сделать статью какие контроллеры какие команды поддерживают
форматы данных передаваемые по модбасу и т д
Я знаю что гдето оно тут есть найти немогу

kostkost
23.03.2019, 17:42
запрос
0210A401000204FC18FFFF4607
ответа нема
может формат пакета не тот? прикрепил там глянте
лонг и реал по 4 байта занимают?

Arsie
25.03.2019, 10:30
Можно узнать какие команды модбас поддерживает 2010
Было бы неплохо в библиотеке знаний
сделать статью какие контроллеры какие команды поддерживают
форматы данных передаваемые по модбасу и т д
Я знаю что гдето оно тут есть найти немогу

В справке оно, в нескольких местах. Тыц (http://dl.segnetics.com/WebHelp/SMLogix/modbus_vars.htm), например.

Средство отладки у вас под рукой: тыц (http://forum.segnetics.com/showthread.php?t=1430) или тыц (http://forum.segnetics.com/showthread.php?t=2605). Сохраняете карту карту памяти, засовываете её в сервер и сравниваете логи, пока не придёт понимание, что у вас неправильно работает.


PS. www.modbus.org - это первоисточник знаний.