-
VAR
Pid_one: PID_2POS_IM_ANR;
yst_temp: REAL;
START_ANR1: BOOL;
YDOP1: REAL;
IMIN1: REAL;
IMAX1: REAL;
out_val: REAL;
START_ANR2: BYTE;
c: BOOL;
d: BOOL;
tim1: TON;
tim2: TON;
END_VAR
Pid_one(PV:=Temp1, PV_TIME:=Time1, SP:=yst_temp, START_ANR:=START_ANR1, YDOP:=YDOP1, _IMIN:= IMIN1, _IMAX:= IMAX1);
out_val:=pid_one.out_val;
START_ANR2:=pid_one.STATE_ANR;
IF
START_ANR2=1
THEN
START_ANR1:=0;
ELSE
START_ANR1:=1;
END_IF
IF
out_val>0
THEN
tim1(IN:=1 ,PT :=T#2S);
d:=tim1.Q;
IF
d=1
THEN
Heather:=REAL_TO_WORD(MAX(0, out_val)*655.35);
tim1(IN:=0, PT:=T#2s);
END_IF
cooler:=0;
ELSE
tim2(IN:=1, PT :=T#2S);
c:=tim2.Q;
IF c=1
THEN
cooler:=REAL_TO_WORD(MAX(0,out_val*-1)*655.35);
tim2(IN:=0, PT:=T#2s);
END_IF
Heather:=0;
END_IF
Моя задача - при переходе с нагревателя на охладитель (или наоборот) создать паузу в 1 или 2 секунды.
Что происходит.
В начале при первом включении пауза появляется, но потом при переходе на охладитель она пропадает и дальше переходы происходят без паузы. Если начинать сначало охлаждать тогда первый переход с охлаждения на нагревание происходит с паузой, но потом при переходе с нагревания на охлаждение пауза пропадает и дальше опять переходы проходят без паузы.
Последний раз редактировалось DimaSik; 19.05.2009 в 09:42.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума