PDA

Просмотр полной версии : ModbusTCP slave Назначение адресации для регистров (ячеек) памяти (ПЛК110м2)



polinom
08.04.2022, 09:19
Добрый день!

Для чтения регистров клиентом с контроллера ПЛК110[М02] по ModbusTCP настроены в проекте:
Modbus (slave)[VAR] -> Modbus[FIX] -> TCP[VAR]

Имеется такая задача: сформировать область регистров (ячеек) памяти так, чтобы организовать чтение начиная с 2000го регистра типа WORD.
Таково требование у заказчика.

Т.е. смысл в том, чтобы клиент мог обратиться к регистрам памяти в интервале 2000-2120.
Со стороны клиента modbus tcp - "железно" вшито чтение по адресам 42001-42121.

Как лучше всего поступить, чтобы не заводить 2120шт. двубайтовых регистров типа
Modbus (slave)[VAR] -> 2 byte[VAR]*2120шт.

Благодарю за содействие!

melky
08.04.2022, 09:41
Через библиотеки видимо, так как через конфигурацию регистры всегда с нуля.

polinom
08.04.2022, 09:57
Пример есть какой-нибудь? Бился-бился - у меня не получилось.

A.Simonov
08.04.2022, 15:51
Пример есть какой-нибудь? Бился-бился - у меня не получилось.

Добрый день.

Есть пример-библиотека TCP Slave
https://owen.ru/forum/showthread.php?t=32898

Но под вашу задачу нужно будет её подправить, она открытая, её можно просто открыть в codesys и поправить под себя, а именно в FB Data_worker для переменной RegAddr добавить сдвиг в 2000 адресов, в интересующих вас функциях (лучше, наверное, во всех, чтобы не было сюрпризов)