Есть софт и устройства ModBus RTU. С чего начать разработку ModBus TCP?

SmartRnd
Offline
Зарегистрирован: 13.09.2016

Коллеги, т.к. сам занимаюсь разработкой устройств для так называемного "умного дома" и работаю на протоколе ModBus хочу поделиться программой-контроллером Alpha Controller ( http://alpha-se.ru/alpha.php?page1=406&page2=42&razdel=3&info=114 ). Она работает в режиме Maser на скорости 9600 и может управлять устройствами по алгоритму, который вы сами можете написать. На всех наших объектах ноутбук с данной программой управляет всеми Slave устройствами. Используем её более 5 лет, есть мелкие нарекания, но над ними работаем. В программе есть if-then-else логика, 512 переменнных, в т.ч. EEPROM. Она абсолютно бесплатная для работы с ModBus. Если кому нужно, пользуйтесь.

Обучающее видео по работе есть здесь: http://alpha-se.ru/alpha.php?page1=403&page2=124#ModBus

Благодаря Arduino вчера появилась идея создать простойший моудуль термометра на ModBus TCP и доработать программу-контроллер. Если у кого-то есть хорошие ресурсы чтобы подчерпнуть информацию по этому разделу, а еще лучше наработки модулей, прошу поделиться здесь. Это бы сильно упростило жизнь и сократило сроки реализации проекта.

uni
uni аватар
Offline
Зарегистрирован: 24.09.2015

Не ясно что понимается под "простейшим модулем". Это Arduino + Ethernet плата? Если так, то можно найти в сети исходники Arduino Mega Server, там есть примеры работы с W5100 (Ethernet платой). Их можно доработать, дополнив реализацией Modbus TCP slave.

SmartRnd
Offline
Зарегистрирован: 13.09.2016

Это Arduino + Ethernet + Скетч поддержки протокола ModBus с Web интерфейсом для конфигурирования.

uni
uni аватар
Offline
Зарегистрирован: 24.09.2015

Это сложно, но можно. Нужен Arduino Mega 2560 + W5100 Ethernet Shield (или W5500, если продаётся). W5100 может работать одновременно только по 4 соединениям, это несколько ограничивает ваши возможности по реализации web-интерфейса. Дальше, как я указал выше, нужно научиться пользоваться исходниками Arduino Mega Server, убрав оттуда всё лишнее и добавив Modbus TCP.

Проблемой будут трудности отладки кода, если нет оригинального JTAG отладчика. В качестве сниффера можно использовать Wireshark, в котором есть возможность просматривать пакеты Modbus TCP (детально).

Исходники Modbus TCP можно посмотреть в том же freemodbus. Но я их не использовал.

SmartRnd
Offline
Зарегистрирован: 13.09.2016

Спасибо. Уже проще. :)