Цитата:
FUNCTION_BLOCK SIMTEMP
VAR_INPUT
PROC:REAL:=0.0; (* процент открытия регулирующего клапана,т.е. выход пид в процентном исполнении*)
COLD:BOOL:=FALSE; (*симулировать охлаждение или нагрев*)
AMBIENTE:REAL:=20.0; (*стремление температуры к комнатной,т.е. состояние покоя*)
KA:REAL:=0.1;
VAPORE:REAL:=140.0; (*стремление температуры к температуре нагревательного(охладительного) элемента*)
KV:REAL:=0.5;
END_VAR
VAR_OUTPUT
TMP:REAL;
END_VAR
VAR
TMPBUF:REAL:=20.0;
END_VAR
IF COLD THEN
TMP:=TMPBUF+KA*(EXP((AMBIENTE-TMPBUF)/AMBIENTE)-1)+KV*(EXP((0.01-TMPBUF)/0.01)-1)*(PROC/100.0);
ELSE
TMP := TMPBUF + KA*(EXP((AMBIENTE-TMPBUF)/AMBIENTE)-1) + KV*(EXP((VAPORE-TMPBUF)/VAPORE)-1)*(PROC/100.0);
END_IF;
TMPBUF:=TMP;
если я правильно понял, то это ищите