Здравствуйте.
но когда расход падает ниже 0,5 то уже идет сигнал как будто ноль и аварийная лампа зажигается.
Правильно, ведь Вы берёте значение AsInt, т.е. как целое число, а переменная у Вас, судя по описанию, вещественная. Если взять 0.5 как целое число, то будет произведено округление до ближайшего целого, т.е. до 0. Если взять 0.6, то до единицы. Поэтому нужно использовать AsFloat, т.е. брать число как вещественное.
begin
if (Rashod_HVS_1.AsFloat = 0) then
LampVar_3.Value := 1
else
LampVar_3.Value := 0;
end.
Второй вариант - брать значение без приведения к конкретному типу:
begin
if (Rashod_HVS_1.Value = 0) then
LampVar_3.Value := 1
else
LampVar_3.Value := 0;
end.