-
- Пример (запись 2-х регистров):Записать значения 0x000A и 0x0102 в
регистры 40002 и 40003 (адреса регистров 0001 и 0002) для
устройства 17 (0x11):11 10 0001 0002 04 000A 0102 3687 (последние 2
байта — CRC). Запрос мастера 13 байт. После количества регистров
один байт - количество байт данных - 1450(08.05.2026 12:50,
) - Вроде всё по примеру Yft(1 знак., 08.05.2026 12:42, картинка)
- Да, размер кадра не соответствует заголовку! - Nikolay_Po(08.05.2026 12:38)
- Вроде всё соответствует, правда и Master и Slave помогал писать
Deepseek. Yft(1 знак., 08.05.2026 12:49, картинка)
- Что, и картинка выше - тоже ИИ сгенерил? В запросе должно быть
только количество регистров, без количества байтов. А в ответе -
только количество байтов, а не количество регистров. - Nikolay_Po(08.05.2026 21:14)
- По спецификации количество байтов должно быть. Yft(1 знак., 12.05.2026 09:18, картинка)
- Открыл документ Modbus application protocol V1.1b3 с оф.сайта
modbus.org. И не вижу я там для функции 16 (0x10) Write Multiple
registers поля счетчика байт в запросе от мастера. :-/ reZident(30 знак., 08.05.2026 13:12, ссылка, ссылка)
- Таки есть Byte Count. Интересно, почему количество регистров
передаётся двумя байтами, а количество байт одним? Бapбoc(1 знак., 08.05.2026 13:28, картинка)
- ахз LordN(400 знак., 09.05.2026 11:45, ссылка)
- Та ну! Мне больше нравится моя версия. Формат запроса - фиксированный. Предельное количество регистров зависит от типа регистров и для однобитных регистров, в стандартной полезной нагрузке кадра Modbus, превышает 256 байт. Поэтому, поле количества регистров в стандартном запросе - двухбайтное. Чтобы не делать разные форматы запроса для регистров разного размера. Всего-то. - Nikolay_Po(1 знак., 09.05.2026 12:42, ссылка)
- Из вредности :) - Cкpипaч(08.05.2026 20:21)
- Понять это невозможно, можно только запомнить ;)) - ЫЫyкпy(08.05.2026 20:12)
- Это если не достаточно глубоко вникнуть. А если достаточно глубоко, то для регистров типа COIL, количество регистров измеряется двумя байтами, в то время как размер полезной нагрузки кадра - одним байтом. Поэтому количество регистров - два байта, а количество байт - один. Nikolay_Po(8 знак., 08.05.2026 21:11)
- Спасибо! Теперь увидел. - reZident(08.05.2026 13:30)
- ахз LordN(400 знак., 09.05.2026 11:45, ссылка)
- Таки есть Byte Count. Интересно, почему количество регистров
передаётся двумя байтами, а количество байт одним? Бapбoc(1 знак., 08.05.2026 13:28, картинка)
- Что, и картинка выше - тоже ИИ сгенерил? В запросе должно быть
только количество регистров, без количества байтов. А в ответе -
только количество байтов, а не количество регистров. - Nikolay_Po(08.05.2026 21:14)
- Вроде всё соответствует, правда и Master и Slave помогал писать
Deepseek. Yft(1 знак., 08.05.2026 12:49, картинка)
- Пример (запись 2-х регистров):Записать значения 0x000A и 0x0102 в
регистры 40002 и 40003 (адреса регистров 0001 и 0002) для
устройства 17 (0x11):11 10 0001 0002 04 000A 0102 3687 (последние 2
байта — CRC). Запрос мастера 13 байт. После количества регистров
один байт - количество байт данных - 1450(08.05.2026 12:50,