Таблица внизу ссылки modbus config помогает перевести приведенную выше таблицу и выдает вызов для получения DI1-12 (что, я полагаю, именно то, что вы пытаетесь сделать):
Код функции: 2 - чтение дискретных входов
Начальный адрес 0x14 - десятичный 20
Количество входов 0x0 C - 12 десятичных
Так что попробуйте modbusClient.ReadDiscreteInputs(20, 12);
.
(возможно, вы пытаетесь получить дополнительные поля, не охватываемые одним изображением; однако я бы предложил сначала попробовать описанное выше, а затем расширить его, чтобы охватить дополнительные входные данные, когда вы знаете, что это работает).
A большая часть документации по Modbus следует старым «стандартам» и может быть довольно запутанной (см. раздел «Modbus: когда 40001 действительно означает 1 или 0 действительно означает 1» в этой статье для получения дополнительной информации)