Вложений: 4
Сравнение переменной DWORD со значением
Доброго дня. Я находил похожие вопросы и ознакамливался с предложенными там решениями, однако решить свою задачу не удалось. Возможно, чуть другой случай.
Имеется панель СП307, она считывает из модуля ввода в два регистра аналоговое значение температуры. Моя задача - отследить, находится ли данное значение в допустимых пределах, чтобы оповестить о неисправности датчика (обрыв, КЗ и тд).
Каждую секунду фнкц.область вызывает макрос с таким содержимым:
Код:
DWORD T12_temp; // объявляем переменную
T12_temp = MAKEDWORD(PSW[700], PSW[701]); // собираем ее из регистров
if ((T12_temp > -10) & (T12_temp <100)) SetPSB(900); // если переменная в диапазоне -10 .. 100, устанавливаем бит
Я не могу понять, почему не устанавливается бит PSB900, тогда как температура находится в данном диапазоне. Сама температура отображается корректно в дисплее - 2 градуса выше нуля.
Вложение 43381 Вложение 43382 Вложение 43379
Пробовал переставлять регистры в настройках проекта, но, кажется, собака зарыта в другом месте:
Вложение 43380
Подскажите, где я промахнулся? Спасибо