|
Вопросы о SMH4 Работа и применение контроллеров с сенсорной панелью SMH4. |
|
Опции темы | Поиск в этой теме | Опции просмотра |
28.04.2021, 06:22 | #1 |
Новичок
Регистрация: Sep 2020
Сообщения: 18
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Замедление при работе с неправильным modbus tcp slave (решено)
При распределении переменных mbtcp slave по запросам SMLogix назначил в один запрос на запись (код функции 0x16) 124 переменных за раз. libmodbus с такой постановкой вопроса не согласен, ссылаясь на спецификацию протокола - там 123. На запрос записи 124 регистров тестовый сервер из состава libmodus пишет в лог ошибку и разрывает tcp соединение. Соответственно, эта процедура повторяется очень часто, что вызывает загрузку ПЛК процессом mbs до 65% и торможение визуализации.
Пока вылечил увеличением максимального количества регистров в пакете при записи до 125 и modbus_max_adu_length выдержка из modbus.h в libmodbus /* Modbus_Application_Protocol_V1_1b.pdf (chapter 6 section 3 page 15) * Quantity of Registers to read (2 bytes): 1 to 125 (0x7D) * (chapter 6 section 12 page 31) * Quantity of Registers to write (2 bytes) 1 to 123 (0x7B) * (chapter 6 section 17 page 38) * Quantity of Registers to write in R/W registers (2 bytes) 1 to 121 (0x79) */ |
28.04.2021, 10:43 | #2 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили:
655 раз(а) в 599 сообщениях
|
Ответ: Замедление при работе с неправильным modbus tcp slave
Также я рекомендую заглянуть в указанные в скобочках чаптеры и ознакомиться с происхождением ограничения на длину пакета. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
28.04.2021, 10:47 | #3 |
Senior Member
Регистрация: May 2010
Адрес: Москва
Сообщения: 857
Благодарил(а): 4 раз(а)
Поблагодарили:
85 раз(а) в 66 сообщениях
|
Ответ: Замедление при работе с неправильным modbus tcp slave
В документации на контроллеры есть сведения об этих ограничениях?
|
29.04.2021, 06:48 | #4 |
Новичок
Регистрация: Sep 2020
Сообщения: 18
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Замедление при работе с неправильным modbus tcp slave
|
29.04.2021, 10:29 | #5 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили:
655 раз(а) в 599 сообщениях
|
Ответ: Замедление при работе с неправильным modbus tcp slave
Добавлено через 50 секунд __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 29.04.2021 в 11:10 |
29.04.2021, 13:06 | #6 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 740
Благодарил(а): 12 раз(а)
Поблагодарили:
192 раз(а) в 188 сообщениях
|
Ответ: Замедление при работе с неправильным modbus tcp slave
RS232 / RS485 ADU = 253 bytes + Server address (1 byte) + CRC (2 bytes) = 256bytes. TCP MODBUS ADU = 253 bytes + MBAP (7 bytes) = 260 bytes. А причина тут просто в арифметике Код:
16 (0x10) Write Multiple registers Function code 1 Byte 0x10 Starting Address 2 Bytes 0x0000 to 0xFFFF Quantity of Registers 2 Bytes 0x0001 to 0x007B Byte Count 1 Byte 2 x N* Registers Value N* x 2 Bytes value |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
SMH4 проблема с опросом SMH2G по Modbus TCP (решено) | Max2114 | Вопросы о SMH4 | 26 | 20.05.2023 14:59 |
Зависает опрос slave modbus tcp | младшой | Связь с внешним миром | 25 | 11.03.2021 12:10 |
TRIM Modbus Slave на две сети (решено) | Jury.K | Связь с внешним миром | 15 | 27.03.2019 01:06 |
Honeywell MVC80-DH10M | LordN | Связь с внешним миром | 30 | 28.11.2016 14:21 |