Приветствую, форумчане. Кто может поменять подсказать/логику работы выходов в программе. Нужно переделать логику работы выхода ПЛК-150 малое горение. Выход канала большого горения: если выход замкнут- большое горение, разомкнут - малое горение. Выход канала малого горения: если выход замкнут- работа горелки, разомкнут-ждущий режим.
Скрытый текст:
Temperatura :=( TP_3+9)*0.99;
temp:= Temperatura; (* Индикатор температуры текущей*)
zadn := zadanie; zadanie := redakt; (*Индикатор температуры заданной*)
Gisteresis := gist; (*Индикатор гистерезиса*)
Delta := delt; (*Индикатор порога*)
maloe := Maloe_gorenie; (*Индикатор малого горения*)
bolshoe := Bolshoe_gorenie; (*Индикатор большого горения*)
(* Управление гистерезисом*)
IF Temperatura > zadanie THEN G:= TRUE; END_IF;
IF Temperatura < zadanie - Gisteresis THEN G:= FALSE; END_IF;
(* Управление гистерезисом дельты*)
IF Temperatura > zadanie - Delta THEN D:= TRUE; END_IF;
IF Temperatura < zadanie - Delta - Gisteresis THEN D:= FALSE; END_IF;
IF D=TRUE THEN
(*===================(*Включено большое горение опускаемся сверху*)==================*)
IF Temperatura < zadanie - Delta - Gisteresis THEN
MIN_RELE := FALSE; MIN_INDIKATOR := FALSE;
MAX_RELE :=TRUE; MAX_INDIKATOR := TRUE;
Maloe_gorenie:=0;
Bolshoe_gorenie :=8888;
ELSE
(*Включено малое горение*)
IF G = TRUE THEN
IF Temperatura < zadanie - Gisteresis THEN
MIN_RELE := TRUE; MIN_INDIKATOR := TRUE;
MAX_RELE := FALSE; MAX_INDIKATOR := FALSE;
Maloe_gorenie :=8888;
Bolshoe_gorenie :=0;
ELSE
MIN_RELE := FALSE; MIN_INDIKATOR := FALSE;
MAX_RELE := FALSE; MAX_INDIKATOR := FALSE;
Maloe_gorenie := 0;
Bolshoe_gorenie :=0;
END_IF;
ELSE
IF Temperatura < zadanie THEN
MIN_RELE := TRUE; MIN_INDIKATOR := TRUE;
MAX_RELE := FALSE; MAX_INDIKATOR := FALSE;
Maloe_gorenie :=8888;
Bolshoe_gorenie :=0;
ELSE
MIN_RELE := FALSE; MIN_INDIKATOR := FALSE;
MAX_RELE := FALSE; MAX_INDIKATOR := FALSE;
Maloe_gorenie := 0;
Bolshoe_gorenie :=0;
END_IF;
END_IF;
END_IF;
ELSE
(*===================(*Включено большое горение поднимаемся вверх*)==================*)
IF Temperatura < zadanie - Delta THEN
MIN_RELE := FALSE; MIN_INDIKATOR := FALSE;
MAX_RELE :=TRUE; MAX_INDIKATOR := TRUE;
Maloe_gorenie:=0;
Bolshoe_gorenie :=8888;
ELSE
(*Включено малое горение*)
IF G = TRUE THEN
IF Temperatura < zadanie - Gisteresis THEN
MIN_RELE := TRUE; MIN_INDIKATOR := TRUE;
MAX_RELE := FALSE; MAX_INDIKATOR := FALSE;
Maloe_gorenie :=8888;
Bolshoe_gorenie :=0;
ELSE
MIN_RELE := FALSE; MIN_INDIKATOR := FALSE;
MAX_RELE := FALSE; MAX_INDIKATOR := FALSE;
Maloe_gorenie := 0;
Bolshoe_gorenie :=0;
END_IF;
ELSE
IF Temperatura < zadanie THEN
MIN_RELE := TRUE; MIN_INDIKATOR := TRUE;
MAX_RELE := FALSE; MAX_INDIKATOR := FALSE;
Maloe_gorenie :=8888;
Bolshoe_gorenie :=0;
ELSE
MIN_RELE := FALSE; MIN_INDIKATOR := FALSE;
MAX_RELE := FALSE; MAX_INDIKATOR := FALSE;
Maloe_gorenie := 0;
Bolshoe_gorenie :=0;
END_IF;
END_IF;
END_IF;
END_IF;