FUNCTION_BLOCK "TCONT_CP" TITLE =PID temperature controller with pulse generator and self-tuning //带脉冲发生器和自校正的PID温度控制器 { S7_techparam := 'S7WRTX.TCONT_CP' } AUTHOR : SIMATIC FAMILY : CONTROL NAME : TCONT_CP VERSION : 1.1 VAR_INPUT PV_IN : REAL ; //process variable in PV_PER : INT ; //process variable peripherie过程变量外围 DISV : REAL ; //disturbance variable扰动变量 INT_HPOS : BOOL ; //integral action hold in positive direction正向积分作用保持 INT_HNEG : BOOL ; //integral action hold in negative direction负方向积分作用保持 SELECT : INT ; //selection of call PID and pulse generator呼叫PID和脉冲发生器的选择 END_VAR VAR_OUTPUT PV : REAL ; //process variable LMN : REAL ; //manipulated variable操纵变量 LMN_PER : INT ; //manipulated variable peripherie操纵变量外围 QPULSE : BOOL ; //output pulse signal QLMN_HLM : BOOL ; //high limit of manipulated variable reached达到操纵变量的上限 QLMN_LLM : BOOL ; //low limit of manipulated variable reached达到操纵变量的下限 QC_ACT : BOOL := TRUE; //next cycle, the continuous controller is working下一个循环,连续控制器工作 END_VAR VAR_IN_OUT CYCLE : REAL := 1.000000e-001; //sample time of continuous controller [s]连续控制器的采样时间[s CYCLE_P : REAL := 2.000000e-002; //sample time of pulse generator [s]脉冲发生器的采样时间[s] SP_INT : REAL ; //internal setpoint内部设定值 MAN : REAL ; //manual value COM_RST : BOOL ; //complete restart完全重新启动 MAN_ON : BOOL := TRUE; //manual operation on手动操作 END_VAR VAR DEADB_W : REAL ; //dead band width死区宽度 I_ITLVAL : REAL ; //initialization value of the integral action积分作用的初始值 LMN_HLM : REAL := 1.000000e+002; //manipulated variable high limit操纵变量上限 LMN_LLM : REAL ; //manipulated variable low limit操纵变量下限 PV_FAC : REAL := 1.000000e+000; //process variable factor过程变量因子 PV_OFFS : REAL ; //process variable offset过程变量偏移 LMN_FAC : REAL := 1.000000e+000; //manipulated variable factor操纵变量因子 LMN_OFFS : REAL ; //manipulated variable offset操纵变量偏移 PER_TM : REAL := 1.000000e+000; //period time [s]周期时间 P_B_TM : REAL ; //minimum pulse/break time [s] TUN_DLMN : REAL := 2.000000e+001; //delta manipulated variable for process excitation过程激励的delta操纵变量 PER_MODE : INT ; //periphery mode: 0=standard, 1=climate, 2=voltage/current0=标准,1=气候,2=电压 PVPER_ON : BOOL ; //process variable periphery on过程变量外围打开 I_ITL_ON : BOOL ; //initialization of the integral action on积分作用的初始化 PULSE_ON : BOOL ; //pulse generator on脉冲发生器打开 TUN_KEEP : BOOL ; //keep tuning on (common tuning with other controllers)保持调谐(与其他控制器共同 ER : REAL ; //error signal LMN_P : REAL ; //proportionality component比例分量 LMN_I : REAL ; //integral component整体组件 LMN_D : REAL ; //derivative component导数分量 PHASE : INT ; //phase of self tuning (0..7)自调谐相位 STATUS_H : INT ; //status heating of self tuning自调谐状态加热 STATUS_D : INT ; //status controller design of self tuning自整定状态控制器的设计 QTUN_RUN : BOOL ; //tuning is active (phase 2)调谐处于活动状态(第2阶段) PI_CON : STRUCT GAIN : REAL ; //PI proportional gain TI : REAL ; //PI reset time [s] END_STRUCT ; PID_CON : STRUCT GAIN : REAL ; //PID proportional gain TI : REAL ; //PID reset time [s] TD : REAL ; //PID derivative time [s] END_STRUCT ; PAR_SAVE : STRUCT PFAC_SP : REAL := 1.000000e+000; //saved proportional factor for setpoint changes [0..1] GAIN : REAL ; //saved proportional gain TI : REAL ; //saved reset time [s] TD : REAL ; //saved derivative time [s] D_F : REAL := 5.000000e+000; //saved derivative factor TD/TM_LAG (5..10) CON_ZONE : REAL := 1.000000e+002; //saved control zone CONZ_ON : BOOL ; //saved control zone active END_STRUCT ; PFAC_SP : REAL := 1.000000e+000; //proportional factor for setpoint changes [0..1]设定值变化的比例因子 GAIN : REAL := 2.000000e+000; //proportional gain比例增益 TI : REAL := 4.000000e+001; //reset time [s]复位时间 TD : REAL := 1.000000e+001; //derivative time [s]导数时间 D_F : REAL := 5.000000e+000; //derivative factor TD/TM_LAG (5..10) CON_ZONE : REAL := 1.000000e+002; //control zone CONZ_ON : BOOL ; //control zone active控制区激活 TUN_ON : BOOL ; //self tuning on自调谐开启 TUN_ST : BOOL ; //start self tuning (with constant SP)启动自整定(SP恒定) UNDO_PAR : BOOL ; //undo change of controller parameters撤消控制器参数的更改 SAVE_PAR : BOOL ; //save current controller parameters保存当前控制器参数 LOAD_PID : BOOL ; //load optimized PI/PID parameters负载优化PI/PID参数 PID_ON : BOOL := TRUE; //PID mode onPID模式打开 GAIN_P : REAL ; //process proportional gain过程比例增益 TU : REAL ; //delay time [s]延迟时间 TA : REAL ; //recovery time [s]恢复时间 KIG : REAL ; //maximal ascent ratio of PVPV最大上升率 N_PTN : REAL ; //process order工艺指令 TM_LAG_P : REAL ; //process time lag for PTN model [s]PTN模型的处理时间滞后 T_P_INF : REAL ; //time to point of inflection [s]拐点时间 P_INF : REAL ; //PV at point of inflection - PV0拐点处的PV-PV0 LMN0 : REAL ; //manipulated variable at begin of tuning调谐开始时的操纵变量 PV0 : REAL ; //process value at begin of tuning调整开始时的过程值 PVDT0 : REAL ; //rate of change of PV at begin of tuning [1/s]调谐开始时PV的变化率 PVDT : REAL ; //current rate of change of PV [1/s]当前PV变化率 PVDT_MAX : REAL ; //Max. rate of change of PV per second [1/s]每秒PV的最大变化率 NOI_PVDT : REAL ; //ratio of noise in PVDT_MAX in %PVDT_MAX中的噪声比率 NOISE_PV : REAL ; //absolute noise in PVPV中的绝对噪声 FIL_CYC : INT := 1; //No of cycles for mean-value filter平均值滤波器的循环数 POI_CMAX : INT ; //max No of cycles after point of inflection拐点后的最大循环数 POI_CYCL : INT ; //No of cycles after point of inflection sctFil : INT ; srPv : REAL ; srNoise : REAL ; srPvdt2 : REAL ; srPvdtMax2 : REAL ; srNoise2 : REAL ; srPvOld2 : REAL ; siStatus : INT ; siSpDir : INT ; srTime : REAL ; sPvOld : REAL ; sSpOld : REAL ; srPvMin : REAL ; srPVsim : REAL ; srEffDlmn : REAL ; sInvAlt : REAL ; sIanteilAlt : REAL ; sRestInt : REAL ; sRestDif : REAL ; sRueck : REAL ; sLmn : REAL ; spassPTm : REAL ; sCycTmPass : REAL ; sPTm : REAL ; srOptLmn : REAL ; sbOptLmn : BOOL ; sbConzOn : BOOL ; sbSpChange : BOOL ; sbReOpt : BOOL ; sLmnHlmOld : REAL := 1.000000e+002; sLmnLlmOld : REAL ; srDiffSp : REAL ; siTime : DINT ; siCycle : DINT ; siCycleP : DINT ; siPulsFil : INT ; srPulsPv : REAL ; srDPvdt : REAL ; srDPvdt2 : REAL ; sNpInf : REAL ; sCycleM : REAL ; sGf11_30 : REAL ; sGf12_30 : REAL ; sGf21_30 : REAL ; sGf22_30 : REAL ; sPv0Sim_30 : REAL ; srPVsim3_30 : REAL ; srPVsim2_30 : REAL ; srPVsim1_30 : REAL ; srDelPvsim_30 : REAL ; sGf11_20 : REAL ; sGf12_20 : REAL ; sGf21_20 : REAL ; sGf22_20 : REAL ; sPv0Sim_20 : REAL ; srPVsim2_20 : REAL ; srPVsim1_20 : REAL ; srDelPvsim_20 : REAL ; sGf11_15 : REAL ; sGf12_15 : REAL ; sGf21_15 : REAL ; sGf22_15 : REAL ; sPv0Sim_15 : REAL ; srPVsim2_15 : REAL ; srPVsim1_15 : REAL ; srDelPvsim_15 : REAL ; END_VAR VAR_TEMP tTime : TIME ; //time measurement时间测量 iTime : DINT ; //time measurement rErKp : REAL ; //Hilfsvariable希尔夫变量 rDiff : REAL ; //膎derungswert rDiff_int : REAL ; //internal control error for control zone控制区内部控制错误 Verstaerk : REAL ; //Verst鋜kung RueckDiff : REAL ; //Differenz des R點kkopplungswertes耦合值的差异 RueckAlt : REAL ; //Alter R點kkopplungswert dLmn : REAL ; //Stellwert bUpp : BOOL ; //aktueller Zustand von QPVURLMP当前状态 bDownp : BOOL ; //aktueller Zustand von QPVDRLMP bUpn : BOOL ; //aktueller Zustand von QPVURLMN bDownn : BOOL ; //aktueller Zustand von QPVDRLMN bHvar : BOOL ; //Hilfsvariable辅助变量 bIZv : BOOL ; //Impulszeit / Pausenzeit verl鋘gern减少脉冲时间、暂停时间 bLMNnew : BOOL ; //PID-Regler hat eine neue Stellgr鲞e berechnetPID控制器已计算出新的设置大小 bPulse : BOOL ; //pulse generator is executed执行脉冲发生器 bConzOn : BOOL ; //control zone exceeded (current cycle)超出控制区域(当前周期) rSeek : REAL ; //seek range for point of inflection寻找感染点的范围 rPvDelt : REAL ; //change of Pv since tuning start自调谐开始以来Pv的变化 rPvFil : REAL ; //filtered process variable过滤过程变量 rPV0 : REAL ; //unsigned PV0 for internal use内部使用的无符号PV0 rPvdtOri : REAL ; //original rPvdt (unlimited by ramp) [1/s]原始rPvdt(不受斜坡限制) rPVsigned : REAL ; //filtered PV whose sign is not changed by SpDir符号未被SpDir更改的已过滤PV rSpDelt : REAL ; //setpoint change设定值变化 tw_durch_tu : REAL ; //Verh鋖tnis Wendepunktzeit zu Verzugszeit转折点时间与延迟时间之比 gf : REAL ; //Hilfwert帮助值 koeff : REAL ; //Koeffizient系数 rCycle : REAL ; //increased Cycle due TO additional filter由于额外的过滤器而增加的循环 rTmLag : REAL ; //= TD/D_F=时间/日期 rDeltaI : REAL ; //change of integral part整体部件变更 rVal : REAL ; //Real Hilfsvariable实际辅助变量 rPvNew2 : REAL ; //parallel new PV with twice as many filter cycles具有两个相同滤波器周期的并行新P rNoiPvdt : REAL ; //Noise / PvdtMax * 100PvdtMax噪音 rPvdtMax0 : REAL ; //PVDT_MAX - PVDT0; rPVin : REAL ; //PV input for pulse cycle mean value filter脉冲周期平均值滤波器的PV输入 rP_B_TM : REAL ; //internal minimum pulse/break time [s]内部最小脉冲/中断时间 rPvdt : REAL ; //internal current rate of change of PV [1/s]PV的内部电流变化率 rPvdt2 : REAL ; //parallel gradient with twice as many filter cycles具有两个相同滤波器周期的平行 rPvdt3 : REAL ; //start value for srPvdt2起始值 rLmnPmod : REAL ; //proportionality component modified for CON_ZONE CON_ZONE的比例分量修改 iFilCyc : INT ; //internal: No of cycles for mean-value filter内部:平均值过滤器的循环数 iVal : INT ; rT1sim : REAL ; //Zeitkonstante der Simulation模拟时间常数 rT2sim : REAL ; //Zeitkonstante der Simulation模拟时间常数 rKsim : REAL ; //Verst鋜kung der Simulation模拟的增强 rSumHp : REAL ; //Summe zur Simulation mit Ordnung rHp订单为rHp的模拟总和 rSumLp : REAL ; //Summe zur Simulation mit Ordnung rLp订单为rLp的模拟总和 rHp : REAL ; //n鋍hst h鰄ere Ordnung Simulation rLp : REAL ; //n鋍hst niedrigere Ordnung Simulation 下一次低阶模拟 rNptn : REAL ; //Ordnung bestimmt durch Simulation 通过模拟确定的顺序 rNptnHl : REAL ; //Obergrenze der Ordnung bestimmt durch Simulation 通过模拟确定的订单上限 rNptnLl : REAL ; //Untergrenze der Ordnung bestimmt durch Simulation 通过模拟确定的订单下限 END_VAR BEGIN NETWORK TITLE =SCL Netzwerk //generiert vom SCL 躡ersetzer Version: SCL K5.1.5.1 (C5.1.9.17)带脉冲发生器和自 //校正的PID温度控制器 SET ; SAVE ; = L 174.1; A #COM_RST; JCN A7d0; L 0.000000e+000; T #PV; T #ER; T #LMN_P; T #LMN_I; T #LMN_D; T #LMN; L 0; T #LMN_PER; T #PHASE; CLR ; = #QLMN_HLM; = #QLMN_LLM; SET ; = #QC_ACT; CLR ; = #QPULSE; = #TUN_ON; = #UNDO_PAR; = #SAVE_PAR; = #LOAD_PID; TAK ; T #sInvAlt; L #I_ITLVAL; T #sIanteilAlt; TAK ; T #sRestInt; T #sRestDif; T #sRueck; T #sLmn; T #srDiffSp; L 0; T #siPulsFil; TAK ; T #srPulsPv; T #spassPTm; T #sCycTmPass; T #sPTm; = #sbConzOn; = #sbReOpt; T #sGf11_30; T #sGf12_30; T #sGf21_30; T #sGf22_30; T #sPv0Sim_30; T #srPVsim3_30; T #srPVsim2_30; T #srPVsim1_30; T #srDelPvsim_30; T #sGf11_20; T #sGf12_20; T #sGf21_20; T #sGf22_20; T #sPv0Sim_20; T #srPVsim2_20; T #srPVsim1_20; T #srDelPvsim_20; T #sGf11_15; T #sGf12_15; T #sGf21_15; T #sGf22_15; T #sPv0Sim_15; T #srPVsim2_15; T #srPVsim1_15; T #srDelPvsim_15; = #COM_RST; JU A7d1; A7d0: CLR ; A #PULSE_ON; NOT ; L #SELECT; L 2; = L 174.2; <>I ; A #QC_ACT; O L 174.2; L #SELECT; L 3; = L 174.2; ==I ; O L 174.2; = #bLMNnew; L #SELECT; L 0; ==I ; L #SELECT; L 2; = L 174.2; ==I ; O L 174.2; A #PULSE_ON; = #bPulse; A #PVPER_ON; JCN A7d2; L #PER_MODE; L 1; ==I ; JCN A7d3; L #PV_PER; ITD ; DTR ; L 1.000000e-002; *R ; T #rPVin; JU A7d4; A7d3: L #PER_MODE; L 2; ==I ; JCN A7d5; L #PV_PER; ITD ; DTR ; L 3.616898e-003; *R ; T #rPVin; JU A7d4; A7d5: L #PV_PER; ITD ; DTR ; L 1.000000e-001; *R ; T #rPVin; A7d4: L #rPVin; L #PV_FAC; *R ; L #PV_OFFS; +R ; T #rPVin; JU A7d6; A7d2: L #PV_IN; T #rPVin; A7d6: CLR ; A #bPulse; JCN A7d7; L #rPVin; L #sPvOld; -R ; L #srPulsPv; +R ; T #srPulsPv; L #siPulsFil; L 1; +I ; T #siPulsFil; A7d7: CLR ; A #bLMNnew; JCN A7d8; L #siPulsFil; L 0; >I ; JCN A7d9; L #siPulsFil; ITD ; DTR ; L #srPulsPv; TAK ; /R ; L #sPvOld; +R ; T #PV; JU A7da; A7d9: L #rPVin; T #PV; A7da: L 0; T #siPulsFil; L 0.000000e+000; T #srPulsPv; CLR ; A #LOAD_PID; A #MAN_ON; JCN A7db; A #PID_ON; JCN A7dc; L #PID_CON.GAIN; L 0.000000e+000; <>R ; JCN A7dd; L #PID_CON.GAIN; T #GAIN; L #PID_CON.TI; T #TI; L #PID_CON.TD; T #TD; L 2.500000e+002; L #GAIN; /R ; T #CON_ZONE; JU A7dc; A7dd: CLR ; = #PID_ON; A7dc: CLR ; A #PID_ON; NOT ; L #PI_CON.GAIN; L 0.000000e+000; = L 174.2; <>R ; A L 174.2; JCN A7df; L #PI_CON.GAIN; T #GAIN; L #PI_CON.TI; T #TI; L 0.000000e+000; T #TD; CLR ; = #CONZ_ON; L 2.500000e+002; L #GAIN; /R ; T #CON_ZONE; A7df: L #CON_ZONE; L 0.000000e+000; R ; A L 174.2; JCN A7e1; L #PAR_SAVE.PFAC_SP; T #PFAC_SP; L #PAR_SAVE.GAIN; T #GAIN; L #PAR_SAVE.TI; T #TI; L #PAR_SAVE.TD; T #TD; L #PAR_SAVE.D_F; T #D_F; A #PAR_SAVE.CONZ_ON; = #CONZ_ON; L #PAR_SAVE.CON_ZONE; T #CON_ZONE; A7e1: CLR ; = #UNDO_PAR; A #SAVE_PAR; JCN A7e2; L #PFAC_SP; T #PAR_SAVE.PFAC_SP; L #GAIN; T #PAR_SAVE.GAIN; L #TI; T #PAR_SAVE.TI; L #TD; T #PAR_SAVE.TD; L #D_F; T #PAR_SAVE.D_F; A #CONZ_ON; = #PAR_SAVE.CONZ_ON; L #CON_ZONE; T #PAR_SAVE.CON_ZONE; CLR ; = #SAVE_PAR; A7e2: L #FIL_CYC; T #iFilCyc; L #PHASE; L 2; <>I ; JCN A7e3; L 1; T #iFilCyc; A7e3: L #iFilCyc; ITD ; DTR ; L #CYCLE; *R ; T #rCycle; L #PHASE; L 2; =I ; JCN A7e7; L #sctFil; ITD ; DTR ; L #srPv; TAK ; /R ; T #rPvdt; L #sPvOld; +R ; T #rPvFil; L #rPvdt; L #rCycle; /R ; T #rPvdt; L 0; T #sctFil; L 0.000000e+000; T #srPv; L #rPvdt; T #rPvdtOri; L #siSpDir; ITD ; DTR ; L #PVDT; *R ; T #gf; L #rPvdt; TAK ; -R ; T #rVal; L 0.000000e+000; R ; JCN A7eb; L #gf; L #srDPvdt; +R ; T #rPvdt; JU A7ed; A7eb: L #gf; L #srDPvdt; -R ; L #rPvdt; TAK ; I ; JCN A7f0; L #PHASE; L 3; R ; O #TUN_ST; JCN A83f; L #rSpDelt; L 0.000000e+000; <>R ; JCN A7fe; SET ; = #sbSpChange; A7fe: L #SP_INT; L #PV; R ; JCN A800; L #LMN0; -R ; T #srEffDlmn; JU A802; A800: L #gf; L #LMN_LLM; R ; A L 174.2; JCN A803; L 30002; T #STATUS_H; L #sSpOld; T #SP_INT; CLR ; = #TUN_ON; L 0; T #PHASE; JU A804; A803: TAR2 LD 176; UC SFC 64 { P#L 0.0}; LAR2 LD 176; L #tTime; T #iTime; L #siTime; >D ; JCN A805; L #iTime; TAK ; -D ; T #iTime; JU A806; A805: L #iTime; L L#1; +D ; T #iTime; L #siTime; -D ; L L#2147483647; +D ; T #iTime; A806: L #iTime; DTR ; T #sCycleM; L 1.000000e-003; *R ; T #srTime; L #siCycle; DTR ; /R ; T #sCycleM; L #CYCLE; TAK ; -R ; L #CYCLE; /R ; T #srTime; L 5.000000e-002; >R ; L #srTime; L -5.000000e-002; = L 174.2; =R ; JCN A80c; L 0; T #POI_CYCL; JU A80c; A80a: L #PVDT; T #PVDT_MAX; L #POI_CYCL; L 0; >I ; JCN A80c; L #POI_CYCL; L 2; *I ; T #iVal; L #POI_CMAX; L #iVal; <=I ; JCN A80e; T #POI_CMAX; A80e: L 0; T #POI_CYCL; A80c: L #siTime; L L#1; +D ; T #siTime; L L#2; L #siTime; ==D ; JCN A80f; L #sPvOld; L #rPVsigned; +R ; L 5.000000e-001; *R ; T #rPvNew2; L #srPvOld2; -R ; L 2.000000e+000; TAK ; T LD 180; TAK ; L #rCycle; *R ; L LD 180; TAK ; /R ; L #siSpDir; ITD ; DTR ; *R ; T #rPvdt2; L #srPvdt2; -R ; T #rVal; L 0.000000e+000; R ; JCN A811; L #srPvdt2; L #srDPvdt2; +R ; T #rPvdt2; JU A813; A811: L #srPvdt2; L #srDPvdt2; -R ; L #rPvdt2; TAK ; R ; JCN A816; L 1.000000e+002; L #srNoise; *R ; L #PVDT_MAX; /R ; T #rNoiPvdt; JU A817; A816: L 1.000000e+002; T #rNoiPvdt; A817: L #PVDT_MAX; L #PVDT0; -R ; T #rPvdtMax0; L 8.000000e-001; L #rSeek; *R ; L #rPvDelt; TAK ; D ; L #PVDT; L 0.000000e+000; = L 174.3; ==R ; A L 174.3; L 999; L #siStatus; = L 174.3; ==I ; O L 174.3; L #rNoiPvdt; L 6.000000e+001; = L 174.3; >R ; L #siCycle; L L#7; = L 174.4; >D ; A L 174.4; L 2; L #POI_CYCL; = L 174.4; >I ; L 9.900000e-001; L #srPvdtMax2; *R ; L #srPvdt2; TAK ; = L 174.5; >R ; O L 174.5; A L 174.4; O L 174.3; L #rNoiPvdt; L 5.000000e+000; = L 174.3; >R ; L #siCycle; L L#15; = L 174.4; >D ; A L 174.4; L 2; L #POI_CYCL; = L 174.4; >I ; A L 174.4; O L 174.3; A L 174.2; JCN A818; L #FIL_CYC; L 2; *I ; T #FIL_CYC; L #sPvOld; L #rPVsigned; +R ; L 5.000000e-001; *R ; T #rPVsigned; L #srDPvdt2; T #srDPvdt; L #srNoise2; T #srNoise; L #srPvdtMax2; T #PVDT_MAX; T #PVDT; L 0; T #POI_CYCL; L #srPvOld2; L #rPvNew2; +R ; L 5.000000e-001; *R ; T #srPvOld2; L #PVDT0; T #srPvdtMax2; L #srNoise2; L 5.000000e-001; *R ; T #srDPvdt2; L 0.000000e+000; T #srNoise2; L #rPvdt3; T #srPvdt2; L L#0; T #siTime; T #siCycle; L 0; T #siStatus; A818: L L#2; L #siTime; ==D ; JCN A819; L #rPvNew2; T #srPvOld2; L L#0; T #siTime; A819: L 3.000000e-001; L #rSeek; *R ; L #rPvDelt; TAK ; >R ; JCN A81a; L #POI_CYCL; L #POI_CMAX; >=I ; L #siSpDir; ITD ; DTR ; L #P_INF; *R ; L #rPvDelt; TAK ; -R ; L 2.000000e+000; TAK ; T LD 180; TAK ; L #NOISE_PV; *R ; L LD 180; TAK ; = L 174.2; >R ; A L 174.2; L 1.200000e+000; L #P_INF; *R ; L #siSpDir; ITD ; DTR ; *R ; L #rPvDelt; TAK ; = L 174.2; >R ; A L 174.2; JCN A81b; CLR ; = #QTUN_RUN; A #TUN_KEEP; NOT ; JCN A81a; L 3; T #PHASE; JU A81a; A81b: L #rPvDelt; L #rSeek; >R ; A #sbSpChange; JCN A81a; L #POI_CYCL; L 0; ==I ; JCN A81f; L 1; T #POI_CYCL; A81f: L #STATUS_H; L 20; +I ; T #STATUS_H; CLR ; = #QTUN_RUN; L 3; T #PHASE; A81a: L 1; L #POI_CYCL; ==I ; JCN A820; L 1.000000e-009; L #rPvdtMax0; R ; JCN A822; T #rVal; A822: L 1.000000e+002; L #rVal; *R ; L #rPvdtMax0; /R ; T #NOI_PVDT; L #rVal; L 4.500000e-001; *R ; L #rPvdtMax0; TAK ; -R ; T #rPvdtMax0; L #rVal; L 4.500000e-001; *R ; L #PVDT_MAX; TAK ; -R ; L #srTime; *R ; L #rPvDelt; -R ; L #rPvdtMax0; /R ; L #rCycle; TAK ; T LD 180; TAK ; L #CYCLE; -R ; L 5.000000e-001; *R ; L LD 180; TAK ; -R ; T #TU; L #rPvdtMax0; L #srEffDlmn; /R ; L #siSpDir; ITD ; DTR ; *R ; L 1.000000e+002; *R ; T #KIG; L #siSpDir; ITD ; DTR ; L #rPvDelt; *R ; T #P_INF; L 2.000000e+000; L #rCycle; *R ; L #srTime; TAK ; -R ; T #T_P_INF; L 1.129000e+000; L #TU; *R ; T #rT1sim; L 1.057200e+002; L #TU; *R ; T #rT2sim; L 1.110300e+000; L #TU; *R ; L #KIG; *R ; T #rKsim; L #rT1sim; L #CYCLE; +R ; L #rT1sim; TAK ; /R ; T #sGf11_15; L #rT1sim; L #CYCLE; +R ; L #CYCLE; TAK ; /R ; L #rKsim; *R ; L #siSpDir; ITD ; DTR ; *R ; T #sGf12_15; L #rT2sim; L #CYCLE; +R ; L #rT2sim; TAK ; /R ; T #sGf21_15; L #rT2sim; L #CYCLE; +R ; L #CYCLE; TAK ; /R ; T #sGf22_15; L 1.290000e+000; L #PVDT0; *R ; L #rT2sim; *R ; L #PV0; +R ; T #sPv0Sim_15; L #rPvFil; TAK ; -R ; T #srPVsim2_15; L #rT2sim; L #PVDT; *R ; L #srPVsim2_15; +R ; T #srPVsim1_15; L 3.570000e+000; L #TU; *R ; T #rT1sim; L 3.570000e+000; L #TU; *R ; T #rT2sim; L 9.700000e-002; L #KIG; *R ; L #TU; *R ; T #rKsim; L #rT1sim; L #CYCLE; +R ; L #rT1sim; TAK ; /R ; T #sGf11_20; L #rT1sim; L #CYCLE; +R ; L #CYCLE; TAK ; /R ; L #rKsim; *R ; L #siSpDir; ITD ; DTR ; *R ; T #sGf12_20; L #rT2sim; L #CYCLE; +R ; L #rT2sim; TAK ; /R ; T #sGf21_20; L #rT2sim; L #CYCLE; +R ; L #CYCLE; TAK ; /R ; T #sGf22_20; L 1.600000e+000; L #PVDT0; *R ; L #rT2sim; *R ; L #PV0; +R ; T #sPv0Sim_20; L #rPvFil; TAK ; -R ; T #srPVsim2_20; L #rT2sim; L #PVDT; *R ; L #srPVsim2_20; +R ; T #srPVsim1_20; L 1.247000e+000; L #TU; *R ; T #rT1sim; L 1.247000e+000; L #TU; *R ; T #rT2sim; L 4.600000e-002; L #KIG; *R ; L #TU; *R ; T #rKsim; L #rT1sim; L #CYCLE; +R ; L #rT1sim; TAK ; /R ; T #sGf11_30; L #rT1sim; L #CYCLE; +R ; L #CYCLE; TAK ; /R ; L #rKsim; *R ; L #siSpDir; ITD ; DTR ; *R ; T #sGf12_30; L #rT2sim; L #CYCLE; +R ; L #rT2sim; TAK ; /R ; T #sGf21_30; L #rT2sim; L #CYCLE; +R ; L #CYCLE; TAK ; /R ; T #sGf22_30; L 3.000000e+000; L #PVDT0; *R ; L #rT2sim; *R ; L #PV0; +R ; T #sPv0Sim_30; L #rPvFil; TAK ; -R ; T #srPVsim3_30; L #rT2sim; L #PVDT; *R ; L #srPVsim3_30; +R ; T #srPVsim2_30; L #rT2sim; L #PVDT; *R ; L #srPVsim2_30; +R ; T #srPVsim1_30; A820: L 0; L #POI_CYCL; R ; JCN A828; L 7.000000e-001; L #srTime; *R ; T #TU; L #STATUS_H; L 300; +I ; T #STATUS_H; A828: L #srTime; L #TU; /R ; T #tw_durch_tu; L 7.600000e-001; *R ; L #tw_durch_tu; *R ; L 4.400000e-002; -R ; T #TA; L 2.469000e+000; L #tw_durch_tu; >R ; JCN A829; L 2.469000e+000; -R ; L 4.800000e-001; *R ; L #TA; +R ; T #TA; A829: L #TA; L 3.954000e-001; -R ; T #gf; L 1.100000e+000; *R ; L 7.982600e+000; +R ; L #gf; /R ; T #N_PTN; L #TA; L #TU; *R ; T #TA; L #N_PTN; L 1.010000e+000; R ; JCN A82c; T #N_PTN; L #STATUS_H; L 2000; +I ; T #STATUS_H; A82c: L #NOI_PVDT; L 1.000000e-002; *R ; L #PVDT_MAX; TAK ; T LD 180; TAK ; L #PVDT0; -R ; L LD 180; *R ; T #srNoise; L 1.000000e-002; L #KIG; *R ; L #TA; *R ; T #GAIN_P; L #STATUS_H; L 10; =R ; JCN A830; L 2.000000e+000; L #N_PTN; +R ; L #N_PTN; TAK ; T LD 180; TAK ; L 1.000000e+000; -R ; L LD 180; TAK ; /R ; L 4.000000e+000; /R ; L #GAIN_P; /R ; T #PI_CON.GAIN; L 2.000000e+000; L #N_PTN; +R ; L #TM_LAG_P; *R ; L 3.000000e+000; /R ; T #PI_CON.TI; L 7.000000e+000; L #N_PTN; *R ; L 1.600000e+001; +R ; T #koeff; L #N_PTN; L 2.600000e+000; <=R ; JCN A831; L 3.562500e+000; L #GAIN_P; /R ; T #PID_CON.GAIN; L 310; T #STATUS_D; JU A832; A831: L #N_PTN; L 2.000000e+000; -R ; L #koeff; TAK ; /R ; L 1.600000e+001; /R ; L #GAIN_P; /R ; T #PID_CON.GAIN; L 320; T #STATUS_D; A832: L #koeff; L #TM_LAG_P; *R ; L 1.500000e+001; /R ; T #PID_CON.TI; L 1.000000e+000; L #N_PTN; +R ; L 3.000000e+000; TAK ; T LD 180; TAK ; L #N_PTN; +R ; L LD 180; *R ; L #TM_LAG_P; *R ; L #koeff; /R ; T #PID_CON.TD; CLR ; = #CONZ_ON; JU A833; A830: L 110; T #STATUS_D; SET ; = #CONZ_ON; L 6.000000e+000; L #TU; *R ; T #PI_CON.TI; L 4.400000e+001; L #TU; /R ; L #KIG; /R ; T #PI_CON.GAIN; L 2.000000e+000; L #TU; *R ; T #PID_CON.TI; L 2.727272e+000; L #PI_CON.GAIN; *R ; T #PID_CON.GAIN; L 2.000000e+000; T #gf; L #N_PTN; L 1.500000e+000; >R ; JCN A834; L #N_PTN; TAK ; -R ; L 2.500000e+000; *R ; L #gf; TAK ; -R ; T #gf; L 121; T #STATUS_D; A834: L #N_PTN; L 1.900000e+000; >R ; JCN A835; L #PI_CON.GAIN; L #gf; *R ; T #PI_CON.GAIN; L 1.000000e+000; L #gf; -R ; L 4.000000e+000; *R ; L 1.000000e+000; +R ; L #PID_CON.TI; *R ; T #PID_CON.TI; L 200; T #STATUS_D; A835: L #PID_CON.GAIN; L #gf; *R ; T #PID_CON.GAIN; L #PID_CON.TI; L 4.000000e+000; /R ; T #PID_CON.TD; A833: L 8.000000e-001; T #PFAC_SP; L 5.000000e+000; T #D_F; CLR ; A #PID_ON; JCN A836; L #PID_CON.GAIN; T #GAIN; L #PID_CON.TI; T #TI; L #PID_CON.TD; T #TD; JU A837; A836: L #PI_CON.GAIN; T #GAIN; L #PI_CON.TI; T #TI; L 0.000000e+000; T #TD; CLR ; = #CONZ_ON; A837: L 2.500000e+002; L #GAIN; /R ; T #CON_ZONE; L 0.000000e+000; =R ; JCN A83f; L #srPVsim2_15; L #sPv0Sim_15; +R ; L #PV; -R ; L #srDelPvsim_15; +R ; T #srDelPvsim_15; L #srPVsim2_20; L #sPv0Sim_20; +R ; L #PV; -R ; L #srDelPvsim_20; +R ; T #srDelPvsim_20; L #srPVsim3_30; L #sPv0Sim_30; +R ; L #PV; -R ; L #srDelPvsim_30; +R ; T #srDelPvsim_30; L 3.500000e-001; L #TA; *R ; L #srTime; TAK ; >=R ; JCN A83f; L #N_PTN; T #sNpInf; L #srDelPvsim_15; L 0.000000e+000; R ; JCN A846; L #N_PTN; L 3.000000e+000; >R ; JCN A847; CLR ; = #sbReOpt; JU A845; A847: L 3.000000e+000; T #N_PTN; SET ; = #sbReOpt; JU A845; A846: L #srDelPvsim_15; L 0.000000e+000; >R ; L #srDelPvsim_20; L 0.000000e+000; = L 174.2; R ; L #srDelPvsim_30; L 0.000000e+000; = L 174.2; R ; JCN A84c; T #N_PTN; SET ; = #sbReOpt; JU A845; A84c: L #N_PTN; L #rNptnLl; =I ; A L 174.2; JCN A853; L #sGf11_30; L #srPVsim1_30; *R ; L #sLmn; TAK ; T LD 180; TAK ; L #LMN0; -R ; L #sGf12_30; *R ; L LD 180; +R ; T #srPVsim1_30; L #sGf21_30; L #srPVsim2_30; *R ; L #sGf22_30; TAK ; T LD 180; TAK ; L #srPVsim1_30; *R ; L LD 180; +R ; T #srPVsim2_30; L #sGf21_30; L #srPVsim3_30; *R ; L #sGf22_30; TAK ; T LD 180; TAK ; L #srPVsim2_30; *R ; L LD 180; +R ; T #srPVsim3_30; L #sGf11_20; L #srPVsim1_20; *R ; L #sLmn; TAK ; T LD 180; TAK ; L #LMN0; -R ; L #sGf12_20; *R ; L LD 180; +R ; T #srPVsim1_20; L #sGf21_20; L #srPVsim2_20; *R ; L #sGf22_20; TAK ; T LD 180; TAK ; L #srPVsim1_20; *R ; L LD 180; +R ; T #srPVsim2_20; L #sGf11_15; L #srPVsim1_15; *R ; L #sLmn; TAK ; T LD 180; TAK ; L #LMN0; -R ; L #sGf12_15; *R ; L LD 180; +R ; T #srPVsim1_15; L #sGf21_15; L #srPVsim2_15; *R ; L #sGf22_15; TAK ; T LD 180; TAK ; L #srPVsim1_15; *R ; L LD 180; +R ; T #srPVsim2_15; A853: L #SP_INT; L #PV; -R ; T #rDiff; L #SP_INT; L #sSpOld; -R ; T #rSpDelt; L #DEADB_W; NEGR ; L #rDiff; TAK ; R ; JCN A856; L #rDiff; TAK ; -R ; T #rDiff; JU A855; A856: L 0.000000e+000; T #rDiff; A855: L #rDiff; T #ER; L #TD; L #D_F; /R ; T #rTmLag; L #GAIN; L #ER; *R ; T #LMN_P; L #TI; L 0.000000e+000; <>R ; = L 174.2; A #I_ITL_ON; NOT ; A L 174.2; JCN A858; A #MAN_ON; NOT ; = L 174.2; A #sbOptLmn; NOT ; A L 174.2; = L 174.2; A #sbConzOn; NOT ; A L 174.2; JCN A85b; L #CYCLE; L #TI; /R ; L #LMN_P; TAK ; T LD 180; TAK ; L #sInvAlt; +R ; L LD 180; *R ; L 5.000000e-001; *R ; L #sRestInt; +R ; T #rDiff; L 0.000000e+000; >R ; = L 174.2; A #INT_HPOS; O #QLMN_HLM; A L 174.2; L #rDiff; L 0.000000e+000; = L 174.2; R ; = L 174.2; A #MAN_ON; NOT ; A L 174.2; = L 174.2; A #sbOptLmn; NOT ; A L 174.2; = L 174.2; A #sbConzOn; NOT ; A L 174.2; JCN A85e; L #CYCLE; L 5.000000e-001; *R ; L #rTmLag; +R ; L #TD; TAK ; /R ; T #Verstaerk; L #LMN_P; L #sRueck; -R ; L #Verstaerk; *R ; T #LMN_D; L #sRueck; T #RueckAlt; L #CYCLE; L #TD; /R ; L #LMN_D; *R ; L #sRestDif; +R ; T #RueckDiff; L #RueckAlt; +R ; T #sRueck; L #RueckAlt; TAK ; -R ; L #RueckDiff; +R ; T #sRestDif; JU A85f; A85e: L 0.000000e+000; T #LMN_D; T #sRestDif; L #LMN_P; T #sRueck; A85f: CLR ; = #bConzOn; L 0.000000e+000; T #rDeltaI; A #sbOptLmn; JCN A860; L #srOptLmn; L #srEffDlmn; +R ; T #dLmn; JU A861; A860: CLR ; A #MAN_ON; JCN A862; L #MAN; T #dLmn; JU A861; A862: L #LMN_P; L #LMN_I; +R ; L #DISV; +R ; T #dLmn; CLR ; A #MAN_ON; NOT ; JCN A863; L #LMN_HLM; >R ; JCN A864; T #MAN; JU A863; A864: L #dLmn; L #LMN_LLM; R ; = L 174.2; A #I_ITL_ON; NOT ; A L 174.2; JCN A868; L #PFAC_SP; L 1.000000e+000; >R ; JCN A869; T #PFAC_SP; JU A86b; A869: L #PFAC_SP; L 0.000000e+000; R ; JCN A86c; L 1.000000e+000; L #PFAC_SP; -R ; T #gf; JU A86d; A86c: L #PFAC_SP; T #gf; A86d: L #GAIN; L #rSpDelt; *R ; L #PFAC_SP; TAK ; T LD 180; TAK ; L 1.000000e+000; -R ; L #gf; -R ; L LD 180; *R ; T #rDeltaI; L #GAIN; L #rSpDelt; *R ; L #gf; *R ; L #srDiffSp; +R ; T #srDiffSp; L #gf; *R ; L #TI; *R ; L #gf; TAK ; T LD 180; TAK ; L #TI; *R ; L #CYCLE; +R ; L LD 180; TAK ; /R ; T #srDiffSp; L #dLmn; L #rDeltaI; +R ; L #srDiffSp; +R ; T #dLmn; CLR ; A #CONZ_ON; JCN A86e; L #CON_ZONE; L 8.000000e-001; *R ; T #gf; L #ER; T #rDiff_int; L #GAIN; L 0.000000e+000; =R ; L #rDiff_int; L #gf; = L 174.2; >=R ; A #sbConzOn; O L 174.2; JCN A870; L #LMN_HLM; T #dLmn; SET ; = #bConzOn; JU A86e; A870: L #CON_ZONE; NEGR ; L #rDiff_int; TAK ; <=R ; L #gf; NEGR ; L #rDiff_int; TAK ; = L 174.2; <=R ; A #sbConzOn; O L 174.2; JCN A86e; L #LMN_LLM; T #dLmn; SET ; = #bConzOn; A86e: CLR ; A #bConzOn; NOT ; JCN A861; L #LMN_HLM; L #sLmnHlmOld; R ; A L 174.2; JCN A874; L #dLmn; T #rVal; L #sLmnHlmOld; >R ; JCN A875; T #rVal; A875: L #rDeltaI; L #rVal; -R ; L #LMN_HLM; +R ; T #rDeltaI; JU A877; A874: L #LMN_LLM; L #sLmnLlmOld; >R ; L #dLmn; L #LMN_LLM; = L 174.2; =R ; JCN A87a; SET ; = #QLMN_HLM; CLR ; = #QLMN_LLM; T #sLmn; JU A87b; A87a: CLR ; = #QLMN_HLM; L #sLmn; L #LMN_LLM; <=R ; JCN A87c; SET ; = #QLMN_LLM; T #sLmn; JU A87b; A87c: CLR ; = #QLMN_LLM; A87b: L #TI; L 0.000000e+000; <>R ; JCN A87e; A #MAN_ON; O #sbOptLmn; O #sbConzOn; JCN A87f; T #srDiffSp; T #sRestInt; L #sLmn; L #LMN_P; -R ; L #DISV; -R ; T #LMN_I; A #sbConzOn; JCN A87e; L #sLmn; T #MAN; JU A87e; A87f: L #LMN_I; L #rDeltaI; +R ; T #LMN_I; L #LMN_HLM; L #DISV; -R ; L #LMN_I; TAK ; >R ; L #dLmn; L #LMN_HLM; = L 174.2; >R ; A L 174.2; L #dLmn; L #LMN_D; -R ; L #LMN_HLM; = L 174.2; >R ; A L 174.2; JCN A882; L #DISV; -R ; T #rVal; L #dLmn; L #LMN_HLM; -R ; T #gf; L #LMN_I; L #rVal; -R ; T #rVal; L #gf; >R ; JCN A883; T #rVal; A883: L #LMN_I; L #rVal; -R ; T #LMN_I; JU A87e; A882: L #LMN_LLM; L #DISV; -R ; L #LMN_I; TAK ; =R ; JCN A887; T #dLmn; JU A888; A887: L #dLmn; L -3.251200e+004; <=R ; JCN A888; T #dLmn; A888: L #dLmn; RND ; T #LMN_PER; CLR ; A #PULSE_ON; NOT ; = #QC_ACT; L #sLmn; L #PER_TM; *R ; L 1.000000e-002; *R ; T #sPTm; L #sLmn; L 0.000000e+000; =R ; O L 174.2; L #PER_TM; L #rP_B_TM; -R ; L #sPTm; TAK ; = L 174.2; >=R ; O L 174.2; JCN A88e; SET ; = #bIZv; A88e: CLR ; A #bIZv; NOT ; JCN A890; CLR ; = #QPULSE; JU A890; A88d: L #spassPTm; L #rP_B_TM; >=R ; L #PER_TM; L #sPTm; -R ; L #spassPTm; TAK ; = L 174.2; >=R ; A L 174.2; L #sPTm; L #rP_B_TM; = L 174.2; >=R ; A L 174.2; JCN A891; SET ; = #QPULSE; JU A890; A891: SET ; = #bIZv; A890: CLR ; A #bIZv; JCN A893; L #spassPTm; L #PER_TM; =R ; JCN A7d1; SET ; = #QC_ACT; L #CYCLE_P; L 5.000000e-001; *R ; T #sCycTmPass; A7d1: CLR ; A L 174.1; SAVE ; BE ; END_FUNCTION_BLOCK