Доброго дня. Я находил похожие вопросы и ознакамливался с предложенными там решениями, однако решить свою задачу не удалось. Возможно, чуть другой случай.

Имеется панель СП307, она считывает из модуля ввода в два регистра аналоговое значение температуры. Моя задача - отследить, находится ли данное значение в допустимых пределах, чтобы оповестить о неисправности датчика (обрыв, КЗ и тд).

Каждую секунду фнкц.область вызывает макрос с таким содержимым:

Код:
DWORD T12_temp;						// объявляем переменную
T12_temp = MAKEDWORD(PSW[700], PSW[701]);		// собираем ее из регистров
if ((T12_temp > -10) & (T12_temp <100)) SetPSB(900);	// если переменная в диапазоне -10 .. 100, устанавливаем бит
Я не могу понять, почему не устанавливается бит PSB900, тогда как температура находится в данном диапазоне. Сама температура отображается корректно в дисплее - 2 градуса выше нуля.
screenshot_2019-06-30.jpg screenshot_2019-06-30 (1).jpg photo5244525380952501020.jpg

Пробовал переставлять регистры в настройках проекта, но, кажется, собака зарыта в другом месте:
photo5244525380952501021.jpg

Подскажите, где я промахнулся? Спасибо