GV.PEN_VALVE_HEATER_SSR_ON ); IF H_PEN_VALVE.PID_AUTO_TUNE_DONE THEN GV_H.PEN_VALVE_HEATER_PID.P:=H_PEN_VALVE.PID_AUTO_TUNE_P; GV_H.PEN_VALVE_HEATER_PID.I:=H_PEN_VALVE.PID_AUTO_TUNE_I; GV_H.PEN_VALVE_HEATER_PID.D:=H_PEN_VALVE.PID_AUTO_TUNE_D; GV.PEN_VALVE_HEATER_AUTO_TUNE_EN:=FALSE; END_IF //E02 LID1 PID H_LID[1]( ENABLE:= GV.AI.Lid_Temp<100, AUTO_TUNE:= GV.LID_HEATER_AUTO_TUNE_EN[1], AUTO_TUNE_OUTPUT:=GV.LID_HEATER_AUTO_TUNE_OUTPUT[1], TEMP_SV:= GV.AO.LID_Temp_SV, TEMP_ACTUAL:= GV.AI.Lid_Temp, TEMP_RATE:=5, PID_P:= GV_H.LID_HEATER_PID[1].P, PID_I:= GV_H.LID_HEATER_PID[1].I, PID_D:= GV_H.LID_HEATER_PID[1].D, PID_Dp:= GV_H.LID_HEATER_PID[1].DP, PID_Feedforward:= GV_H.LID_HEATER_PID[1].Feedforward, PID_Output_Limit:= GV_H.LID_HEATER_PID[1].Output_Limit, SSR_ON=> GV.LID_HEATER_SSR_ON[1], SSR_ON=> GV.LID_HEATER_SSR_ON[2], SSR_ON=> GV.LID_HEATER_SSR_ON[3], SSR_ON=> GV.LID_HEATER_SSR_ON[4] ); IF H_LID[1].PID_AUTO_TUNE_DONE THEN GV_H.LID_HEATER_PID[1].P:=H_LID[1].PID_AUTO_TUNE_P; GV_H.LID_HEATER_PID[1].I:=H_LID[1].PID_AUTO_TUNE_I; GV_H.LID_HEATER_PID[1].D:=H_LID[1].PID_AUTO_TUNE_D; GV.LID_HEATER_AUTO_TUNE_EN[1]:=FALSE; END_IF //E06 CHAMBER1 PID H_CHAMBER[1]( ENABLE:= GV.AI.CHAMBER_Temp1<100, AUTO_TUNE:= GV.CHAMBER_HEATER_AUTO_TUNE_EN[1], AUTO_TUNE_OUTPUT:=GV.CHAMBER_HEATER_AUTO_TUNE_OUTPUT[1], TEMP_SV:= GV.AO.Chamber_Temp1_SV, TEMP_ACTUAL:= GV.AI.CHAMBER_Temp1, TEMP_RATE:=5, PID_P:= GV_H.CHAMBER_HEATER_PID[1].P, PID_I:= GV_H.CHAMBER_HEATER_PID[1].I, PID_D:= GV_H.CHAMBER_HEATER_PID[1].D, PID_Dp:= GV_H.CHAMBER_HEATER_PID[1].DP, PID_Feedforward:= GV_H.CHAMBER_HEATER_PID[1].Feedforward, PID_Output_Limit:= GV_H.CHAMBER_HEATER_PID[1].Output_Limit, SSR_ON=> GV.CHAMBER_HEATER_SSR_ON[1] ); IF H_CHAMBER[1].PID_AUTO_TUNE_DONE THEN GV_H.CHAMBER_HEATER_PID[1].P:=H_CHAMBER[1].PID_AUTO_TUNE_P; GV_H.CHAMBER_HEATER_PID[1].I:=H_CHAMBER[1].PID_AUTO_TUNE_I; GV_H.CHAMBER_HEATER_PID[1].D:=H_CHAMBER[1].PID_AUTO_TUNE_D; GV.CHAMBER_HEATER_AUTO_TUNE_EN[1]:=FALSE; END_IF //E07 CHAMBER2 PID H_CHAMBER[2]( ENABLE:= GV.AI.CHAMBER_Temp2<100, AUTO_TUNE:= GV.CHAMBER_HEATER_AUTO_TUNE_EN[2], AUTO_TUNE_OUTPUT:=GV.CHAMBER_HEATER_AUTO_TUNE_OUTPUT[2], TEMP_SV:= GV.AO.Chamber_Temp2_SV, TEMP_ACTUAL:= GV.AI.CHAMBER_Temp2, TEMP_RATE:=5, PID_P:= GV_H.CHAMBER_HEATER_PID[2].P, PID_I:= GV_H.CHAMBER_HEATER_PID[2].I, PID_D:= GV_H.CHAMBER_HEATER_PID[2].D, PID_Dp:= GV_H.CHAMBER_HEATER_PID[2].DP, PID_Feedforward:= GV_H.CHAMBER_HEATER_PID[2].Feedforward, PID_Output_Limit:= GV_H.CHAMBER_HEATER_PID[2].Output_Limit, SSR_ON=> GV.CHAMBER_HEATER_SSR_ON[2] ); IF H_CHAMBER[2].PID_AUTO_TUNE_DONE THEN GV_H.CHAMBER_HEATER_PID[2].P:=H_CHAMBER[2].PID_AUTO_TUNE_P; GV_H.CHAMBER_HEATER_PID[2].I:=H_CHAMBER[2].PID_AUTO_TUNE_I; GV_H.CHAMBER_HEATER_PID[2].D:=H_CHAMBER[2].PID_AUTO_TUNE_D; GV.CHAMBER_HEATER_AUTO_TUNE_EN[2]:=FALSE; END_IF (* //E08 CHAMBER3 PID H_CHAMBER[3]( ENABLE:= GV.AI.CHAMBER_Temp3<100, AUTO_TUNE:= GV.CHAMBER_HEATER_AUTO_TUNE_EN[3], AUTO_TUNE_OUTPUT:=GV.CHAMBER_HEATER_AUTO_TUNE_OUTPUT[3], TEMP_SV:= GV.AO.Chamber_Temp3_SV, TEMP_ACTUAL:= GV.AI.Chamber_Temp3, PID_P:= GV_H.CHAMBER_HEATER_PID[3].P, PID_I:= GV_H.CHAMBER_HEATER_PID[3].I, PID_D:= GV_H.CHAMBER_HEATER_PID[3].D, PID_Dp:= GV_H.CHAMBER_HEATER_PID[3].DP, PID_Feedforward:= GV_H.CHAMBER_HEATER_PID[3].Feedforward, PID_Output_Limit:= GV_H.CHAMBER_HEATER_PID[3].Output_Limit, SSR_ON=> GV.CHAMBER_HEATER_SSR_ON[4] ); IF H_CHAMBER[3].PID_AUTO_TUNE_DONE THEN GV_H.CHAMBER_HEATER_PID[3].P:=H_CHAMBER[3].PID_AUTO_TUNE_P; GV_H.CHAMBER_HEATER_PID[3].I:=H_CHAMBER[3].PID_AUTO_TUNE_I; GV_H.CHAMBER_HEATER_PID[3].D:=H_CHAMBER[3].PID_AUTO_TUNE_D; GV.CHAMBER_HEATER_AUTO_TUNE_EN[3]:=FALSE; END_IF //E18 GATE VALVE PID IF ABS(GV.AI.GATE_VALVE_Temp-GV.AO.Gate_Valve_Temp_SV)<5 THEN H_GATE_VALVE.PID_Feedforward:=GV_H.GATE_VALVE_HEATER_PID.Feedforward; ELSE H_GATE_VALVE.PID_Feedforward:=0; END_IF H_GATE_VALVE( ENABLE:= GV.AI.GATE_VALVE_Temp<100, AUTO_TUNE:= GV.GATE_VALVE_HEATER_AUTO_TUNE_EN, AUTO_TUNE_OUTPUT:=GV.GATE_VALVE_HEATER_AUTO_TUNE_OUTPUT, TEMP_SV:= GV.AO.Gate_Valve_Temp_SV, TEMP_ACTUAL:= GV.AI.GATE_VALVE_Temp, PID_P:= GV_H.GATE_VALVE_HEATER_PID.P, PID_I:= GV_H.GATE_VALVE_HEATER_PID.I, PID_D:= GV_H.GATE_VALVE_HEATER_PID.D, PID_Dp:= GV_H.GATE_VALVE_HEATER_PID.DP, PID_Output_Limit:= GV_H.GATE_VALVE_HEATER_PID.Output_Limit, SSR_ON=> GV.GATE_VALVE_SSR_ON ); IF H_GATE_VALVE.PID_AUTO_TUNE_DONE THEN GV_H.GATE_VALVE_HEATER_PID.P:=H_GATE_VALVE.PID_AUTO_TUNE_P; GV_H.GATE_VALVE_HEATER_PID.I:=H_GATE_VALVE.PID_AUTO_TUNE_I; GV_H.GATE_VALVE_HEATER_PID.D:=H_GATE_VALVE.PID_AUTO_TUNE_D; GV.GATE_VALVE_HEATER_AUTO_TUNE_EN:=FALSE; END_IF //E31 TAPE1 PID H_TAPE[1]( ENABLE:= GV.AI.TAPE_Temp1<120, AUTO_TUNE:= GV.TAPE_HEATER_AUTO_TUNE_EN[1], AUTO_TUNE_OUTPUT:=GV.TAPE_HEATER_AUTO_TUNE_OUTPUT[1], TEMP_SV:= GV.AO.Tape_Temp1_SV, TEMP_ACTUAL:= GV.AI.TAPE_Temp1, PID_P:= GV_H.TAPE_HEATER_PID[1].P, PID_I:= GV_H.TAPE_HEATER_PID[1].I, PID_D:= GV_H.TAPE_HEATER_PID[1].D, PID_Dp:= GV_H.TAPE_HEATER_PID[1].DP, PID_Feedforward:= , PID_Output_Limit:= GV_H.TAPE_HEATER_PID[1].Output_Limit, SSR_ON=> GV.TAPE_HEATER_SSR_ON[1] ); IF H_TAPE[1].PID_AUTO_TUNE_DONE THEN GV_H.TAPE_HEATER_PID[1].P:=H_TAPE[1].PID_AUTO_TUNE_P; GV_H.TAPE_HEATER_PID[1].I:=H_TAPE[1].PID_AUTO_TUNE_I; GV_H.TAPE_HEATER_PID[1].D:=H_TAPE[1].PID_AUTO_TUNE_D; GV.TAPE_HEATER_AUTO_TUNE_EN[1]:=FALSE; END_IF //E32 TAPE2 PID H_TAPE[2]( ENABLE:= GV.AI.TAPE_Temp2<120, AUTO_TUNE:= GV.TAPE_HEATER_AUTO_TUNE_EN[2], AUTO_TUNE_OUTPUT:=GV.TAPE_HEATER_AUTO_TUNE_OUTPUT[2], TEMP_SV:= GV.AO.Tape_Temp2_SV, TEMP_ACTUAL:= GV.AI.TAPE_Temp2, PID_P:= GV_H.TAPE_HEATER_PID[2].P, PID_I:= GV_H.TAPE_HEATER_PID[2].I, PID_D:= GV_H.TAPE_HEATER_PID[2].D, PID_Dp:= GV_H.TAPE_HEATER_PID[2].DP, PID_Feedforward:= , PID_Output_Limit:= GV_H.TAPE_HEATER_PID[2].Output_Limit, SSR_ON=> GV.TAPE_HEATER_SSR_ON[2] ); IF H_TAPE[2].PID_AUTO_TUNE_DONE THEN GV_H.TAPE_HEATER_PID[2].P:=H_TAPE[2].PID_AUTO_TUNE_P; GV_H.TAPE_HEATER_PID[2].I:=H_TAPE[2].PID_AUTO_TUNE_I; GV_H.TAPE_HEATER_PID[2].D:=H_TAPE[2].PID_AUTO_TUNE_D; GV.TAPE_HEATER_AUTO_TUNE_EN[2]:=FALSE; END_IF //E35 IGS1 PID H_IGS[1]( ENABLE:= GV.AI.IGS_Temp1<50, AUTO_TUNE:= GV.IGS_HEATER_AUTO_TUNE_EN[1], AUTO_TUNE_OUTPUT:=GV.IGS_HEATER_AUTO_TUNE_OUTPUT[1], TEMP_SV:= GV.AO.IGS_Temp1_SV, TEMP_ACTUAL:= GV.AI.IGS_Temp1, PID_P:= GV_H.IGS_HEATER_PID[1].P, PID_I:= GV_H.IGS_HEATER_PID[1].I, PID_D:= GV_H.IGS_HEATER_PID[1].D, PID_Dp:= GV_H.IGS_HEATER_PID[1].DP, PID_Feedforward:= GV_H.IGS_HEATER_PID[1].Feedforward, PID_Output_Limit:= GV_H.IGS_HEATER_PID[1].Output_Limit, SSR_ON=> GV.IGS_HEATER_SSR_ON[1] ); IF H_IGS[1].PID_AUTO_TUNE_DONE THEN GV_H.IGS_HEATER_PID[1].P:=H_IGS[1].PID_AUTO_TUNE_P; GV_H.IGS_HEATER_PID[1].I:=H_IGS[1].PID_AUTO_TUNE_I; GV_H.IGS_HEATER_PID[1].D:=H_IGS[1].PID_AUTO_TUNE_D; GV.IGS_HEATER_AUTO_TUNE_EN[1]:=FALSE; END_IF //E36 IGS2 PID IF GV.AI.IGS_Temp2>GV.AO.IGS_Temp2_SV+3 THEN H_IGS[2].PID_Feedforward:=0; ELSE H_IGS[2].PID_Feedforward:=GV_H.IGS_HEATER_PID[2].Feedforward; END_IF H_IGS[2]( ENABLE:= GV.AI.IGS_Temp2<50, AUTO_TUNE:= GV.IGS_HEATER_AUTO_TUNE_EN[2], AUTO_TUNE_OUTPUT:=GV.IGS_HEATER_AUTO_TUNE_OUTPUT[2], TEMP_SV:= GV.AO.IGS_Temp2_SV, TEMP_ACTUAL:= GV.AI.IGS_Temp2, TEMP_RATE:=10, PID_P:= GV_H.IGS_HEATER_PID[2].P, PID_I:= GV_H.IGS_HEATER_PID[2].I, PID_D:= GV_H.IGS_HEATER_PID[2].D, PID_Dp:= GV_H.IGS_HEATER_PID[2].DP, PID_Feedforward:= , PID_Output_Limit:= GV_H.IGS_HEATER_PID[2].Output_Limit, SSR_ON=> GV.IGS_HEATER_SSR_ON[2] ); IF H_IGS[2].PID_AUTO_TUNE_DONE THEN GV_H.IGS_HEATER_PID[2].P:=H_IGS[2].PID_AUTO_TUNE_P; GV_H.IGS_HEATER_PID[2].I:=H_IGS[2].PID_AUTO_TUNE_I; GV_H.IGS_HEATER_PID[2].D:=H_IGS[2].PID_AUTO_TUNE_D; GV.IGS_HEATER_AUTO_TUNE_EN[2]:=FALSE; END_IF *) //FORELINE1 PID SSR7 AV105 H_FORELINE[1]( ENABLE:= GV.AI.AV105_Temp<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[1], AUTO_TUNE_OUTPUT:=GV.FORELINE_HEATER_AUTO_TUNE_OUTPUT[1], TEMP_SV:= GV.AO.AV105_Temp_SV, TEMP_ACTUAL:= GV.AI.AV105_Temp, TEMP_RATE:=10, PID_P:= GV_H.FORELINE_HEATER_PID[1].P, PID_I:= GV_H.FORELINE_HEATER_PID[1].I, PID_D:= GV_H.FORELINE_HEATER_PID[1].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[1].DP, PID_Feedforward:= GV_H.FORELINE_HEATER_PID[1].Feedforward, PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[1].Output_Limit, SSR_ON=> GV.FORELINE_HEATER_SSR_ON[1]); IF H_FORELINE[1].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[1].P:=H_FORELINE[1].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[1].I:=H_FORELINE[1].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[1].D:=H_FORELINE[1].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[1]:=FALSE; END_IF //FORELINE2 PID SSR8 AV104 H_FORELINE[2]( ENABLE:= GV.AI.AV104_Temp<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[2], AUTO_TUNE_OUTPUT:=GV.FORELINE_HEATER_AUTO_TUNE_OUTPUT[2], TEMP_SV:= GV.AO.AV104_Temp_SV, TEMP_ACTUAL:= GV.AI.AV104_Temp, TEMP_RATE:=10, PID_P:= GV_H.FORELINE_HEATER_PID[2].P, PID_I:= GV_H.FORELINE_HEATER_PID[2].I, PID_D:= GV_H.FORELINE_HEATER_PID[2].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[2].DP, PID_Feedforward:= GV_H.FORELINE_HEATER_PID[2].Feedforward, PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[2].Output_Limit, SSR_ON=> GV.FORELINE_HEATER_SSR_ON[2]); IF H_FORELINE[2].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[2].P:=H_FORELINE[2].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[2].I:=H_FORELINE[2].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[2].D:=H_FORELINE[2].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[2]:=FALSE; END_IF //FORELINE3 PID SSR9 AV102 IF GV.AI.AV102_Temp GV.FORELINE_HEATER_SSR_ON[3]); IF H_FORELINE[3].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[3].P:=H_FORELINE[3].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[3].I:=H_FORELINE[3].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[3].D:=H_FORELINE[3].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[3]:=FALSE; END_IF //FORELINE4 PID SSR10 AV101 H_FORELINE[4]( ENABLE:= GV.AI.AV101_Temp<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[4], AUTO_TUNE_OUTPUT:=GV.FORELINE_HEATER_AUTO_TUNE_OUTPUT[4], TEMP_SV:= GV.AO.AV101_Temp_SV, TEMP_ACTUAL:= GV.AI.AV101_Temp, TEMP_RATE:=10, PID_P:= GV_H.FORELINE_HEATER_PID[4].P, PID_I:= GV_H.FORELINE_HEATER_PID[4].I, PID_D:= GV_H.FORELINE_HEATER_PID[4].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[4].DP, PID_Feedforward:= GV_H.FORELINE_HEATER_PID[4].Feedforward, PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[4].Output_Limit, SSR_ON=> GV.FORELINE_HEATER_SSR_ON[4]); IF H_FORELINE[4].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[4].P:=H_FORELINE[4].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[4].I:=H_FORELINE[4].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[4].D:=H_FORELINE[4].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[4]:=FALSE; END_IF //FORELINE5 PID SS11 Exh1-3 H_FORELINE[5]( ENABLE:= GV.AI.Exhaust1_3_Temp<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[5], AUTO_TUNE_OUTPUT:=GV.FORELINE_HEATER_AUTO_TUNE_OUTPUT[5], TEMP_SV:= GV.AO.Exhaust1_3_Temp_SV , TEMP_ACTUAL:= GV.AI.Exhaust1_3_Temp, TEMP_RATE:=10, PID_P:= GV_H.FORELINE_HEATER_PID[5].P, PID_I:= GV_H.FORELINE_HEATER_PID[5].I, PID_D:= GV_H.FORELINE_HEATER_PID[5].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[5].DP, PID_Feedforward:= GV_H.FORELINE_HEATER_PID[5].Feedforward, PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[5].Output_Limit, SSR_ON=> GV.FORELINE_HEATER_SSR_ON[5]); IF H_FORELINE[5].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[5].P:=H_FORELINE[5].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[5].I:=H_FORELINE[5].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[5].D:=H_FORELINE[5].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[5]:=FALSE; END_IF //FORELINE6 PID SS12 Exh4-7 H_FORELINE[6]( ENABLE:= GV.AI.Exhaust4_7_Temp<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[6], TEMP_SV:= GV.AO.Exhaust4_7_Temp_SV, TEMP_ACTUAL:= GV.AI.Exhaust4_7_Temp, TEMP_RATE:=10, PID_P:= GV_H.FORELINE_HEATER_PID[6].P, PID_I:= GV_H.FORELINE_HEATER_PID[6].I, PID_D:= GV_H.FORELINE_HEATER_PID[6].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[6].DP, PID_Feedforward:= GV_H.FORELINE_HEATER_PID[6].Feedforward, PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[6].Output_Limit, SSR_ON=> GV.FORELINE_HEATER_SSR_ON[6]); IF H_FORELINE[6].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[6].P:=H_FORELINE[6].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[6].I:=H_FORELINE[6].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[6].D:=H_FORELINE[6].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[6]:=FALSE; END_IF //H-STAGE1 H_STAGE[1]( ENABLE:= GV.AI.Stage_Temp1<250 AND PM.NDI.Lid_Closed, AUTO_TUNE:= GV.STAGE_HEATER_AUTO_TUNE_EN[1], TEMP_SV:= GV.AO.Stage_Temp1_SV, TEMP_ACTUAL:= GV.AI.Stage_Temp1, TEMP_RATE:=10, PID_P:= GV_H.STAGE_HEATER_PID[1].P, PID_I:= GV_H.STAGE_HEATER_PID[1].I, PID_D:= GV_H.STAGE_HEATER_PID[1].D, PID_Dp:= GV_H.STAGE_HEATER_PID[1].DP, PID_Feedforward:= GV_H.STAGE_HEATER_PID[1].Feedforward, PID_Output_Limit:= GV_H.STAGE_HEATER_PID[1].Output_Limit, SCR_OUT=> GV.STAGE_HEATER_SCR_OUTPUT[1]); IF H_STAGE[1].PID_AUTO_TUNE_DONE THEN GV_H.STAGE_HEATER_PID[1].P:=H_STAGE[1].PID_AUTO_TUNE_P; GV_H.STAGE_HEATER_PID[1].I:=H_STAGE[1].PID_AUTO_TUNE_I; GV_H.STAGE_HEATER_PID[1].D:=H_STAGE[1].PID_AUTO_TUNE_D; GV.STAGE_HEATER_AUTO_TUNE_EN[1]:=FALSE; END_IF //H-STAGE2 H_STAGE[2]( ENABLE:= GV.AI.Stage_Temp2<250 AND PM.NDI.Lid_Closed, AUTO_TUNE:= GV.STAGE_HEATER_AUTO_TUNE_EN[2], TEMP_SV:= GV.AO.Stage_Temp2_SV, TEMP_ACTUAL:= GV.AI.Stage_Temp2, TEMP_RATE:=10, PID_P:= GV_H.STAGE_HEATER_PID[2].P, PID_I:= GV_H.STAGE_HEATER_PID[2].I, PID_D:= GV_H.STAGE_HEATER_PID[2].D, PID_Dp:= GV_H.STAGE_HEATER_PID[2].DP, PID_Feedforward:= GV_H.STAGE_HEATER_PID[2].Feedforward, PID_Output_Limit:= GV_H.STAGE_HEATER_PID[2].Output_Limit, SCR_OUT=> GV.STAGE_HEATER_SCR_OUTPUT[2]); IF H_STAGE[2].PID_AUTO_TUNE_DONE THEN GV_H.STAGE_HEATER_PID[2].P:=H_STAGE[2].PID_AUTO_TUNE_P; GV_H.STAGE_HEATER_PID[2].I:=H_STAGE[2].PID_AUTO_TUNE_I; GV_H.STAGE_HEATER_PID[2].D:=H_STAGE[2].PID_AUTO_TUNE_D; GV.STAGE_HEATER_AUTO_TUNE_EN[2]:=FALSE; END_IF //H-STAGE3 H_STAGE[3]( ENABLE:= GV.AI.Stage_Temp3<250 AND PM.NDI.Lid_Closed, AUTO_TUNE:= GV.STAGE_HEATER_AUTO_TUNE_EN[3], TEMP_SV:= GV.AO.Stage_Temp3_SV, TEMP_ACTUAL:= GV.AI.Stage_Temp3, TEMP_RATE:=10, PID_P:= GV_H.STAGE_HEATER_PID[3].P, PID_I:= GV_H.STAGE_HEATER_PID[3].I, PID_D:= GV_H.STAGE_HEATER_PID[3].D, PID_Dp:= GV_H.STAGE_HEATER_PID[3].DP, PID_Feedforward:= GV_H.STAGE_HEATER_PID[3].Feedforward, PID_Output_Limit:= GV_H.STAGE_HEATER_PID[3].Output_Limit, SCR_OUT=> GV.STAGE_HEATER_SCR_OUTPUT[3]); IF H_STAGE[3].PID_AUTO_TUNE_DONE THEN GV_H.STAGE_HEATER_PID[3].P:=H_STAGE[3].PID_AUTO_TUNE_P; GV_H.STAGE_HEATER_PID[3].I:=H_STAGE[3].PID_AUTO_TUNE_I; GV_H.STAGE_HEATER_PID[3].D:=H_STAGE[3].PID_AUTO_TUNE_D; GV.STAGE_HEATER_AUTO_TUNE_EN[3]:=FALSE; END_IF //H-STAGE4 H_STAGE[4]( ENABLE:= GV.AI.Stage_Temp4<250 AND PM.NDI.Lid_Closed, AUTO_TUNE:= GV.STAGE_HEATER_AUTO_TUNE_EN[4], TEMP_SV:= GV.AO.Stage_Temp4_SV, TEMP_ACTUAL:= GV.AI.Stage_Temp4, TEMP_RATE:=10, PID_P:= GV_H.STAGE_HEATER_PID[4].P, PID_I:= GV_H.STAGE_HEATER_PID[4].I, PID_D:= GV_H.STAGE_HEATER_PID[4].D, PID_Dp:= GV_H.STAGE_HEATER_PID[4].DP, PID_Feedforward:= GV_H.STAGE_HEATER_PID[4].Feedforward, PID_Output_Limit:= GV_H.STAGE_HEATER_PID[4].Output_Limit, SCR_OUT=> GV.STAGE_HEATER_SCR_OUTPUT[4]); IF H_STAGE[4].PID_AUTO_TUNE_DONE THEN GV_H.STAGE_HEATER_PID[4].P:=H_STAGE[4].PID_AUTO_TUNE_P; GV_H.STAGE_HEATER_PID[4].I:=H_STAGE[4].PID_AUTO_TUNE_I; GV_H.STAGE_HEATER_PID[4].D:=H_STAGE[4].PID_AUTO_TUNE_D; GV.STAGE_HEATER_AUTO_TUNE_EN[4]:=FALSE; END_IF]]>