Bugs and Suggestions

Here you can vote for ideas by projects. You can add your ideas to any open project from the project's page.

Спасибо!

Мы очень рады, что Вам нравится данный проект и вы проголосовали за его развитие.

Работа над задачами по проекту отнимает у его разработчика самое ценное — время, так что небольшая компенсация в виде материальной поддержки поднимет интерес к разработке и позволит сделать больше задач для общей пользы :)

Перейти к проекту Нет, спасибо

<<< Back

ModBus TCP работа с сетью.

Added by: 2019-01-25 12:58:46 Erik_U / Status: New / Project: Разработка ядра системы MajorDoMo

Многие MODBUS устройства, в т.ч. мой контроллер отопления (SmartWebX) имеет рекомендации по работе через ModBus-TCP от производителя - не закрывать TCP соединение и считывать/записывать все регистры по одному, но в рамках одного общего никогда не закрываемого TCP соединения.

А модуль ModBus текущей версии на каждый запрос создает отдельное TCP соединение. Это приводит к ошибкам, вплоть до остановки цикла модбас. Ниже - скриншот роутера, на котором видно количество соединений между сервером МД (192..168.88.28) и контроллером SW (192.168.13.25:502)
[img]https://d.radikal.ru/d30/1901/fe/9b9378890847.jpg[...]

Есть потребность в доработке модуля в части работы с сетью.
Я это вижу примерно так.
Сейчас "устройство модбас" - это одна операция с регистром или диапазоном регистров на одном IP. Разные "устройства модбас" могут обращаться к одному IP, или к разным - все они попадают в один цикл.
Их бы сгруппировать. Например, ввести описание устройства (его название, IP и порт), и к нему уже привязывать операции. Тогда в списке будут разные устройства со списком операций с его регистрами, привязанными к устройству (примерно как сделано в модуле MegaD).
Тогда по каждому устройству можно запускать свой цикл операций, не закрывая TCP соединения. Про TCP соединение можно в описании устройства (где вводится IP и порт) сделать кнопку "коннект", и галочку "не разрывать соединения". По аналогии с [url=http://www.simplymodbus.ca/TCPclient.htm]Simply Modbus TCP Client[/url], где соединение устанавливается одно на всю сессию работы клиента.

+9
 
Discuss (2)