Нет там никакой целочисленной переменной
команда 01 позволяет получать множество бит в одном запросе
В примере
FF 01 00 00 00 08 28 12
FF -адрес слейва
01 - команда Read Coil Status
00 - Адрес первого Coil Hi байт
00 - Адрес первого Coil Lo байт
00 - Количество Coil Hi байт
08 - Количество Coil Lo байт
28 12 CRC
Т.е. из устройства с адресом 255 читается 8 бит(Coil's) начиная с 00
В ответе на команду 01 запрошенные значения дискретных выходов передаются в упакованном виде по одному биту на флаг. Единица означает включённое состояние, ноль — выключенное. Значения запрошенных флагов заполняют сначала первый байт, начиная с младшего бита, затем следующие байты, также от младшего бита к старшим. Младший бит первого байта данных содержит значение флага, указанного в поле «адрес». Если запрошено количество флагов, не кратное восьми, то значения лишних битов заполняются нулями.
FF 01 01 00 60 60
FF -адрес устройства
01 - команда Read Coil Status
01 - Количество байт далее
00 - упакованные значения Coil's
60 60 - CRC
Т.к. мастер в ПР не поддерживает групповые запросы, то в команде 01 будет всего один Coil и нужно сделать 4 булевых сетевых переменных с последовательными битами 0, 1, 2, 3





Ответить с цитированием