Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: FreeModbus + TCP(lwip) + Serial
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
yanvasiij
Доброго времени суток!

Встала задача реализовать на одном устройстве одновременно modbus RTU по последовательной шине и modbus TCP. FreeModbus отлично умеет и то и другое, но НЕ ОДНОВРЕМЕННО. Покопавшись в исходниках понял, что без серьезных изменений его не научить работать параллельно по двум интерфейсам. Может кто-нибудь уже реализовал это? Буду признателен, если поделитесь исходниками.
Непомнящий Евгений
Не сталкивался с фримодбасом, в свое время написал сам RTU. Вроде как ничего сложного там нет. TCP как я понимаю отличается только канальным уровнем.

Судя по примерам фримодбаса - там внутри один экземпляр глобальных данных. Если повезло - то они уже объединены в структуру (и надо сделать несколько экземпляров этой структуры + в каждую функцию добавить дескриптор); если не повезло - то это просто россыпь глобальных переменных (и надо их вначале соединить в структуру и далее как в пред пункте)
SasaVitebsk
У меня это реализовано.
Не знаю что там с этим Freemodbus... Не пойму зачем он вообще.
Сделан драйвер USART, LwIP, и драйвер modbus который готовые пакеты разруливает.
Работает параллельно Modbus - TCP/Modbus - UDP/Modbus - HTTP.
Сам драйвер modbus настолько примитивен, что не пойму зачем себе ещё голову чужими исходниками забивать?
...
Единственное, на что обратите внимание, это в TCP пакете обеспечьте ID пакета. И в OPC сервере необходимо разруливать эти ID.
Иначе 2 устройства не будут в одной сети жить, да и с одним будут проблемы ... Нужна уверенность, что вы получили ответ именно на свой запрос.
yanvasiij
Цитата(Непомнящий Евгений @ Sep 9 2015, 09:22) *
Не сталкивался с фримодбасом, в свое время написал сам RTU. Вроде как ничего сложного там нет. TCP как я понимаю отличается только канальным уровнем.

Судя по примерам фримодбаса - там внутри один экземпляр глобальных данных. Если повезло - то они уже объединены в структуру (и надо сделать несколько экземпляров этой структуры + в каждую функцию добавить дескриптор); если не повезло - то это просто россыпь глобальных переменных (и надо их вначале соединить в структуру и далее как в пред пункте)


Собственно об том и речь - нужно сделать многоэкземплярный вариант, можно даже на C++. Я ищу готовое, если не найду возмусь сам.


Цитата(SasaVitebsk @ Sep 9 2015, 12:50) *
У меня это реализовано.
Не знаю что там с этим Freemodbus... Не пойму зачем он вообще.
Сделан драйвер USART, LwIP, и драйвер modbus который готовые пакеты разруливает.
Работает параллельно Modbus - TCP/Modbus - UDP/Modbus - HTTP.
Сам драйвер modbus настолько примитивен, что не пойму зачем себе ещё голову чужими исходниками забивать?
...
Единственное, на что обратите внимание, это в TCP пакете обеспечьте ID пакета. И в OPC сервере необходимо разруливать эти ID.
Иначе 2 устройства не будут в одной сети жить, да и с одним будут проблемы ... Нужна уверенность, что вы получили ответ именно на свой запрос.


Зачем забивать чужими исходниками? -> Я сторонник брать готовое проверенное решение, если оно есть, вместо написания с нуля. Может Вы поделитесь исходниками?
SasaVitebsk
Нет.
Во-первых коммерческий проект.
Во-вторых мой модбас к вашему устройству, как рыбе зонтик. Собственно freemodbus тоже.
У нас разные адреса, разные функции и так далее.
Например у меня реализованы архивы ...
Готовые исходники на своё устройство вы не найдёте.
zltigo
QUOTE (yanvasiij @ Sep 9 2015, 11:57) *
Я сторонник брать готовое проверенное решение, если оно есть, вместо написания с нуля.

sm.gif
Непомнящий Евгений
Цитата(yanvasiij @ Sep 9 2015, 11:57) *
Зачем забивать чужими исходниками? -> Я сторонник брать готовое проверенное решение, если оно есть, вместо написания с нуля.


Это, ИМХО, оправдано для чего-то сложного, вроде usb / tcp-ip / ОС. Модбас - достаточно простая штука, тут наверное проще написать самому, чем разбираться с чужим и адаптировать под идеологию своей программы


Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.