MNDL-4
- 格式:ppt
- 大小:1.83 MB
- 文档页数:60


1FUNCTION_BLOCK PID_ty2VAR_INPUT3COM_RST:BOOL:=FALSE;//4MAN_ON:BOOL:=TRUE;//5PVPER_ON:BOOL:=FALSE;//6P_SEL:BOOL:=TRUE;//7I_SEL:BOOL:=TRUE;//8INT_HOLD:BOOL:=FALSE;//9I_ITL_ON:BOOL:=FALSE;//10D_SEL:BOOL:=FALSE;//11CYCLE:TIME:=T#1S;//12SP_INT:REAL:=0.0;//13PV_IN:REAL:=0.0;//14PV_PER:WORD:=0;//15MAN:REAL:=0.0;//16GAIN:REAL:= 2.0;//17TI:TIME:=T#20S;//18TD:TIME:=T#10S;//19TM_LAG:TIME:=T#2S;//20DEADB_W:REAL:=0.0;//21LMN_HLM:REAL:=100.0;//22LMN_LLM:REAL:=0.0;//23PV_FAC:REAL:= 1.0;//24PV_OFF:REAL:=0.0;//25LMN_FAC:REAL:= 1.0;//26LMN_OFF:REAL:=0.0;//27I_ITLVAL:REAL:=0.0;//28DISV:REAL:=0.0;//29END_VAR30VAR_OUTPUT31LMN:REAL:=0.0;//32LMN_PER:WORD:=0;//33QLMN_HLM:BOOL:=FALSE;//34QLMN_LLM:BOOL:=FALSE;//35LMN_P:REAL:=0.0;//36LMN_I:REAL:=0.0;//37LMN_D:REAL:=0.0;//38PV:REAL:=0.0;//39ER:REAL:=0.0;//40END_VAR41VAR42sInvAlt:REAL:=0.0;//43sIanteilAlt:REAL:=0.0;//44sRestInt:REAL:=0.0;//45sRestDif:REAL:=0.0;//46sRueck:REAL:=0.0;//47sLmn:REAL:=0.0;//48sbArwHLmOn:BOOL:=FALSE;//49sbArwLLmOn:BOOL:=FALSE;//50sbILimOn:BOOL:=TRUE;//-51END_VAR52VAR_TEMP53rCycle:REAL;//54Iant:REAL;//55Diff:REAL;//56Istwert:REAL;//57ErKp:REAL;//58rTi:REAL;//59rTd:REAL;//60rTmLag:REAL;//61Panteil:REAL;//62Ianteil:REAL;//63Danteil:REAL;//64Verstaerk:REAL;//65RueckDiff:REAL;//66RueckAlt:REAL;//67dLmn:REAL;//68gf:REAL;//Hilfwert69rVal:REAL;//Real Hilfsvariable70END_VAR711IF COM_RST THEN//PID2sIanteilAlt:=I_ITLVAL;3LMN:=0.0;4QLMN_HLM:=FALSE;5QLMN_LLM:=FALSE;6LMN_P:=0.0;7LMN_I:=0.0;8LMN_D:=0.0;9LMN_PER:=0;10PV:=0.0;11ER:=0.0;12sInvAlt:=0.0;13sRestInt:=0.0;14SRestDif:=0.0;15sRueck:=0.0;16sLmn:=0.0;17sbArwHLmOn:=FALSE;18sbArwLLmOn:=FALSE;19ELSE20rCycle:=TIME_TO_REAL(CYCLE)/1000.0;//21Istwert:=DINT_TO_REAL(INT_TO_DINT(WORD_TO_INT(PV_PER)))*0.003616898;22Istwert:=Istwert*PV_FAC+PV_OFF;//23IF NOT PVPER_ON THEN//24Istwert:=PV_IN;25END_IF;26PV:=Istwert;27ErKp:=SP_INT-PV;//28IF ErKp<-DEADB_W THEN29ER:=ErKp+DEADB_W;30ELSIF ErKp>DEADB_W THEN31ER:=ErKp-DEADB_W;32ELSE33ER:=0.0;34END_IF;35ErKp:=ER*GAIN;//36rTi:=DINT_TO_REAL(TIME_TO_DINT(TI))/1000.0;37rTd:=DINT_TO_REAL(TIME_TO_DINT(TD))/1000.0;38rTmLag:=DINT_TO_REAL(TIME_TO_DINT(TM_LAG))/1000.0;39IF rTi<rCycle*0.5THEN// >= 0.540rTi:=rCycle*0.5;41END_IF;42IF rTd<rCycle THEN// >=43rTd:=rCycle;44END_IF;45IF rTmLag<rCycle*0.5THEN// >= 0.546rTmLag:=rCycle*0.5;END_IF;47IF P_SEL THEN//48Panteil:=ErKp;49ELSE50Panteil:=0.0;51END_IF;52IF I_SEL THEN//53IF I_ITL_ON THEN//54Ianteil:=I_ITLVAL;55sRestInt:=0.0;56ELSIF57MAN_ON THEN//58Ianteil:=sLmn-Panteil-DISV;59sRestInt:=0.0;60ELSE//61Iant:=(rCycle/rTi)*(ErKp+sInvAlt)*0.5+sRestInt;62IF((Iant>0.0AND sbArwHLmOn)OR INT_HOLD)OR(Iant<0.0ANDsbArwLLmOn)THEN//63Iant:=0.0;64END_IF;65Ianteil:=sIanteilAlt+Iant;// := +66sRestInt:=sIanteilAlt-Ianteil+Iant;// sRestInt0.0 ;,0.067END_IF;68ELSE69Ianteil:=0.0;70sRestInt:=0.0;71END_IF;72Diff:=ErKp;73IF NOT MAN_ON AND D_SEL THEN//74Verstaerk:=rTd/(rCycle*0.5+rTmLag);75Danteil:=(Diff-sRueck)*Verstaerk;76RueckAlt:=sRueck;77RueckDiff:=rCycle/rTd*Danteil+sRestDif;78sRueck:=RueckDiff+RueckAlt;79sRestDif:=RueckAlt-sRueck+RueckDiff;//80ELSE//81Danteil:=0.0;82sRestDif:=0.0;83sRueck:=Diff;84END_IF;85dLmn:=Panteil+Ianteil+Danteil+DISV;//PID86IF MAN_ON THEN//PID87dLmn:=MAN;(*PID*)88ELSE89IF NOT I_ITL_ON AND I_SEL THEN//90IF Ianteil>LMN_HLM-DISV AND dLmn>LMN_HLM AND dLmn-LMN_D> LMN_HLM THEN9192rVal:=LMN_HLM-DISV;93gf:=dLmn-LMN_HLM;94rVal:=Ianteil-rVal;95IF rVal>gf THEN96rVal:=gf;97END_IF;98Ianteil:=Ianteil-rVal;99ELSIF Ianteil<LMN_LLM-DISV AND dLmn<LMN_LLM AND dLmn-LMN_D< LMN_LLM THEN100101rVal:=LMN_LLM-DISV;102gf:=dLmn-LMN_LLM;103rVal:=Ianteil-rVal;104IF rVal<gf THEN105rVal:=gf;106END_IF;107Ianteil:=Ianteil-rVal;108END_IF;109END_IF;110END_IF;111LMN_P:=Panteil;(**)112LMN_I:=Ianteil;(**)113LMN_D:=Danteil;(**)114sInvAlt:=Erkp;(**)115sIanteilAlt:=Ianteil;(**)116sbArwHLmOn:=FALSE;117sbArwLLmOn:=FALSE;118IF dlmn>=LMN_HLM THEN //()119QLMN_HLM:=TRUE;120QLMN_LLM:=FALSE;121dlmn:=LMN_HLM;122sbArwHLmOn:=TRUE;123ELSE124QLMN_HLM:=FALSE;125IF dLmn<=LMN_LLM THEN//126(**)127QLMN_LLM:=TRUE;128dlmn:=LMN_LLM;129sbArwLLmOn:=TRUE;130ELSE131QLMN_LLM:=FALSE;132END_IF;133END_IF;134sLmn:=dLmn;(**)135dLmn:=dLmn*LMN_FAC+LMN_OFF;(**)136LMN:=dLmn;(**)137dLmn:=dLmn*276.48;138IF dLmn>=32512.0THEN139dLmn:=32512.0;140ELSIF dLmn<=-32512.0THEN141dLmn:=-32512.0;142END_IF;143LMN_PER:=INT_TO_WORD(DINT_TO_INT(REAL_TO_DINT(dLmn)));(**)144END_IF;145。