1. Берёте из модуля оба значения iRD и SRD
2. Делаете ФБ
Код:
UNCTION_BLOCK DECODE_Err
VAR_INPUT
    iRD: INT;  (*Датчик*)
	SRD: WORD;
END_VAR
VAR_OUTPUT
    Rezultat: INT;  (*Результат*)
    Cod_Err: BYTE;  (*Код ошибки измерения*)
    Err: BOOL;  (*Наличее ошибки измерения*)
END_VAR
VAR
END_VAR

IF	SRD <>0 THEN
Err:=TRUE;    (*Установить ошибку измерений*)
CASE SRD OF
16#F000:        Cod_Err:=1;    (*Результаты измерения не верны*)
16#F006:        Cod_Err:=2;    (*Данные не готовы*)
16#F007:        Cod_Err:=3;    (*Датчик отключен*)
16#F00A:        Cod_Err:=4;    (*Измеренное значение слишком велико*)
16#F00B:        Cod_Err:=5;    (*Измеренное значение слишком мало*)
16#F00D:        Cod_Err:=6;    (*Обрыв датчика*)
16#F00F:        Cod_Err:=7;    (*Некорректный калибровочный коэффициент *)
END_CASE
ELSE
Err:=FALSE;
Cod_Err:=0;    (*Нет ошибок измерений*)
END_IF
IF iRD<0 OR Err THEN Rezultat:=0;
ELSE Rezultat:=iRD;
END_IF
3. На вход ФБ подаёте оба сигнала
Нажмите на изображение для увеличения. 

Название:	Захват-1.png 
Просмотров:	201 
Размер:	2.2 Кб 
ID:	25813
4. На выходе Rezultat будут или правильные значения или 0 пока мазут не прогрелся.
Это значение (Rezultat) используете в программе вместо iRD
5. Дополнительно получаете коды ошибок.