Алгоритм работы микропроцессора ПЛК100
ПРИЛОЖЕНИЕ В
Листинг программы ПЛК100
PROGRAM geleokalektor (*подпрограмма управление гелеоколлектор*)
VAR (*Переменные*)
m1: BOOL;
m2: BOOL;
m3: BOOL;
m4: BOOL;
rs1: RS;
m5: BOOL;
m6: BOOL;
m7: BOOL;
m8: BOOL;
m9: BOOL;
m10: BOOL;
m11: BOOL;
m12: BOOL;
rs2: RS;
rs3: RS;
m13: BOOL;
END_VAR
VAR_OUTPUT
q1: BOOL;
END_VAR
VAR_INPUT
er:WORD;
d_t_nu: REAL;
dt_g: REAL;
set:BOOL;
END_VAR (*конец переменных, начало родпрограммы*)
m1:= dt_g=d_t_nu+8;
m2:= dt_g>d_t_nu+8;
m3:=dt_g=d_t_nu-4;
m4:=dt_g<d_t_nu-4;
m5:=dt_g<-10;
m6:=dt_g=-10;
m7:=dt_g>-5;
m8:=dt_g=-5;
m9:=dt_g>130;
m10:=dt_g=130;
m11:=d_t_nu>110;
m12:=d_t_nu=110;
rs1(set:=m1 OR m2 , reset1:=m3 OR m4 OR m11 OR m12);
rs2(set:=m5 OR m6 , reset1:=m6 OR m8 );
rs3(set:=m9 OR m10, reset1:=m11 OR m12 );
IF er6=61440 OR er6=61446 OR er6=61447 OR er6=61448 OR er6=61449 OR er6=61450
OR er6=61451 OR er6=61452 OR er6=61454 OR er6=61455 THEN m13:=1;
ELSIF er6=0 THEN m13:=0;
END_IF;
q1:=rs1.Q1 OR rs2.Q1 OR rs3.Q1 OR set OR m13;
PROGRAM ru4_avto (*подпрограмма переключение ручной-автомат*)
VAR (*ввод переменных*)
m1: BOOL;
END_VAR
VAR_INPUT
set: BOOL;
ar_set: BOOL;
ar_ru4: BOOL;
ar_res:BOOL;
time_set:BOOL;
END_VAR
VAR_OUTPUT
ar_q1: BOOL;
ar_reset: BOOL;
END_VAR
(*Начало программы*)
IF set=1 THEN ar_q1:=ar_ru4;
ELSIF set=0 THEN ar_q1:=ar_set;
END_IF;
IF set=1 THEN ar_reset:=NOT ar_ru4 OR m1;
ELSIF set=0 THEN ar_reset:=ar_res OR m1 ;
END_IF;
(*îòîïëåíèå*)
IF er1=61440 OR er1=61446 OR er1=61447 OR er1=61448 OR er1=61449 OR er1=61450
OR er1=61451 OR er1=61452 OR er1=61454 OR er1=61455 THEN m1:=1;
ELSE m1:=0;
END_IF;
PROGRAM t_v_ariston (*Подпрограмма нагрева воды в емкости от парогенератора*)
|
|
VAR
m11: BOOL;
m12: BOOL;
m21: BOOL;
m22: BOOL;
m1: BOOL;
m2: BOOL;
rs1: RS;
m3: BOOL;
m31: BOOL;
m32: BOOL;
m33: BOOL;
rs3: RS;
END_VAR
VAR_INPUT
set: BOOL;
dt_39: REAL;
END_VAR
VAR_OUTPUT
q1: BOOL;
q2:BOOL;
END_VAR
m11:= dt_39>70;
m12:= dt_39=70;
m1:= m11 OR m12;
m21:= dt_39<65;
m22:= dt_39=65;
m2:= m21 OR m22;
rs1(set:=set AND m2, reset1:=m1 OR NOT set);
q1:=rs1.Q1;
m31:=dt_39=90;
m32:=dt_39>90;
m33:= dt_39<70;
rs3(set:=m31 OR m32, reset1:=m33);
q2:=rs3.Q1;
PROGRAM timeers (*Подпрограмма даты и времени в плк*)
VAR
GetTime: CurTimeEx;
TimeAndDate: SystemTimeDate;
Sys_Time: SysTime64;
set_time: BOOL;
set_date: BOOL;
MM: UINT;
SS: UINT;
HH: UINT;
D: UINT;
M: UINT;
Y: UINT;
m1: BOOL;
m2: BOOL;
m3: BOOL;
m4: BOOL;
rs1: RS;
END_VAR
VAR_OUTPUT
q1: BOOL;
END_VAR
TimeAndDate.Day :=0;
TimeAndDate.DayOfWeek :=0;
TimeAndDate.dwHighMsec :=0;
TimeAndDate.dwLowMSecs :=0;
TimeAndDate.Milliseconds :=0;
TimeAndDate.Minute :=0;
TimeAndDate.Second :=0;
TimeAndDate.Hour :=0;
TimeAndDate.Year :=0;
TimeAndDate.Month :=0;
Sys_time.ulHigh :=0;
Sys_time.ulLow :=0;
GetTime (SystemTime:=Sys_Time , TimeDate:= TimeAndDate);
IF set_time THEN
TimeAndDate.Minute:=MM;
TimeAndDate.Second:=SS;
TimeAndDate.Hour:=HH;
GetTime (SystemTime:=Sys_Time , TimeDate:= TimeAndDate);
END_IF
IF set_date THEN
TimeAndDate.Day:=D;
TimeAndDate.Month:=M;
TimeAndDate.Year:=Y;
GetTime (SystemTime:=Sys_Time , TimeDate:= TimeAndDate);
END_IF
m1:=TimeAndDate.Hour>5;
m2:=TimeAndDate.Hour=5;
m3:=TimeAndDate.Hour=18;
m4:=TimeAndDate.Hour>18;
rs1(set:=m1 OR m2, reset1:=m3 OR m4);
q1:=rs1.Q1;
PROGRAM vkl_moloko_par (*Подпрограмма вывода пара*)
VAR
tof_1: TOF;
END_VAR
VAR_INPUT
set: BOOL;
|
|
END_VAR
VAR_OUTPUT
q1: BOOL;
END_VAR
tof_1(in:= set, pt:=t#600s);
q1:=tof_1.Q;
PROGRAM vkl_otoplenie (*Подпрограмма отопление*)
VAR
m1: BOOL;
m2: BOOL;
rs1: RS;
m3: BOOL;
m4: BOOL;
END_VAR
VAR_INPUT
dt58: REAL;
set: BOOL;
t_p: REAL;
set2: BOOL;
ul_d: REAL;
END_VAR
VAR_OUTPUT
q1: BOOL;
END_VAR
m1:=dt58>t_p-1;
m2:=dt58<t_p+1;
m4:=ul_d<10;
rs1(set:=set AND m2 AND m4, reset1:=m1 OR NOT set);
m3:=set2 AND NOT set;
q1:=rs1.Q1 OR m3;
PROGRAM vkl_parogenerator (*Подпрограмма работы парогенератора*)
VAR
m1: BOOL;
m2: BOOL;
rs1: RS;
m3: BOOL;
m4: BOOL;
rs2: RS;
m5: BOOL;
m6: BOOL;
m7: BOOL;
END_VAR
VAR_OUTPUT
kl5: BOOL;
og: BOOL;
END_VAR
VAR_INPUT
set1: BOOL;
amper_g: REAL;
dt_dv: REAL;
reset1: BOOL;
END_VAR
m1:=amper_g>38+1;
m2:=amper_g<38-1;
rs1(set:=set1 AND m1, reset1:=m2);
kl5:=rs1.Q1;
m3:=dt_dv=1.6;
m4:=dt_dv>1.6;
m5:=dt_dv=1;
m6:=dt_dv<1;
m7:=m5 OR m6;
rs2(set:=set1 AND m7, reset1:=m3 OR m4 OR reset1);
og := rs2.Q1;
PROGRAM vkl_vsego
VAR_INPUT
dt14: BOOL;
dt13: BOOL;
error_stop:BOOL;
END_VAR
VAR_OUTPUT
q1:BOOL;
kl9: BOOL;
kl5: BOOL;
END_VAR
VAR
rs2: RS;
rs3: RS;
rs4: RS;
rs5: RS;
rs6: RS;
rs8: RS;
m1: BOOL;
m2: BOOL;
r_trig1:R_TRIG;
tp1: TP;
END_VAR
rs2(set:=error_stop, reset1:= NOT error_stop);(* îòêëþ÷èòü åñëè îøèáêà*)
rs3(set:=1, reset1:=rs2.Q1);(*âêëþ÷åíèå è îòêëþ÷åíèå*)
r_trig1(clk:=1);
rs4(set:=r_trig1.Q, reset1:= dt14 OR rs6.Q1);
m1:=NOT dt13 AND 1;
m2:=NOT 1;
rs6(set:=m1, reset1:=dt14 OR m2);
tp1(IN := rs6.Q1, PT:= T#30s);
kl9:=tp1.Q AND NOT dt13 ;
rs8(set:=rs6.Q1, reset1:=dt14 OR tp1.Q);
kl5:=rs4.Q1 OR rs8.Q1;
|
|
rs5(set:=rs3.Q1,reset1:=rs4.Q1 OR rs6.Q1);
q1:=rs5.Q1;
PROGRAM PLC_PRG (*Основная программа*)
VAR
END_VAR
ru4_avto(set:=ru_avto, ar_set:= vkl_vsego.Q1 AND (vkl_moloko_par.q1 OR vkl_otoplenie.q1 OR t_v_ariston.q1) ,
ar_ru4:= strt_stp,
ar_res:= NOT vkl_vsego.Q1 OR NOT ( vkl_moloko_par.q1 OR vkl_otoplenie.q1 OR t_v_ariston.q1));
vkl_parogenerator(set1:=ru4_avto.ar_q1, reset1:=ru4_avto.ar_reset);
ogon:=vkl_parogenerator.og;
ind_og:=vkl_parogenerator.og;
kl_9:=vkl_vsego.kl9 ;
kl_5:=vkl_vsego.kl5 OR (vkl_vsego.Q1 AND vkl_parogenerator.kl5) AND NOT vkl_vsego.kl9 ;
k5:=vkl_vsego.kl5; k9:=vkl_vsego.kl9;
vkl_vsego(dt14:=dt_14, dt13:=dt_13); dt1_3:=dt_13; dt1_4:=dt_14;
t_v_ariston( set:= timeers.q1 ,dt_39:=dt39;
vkl_otoplenie(set:= z_r, dt58:=dt_58 ,t_p:=tp, set2:=otople, ul_d:=u_d);
otopl:=vkl_otoplenie.q1;
vkl_moloko_par(set:=par);
parr:=vkl_moloko_par.q1 ;
kl_22:=vkl_moloko_par.q1 OR t_v_ariston.q2; kl22:=vkl_moloko_par.q1 OR t_v_ariston.q2;
kl_18:=vkl_moloko_par.q1;
vkl_parogenerator(amper_g:= amperrrr, dt_dv:=d_dv);
d_dvv:=d_dv;
d_t39:=dt39;
amperrrrs:=amperrrr;
d_t58:=dt_58;
v:=vv;
w:=ww;
tulis:=u_d;
d_t_g:=dtg;
geleokalektor(d_t_nu:=d_n_u , dt_g:=dtg, set:=gel_ru4_avt, );
nasos_geleo:=geleokalektor.q1;
geleo_nasos:=geleokalektor.q1;
ПРИЛОЖЕНИЕ Г
Дата добавления: 2018-05-31; просмотров: 506; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!