Ну весь проект я выкладывать не буду, а сам алгоритм регулировки могу:
Код:
PROGRAM Regul (*регулировка управления климатической камерой (mashina)*)
VAR_INPUT
	iy:INT;
END_VAR
VAR
	delta_t:REAL;(*разность температур уставки*)
	b_dhod: BOOL;(*бит о  достижения диопазона температур уставки, нужен для перегрузки ПИД регулятора*)
END_VAR

delta_t:=mashina.ust_t-mashina.tek_t;
mashina.i_airing:=FALSE;
IF delta_t<10 AND delta_t>-10 THEN (*регулировка удержания*)
	mashina.i_airing:=FALSE;
	IF mashina.ust_t<=mashina.tek_t_sreda+9 AND mashina.ust_t>=mashina.tek_t_sreda+11 THEN
		mashina.r_ten:=TRUE;
		mashina.r_kompressor:=FALSE;
	ELSIF mashina.ust_t>mashina.tek_t_sreda+10 THEN
		mashina.r_ten:=TRUE;
		mashina.r_kompressor:=FALSE;
	ELSE
		mashina.r_ten:=TRUE;
		mashina.r_kompressor:=TRUE;
	END_IF

	IF b_dhod=FALSE THEN(*включаем бит достижения уставки, перегружаем тен*)
		IF delta_t < 0 THEN
			Mashina.r_ten:=FALSE;
		END_IF
		b_dhod:=TRUE;
	END_IF
ELSE (*delta_t>=10 OR delta_t<=-10 THEN*)
	mashina.kompressor_revers:=FALSE;
	b_dhod:=FALSE;(*температура уставки не достигнута*)
	IF mashina.tek_t>50 THEN
		IF delta_t<0 THEN
			mashina.i_airing:=TRUE;
			mashina.r_ten:=FALSE;
		ELSE
			mashina.i_airing:=FALSE;
			mashina.r_ten:=TRUE;
		END_IF

		mashina.r_kompressor:=FALSE;
	ELSE
		mashina.i_airing:=FALSE;
		IF delta_t>0 THEN
			mashina.r_ten:=TRUE;
			mashina.r_kompressor:=FALSE;
		ELSE
			mashina.r_ten:=FALSE;
			mashina.r_kompressor:=TRUE;
		END_IF
	END_IF
END_IF
эта не полная версия(чёто мне ёе не найти), но рабочая,
в этой есть небольшой баг(ну думаю сами найдёте)...
mashina - простинкая структура с температурами и режимами работы,
i_airing - это режим проветривания.
r_ten,r_kompressor - тэн и холодилка,
b_dhod используктся только для перегрузки пид регулятора тэна(когда тэн выключен он перегружается...