Ну весь проект я выкладывать не буду, а сам алгоритм регулировки могу:
эта не полная версия(чёто мне ёе не найти), но рабочая,Код: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 используктся только для перегрузки пид регулятора тэна(когда тэн выключен он перегружается...




