-
Подскажите, в чем разница опроса входов и какой вариант правильный?
В ModBus драйвере можно получать данные двумя способами:
1. HoldingRegisters тип данных Word, адреса входов 256, 257, 258...
2. InputRegisters тип данных Float32, адреса входов 288, 291, 294...
-
Вообще-то все довольно подробно описано в РЭ на модуль.
Если вкратце, то:
0. нет разницы какой командой считывать, 03 (Read Holding Registers) или 04 (Read Input Registers). Результат будет одинаковый.
1. Данные в формате Int_16, хранящиеся по адресам 256 и т.д., нужно интерпретировать с учетом смещения десятичной точки, которое для каждого канала хранится по адресу 32, и т.д. Это в ряде случаев удобно, вы можете обходиться целочисленной арифметикой, а интерпретировать результаты, как число с десятичной точкой, с известным количеством знаков после запятой.
2. Данные в формате Float_32, которые хранятся в паре регистров 288,289 и метка времени в формате Word_16, которая хранится в регистре 290, могут использоваться тогда, когда нужно значение в формате с плавающей точкой.
Чем именно пользоваться - зависит от задачи.