Запись в RAM wb-mir через modbus_client


#1

Добрый вечер!

Какой максимальной длины можно записать команду ИК в wb-mir?
Пишу с 2000 регистра. На 2202 запись прерывается с ошибкой.

Кажется, что 404 байта (202*2) довольно мало.
Я правильно понимаю, что 1 регистр - 2 байта?


#2

Мы в свое время написали статью про протокол Modbus, пожалуйста, прочтите ее :slight_smile:
Цитата оттуда:
Пакет данных Modbus выглядит, как это показано на рисунке. PDU (Protocol Data Unit) — общая часть пакета MODBUS, включающая код функции и данные пакета. ADU (Application Data Unit) — полный пакет MODBUS. Включает в себя специфичную для физического уровня часть пакета и PDU. Для последовательных линий в заголовке ADU передается адрес устройства, а в конце — контрольная сумма CRC16. Максимальный размер ADU в последовательных коммуникационных линиях составляет 253 байта (из максимальных, разрешенных спецификацией 256 байт вычитается 1 байт адреса и два байта контрольной суммы).
Holding-регистр – 2 байта, правильно.


#3

Спасибо. Это знаю.
Вопрос в том, какой длины можно записать команду. Понятно, что писать нужно блоками.


#4

Да, прошу прощения, это новый MIR, там есть ограничение на длину команды, с которым вы столкнулись. Это у нас на доработке. в MSW такого ограничения нет.


#5

Если правильно понимаю, в MSW не нужно читать столь длинные блоки данных. Не уверен, не пользовался, но в таблице увидел только максимально длинную последовательность 128-199 (80).

Как отличить новый MIR от старого?


#6

Напишите, пожалуйста, как будет решена данная проблема.

P.S.
Проблема со всеми MIR v2 или это зависит от прошивки?