PDA

Просмотр полной версии : Чтение битовой маски TRM-1032



SergeyGushchin
14.12.2021, 19:36
Доброго времени суток. Прошу объяснить логику расчета ячейки для считывания битовой маски ТРМ1032 по протоколу Modbus в MS 4D. В руководстве на ТРМ сказано:
Параметры битовой маски (состояние системы, аварии и др.) могут считываться функциями 0х03 и 0х01, но в этом случае номер регистра следует умножить на 16 и прибавить номер бита.
Пример
Требуется считать функцией 0х01 текущий сезон (адрес регистра 535, номер бита 1).
Адрес ячейки рассчитывается следующим образом: 535 * 16 + 1 = 8561

Адреса регистров с руководства:
535 Код состояния системы № 2 word
535.1 Переключения режимов «Старт»/«Стоп» контур № 1
535.2 Переключения режимов «Старт»/«Стоп» контур № 2
535.4 Зима контур № 1
535.5 Зима контур № 2

Судя по всему, в примере считывали адрес 535.4, каким образом выяснилось, что эта информация в 1 бите?

Для себя пытаюсь считать состояние кнопки "Ночь", адрес регистра 512.13. Считаю так: 512*16+13 = 8205. Но на выходе получаю false, хотя режим "Ночь" активен.

Евгений Зубков
14.12.2021, 20:13
Тут важный момент, вы пытаетесь считать состояние кнопки на входе DI7, а не наличие режима "Ночь", т.к. переход в него может осуществляться по встроенным часам. Замкните вход DI7, должно все получиться.
Если нужно считывать именно режим, то это регистры 536 и 537.

PS. Пример в РЭ поправим, там действительно ошибка.

SergeyGushchin
15.12.2021, 08:44
Благодарю за оперативный ответ.