saii
Туплю. Что тут не так? Если у меня Value равно 99, то если я прибавлю Config.DimValStep * 2 (который может быть чем угодно) - то получу Value больше 100.
Код:
IF (Value < Config.DimLimitMax) THEN
Value := Value + Config.DimValStep * 2; (* Прибавляем значение на шаг *)
ELSE
Value := Config.DimLimitMax; (* Уравниваем значение с максимумом, ограничивая его сверху *)
END_IF
Value - это сразу же выход диммера. Напрямую, выход FB. Поэтому я и не хотел его фигачить со знаком, а хотел чтобы он был WORD - чтобы сразу в регистры его можно было пихать без преобразований типов. Поэтому написал муть с проверкой на отрицательные значения в дополнительном коде.