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