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], SSR_ON=> GV.CHAMBER_HEATER_SSR_ON[2] ); 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[3] ); 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, TEMP_RATE:=5, 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, TEMP_RATE:=5, 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, TEMP_RATE:=10, 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:= GV_H.TAPE_HEATER_PID[1].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, TEMP_RATE:=10, 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:= GV_H.TAPE_HEATER_PID[2].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 // TAPE3 PID H_TAPE[3]( ENABLE:= GV.AI.TAPE_Temp3<120, AUTO_TUNE:= GV.TAPE_HEATER_AUTO_TUNE_EN[3], AUTO_TUNE_OUTPUT:=GV.TAPE_HEATER_AUTO_TUNE_OUTPUT[3], TEMP_SV:= GV.AO.Tape_Temp3_SV, TEMP_ACTUAL:= GV.AI.TAPE_Temp3, TEMP_RATE:=10, PID_P:= GV_H.TAPE_HEATER_PID[3].P, PID_I:= GV_H.TAPE_HEATER_PID[3].I, PID_D:= GV_H.TAPE_HEATER_PID[3].D, PID_Dp:= GV_H.TAPE_HEATER_PID[3].DP, PID_Feedforward:= GV_H.TAPE_HEATER_PID[3].Feedforward, PID_Output_Limit:= GV_H.TAPE_HEATER_PID[3].Output_Limit, SSR_ON=> GV.TAPE_HEATER_SSR_ON[3] ); IF H_TAPE[3].PID_AUTO_TUNE_DONE THEN GV_H.TAPE_HEATER_PID[3].P:=H_TAPE[3].PID_AUTO_TUNE_P; GV_H.TAPE_HEATER_PID[3].I:=H_TAPE[3].PID_AUTO_TUNE_I; GV_H.TAPE_HEATER_PID[3].D:=H_TAPE[3].PID_AUTO_TUNE_D; GV.TAPE_HEATER_AUTO_TUNE_EN[3]:=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, TEMP_RATE:=1.5, 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:=1.5, 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:= GV_H.IGS_HEATER_PID[2].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 SSR6 AV102 H_FORELINE[1]( ENABLE:= GV.AI.AV102_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.AV102_Temp_SV, TEMP_ACTUAL:= GV.AI.AV102_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 SSR7 AV101 H_FORELINE[2]( ENABLE:= GV.AI.AV101_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.AV101_Temp_SV, TEMP_ACTUAL:= GV.AI.AV101_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 SSR8 AV106 H_FORELINE[3]( ENABLE:= GV.AI.AV106_Temp<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[3], AUTO_TUNE_OUTPUT:=GV.FORELINE_HEATER_AUTO_TUNE_OUTPUT[3], TEMP_SV:= GV.AO.AV106_Temp_SV , TEMP_ACTUAL:= GV.AI.AV106_Temp, TEMP_RATE:=10, PID_P:= GV_H.FORELINE_HEATER_PID[3].P, PID_I:= GV_H.FORELINE_HEATER_PID[3].I, PID_D:= GV_H.FORELINE_HEATER_PID[3].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[3].DP, PID_Feedforward:= GV_H.FORELINE_HEATER_PID[3].Feedforward, PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[3].Output_Limit, SSR_ON=> 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 SSR9 BA101 H_FORELINE[4]( ENABLE:= GV.AI.BA01_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.BA01_Temp_SV, TEMP_ACTUAL:= GV.AI.BA01_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 SS10 VG103 H_FORELINE[5]( ENABLE:= GV.AI.VG103_Pipe_Temp<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[5], TEMP_SV:= GV.AO.VG103_Pipe_Temp_SV, TEMP_ACTUAL:= GV.AI.VG103_Pipe_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 SSR11 EXHAUST1-6 H_FORELINE[6]( ENABLE:= GV.AI.Exhaust1_6_Temp<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[6], TEMP_SV:= GV.AO.Exhaust1_6_Temp_SV, TEMP_ACTUAL:= GV.AI.Exhaust1_6_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 //FORELINE7 PID SSR12 EXHAUST7-8 H_FORELINE[7]( ENABLE:= GV.AI.Exhaust7_8_Temp<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[7], TEMP_SV:= GV.AO.Exhaust7_8_Temp_SV, TEMP_ACTUAL:= GV.AI.Exhaust7_8_Temp, TEMP_RATE:=10, PID_P:= GV_H.FORELINE_HEATER_PID[7].P, PID_I:= GV_H.FORELINE_HEATER_PID[7].I, PID_D:= GV_H.FORELINE_HEATER_PID[7].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[7].DP, PID_Feedforward:= GV_H.FORELINE_HEATER_PID[7].Feedforward, PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[7].Output_Limit, SSR_ON=> GV.FORELINE_HEATER_SSR_ON[7]); IF H_FORELINE[7].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[7].P:=H_FORELINE[7].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[7].I:=H_FORELINE[7].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[7].D:=H_FORELINE[7].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[7]:=FALSE; END_IF //FORELINE8 PID SSR13 H_FORELINE[8]( ENABLE:= GV.AI.VG101_Pipe_Temp<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[8], TEMP_SV:= GV.AO.VG101_Pipe_Temp_SV, TEMP_ACTUAL:= GV.AI.VG101_Pipe_Temp, TEMP_RATE:=10, PID_P:= GV_H.FORELINE_HEATER_PID[8].P, PID_I:= GV_H.FORELINE_HEATER_PID[8].I, PID_D:= GV_H.FORELINE_HEATER_PID[8].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[8].DP, PID_Feedforward:= GV_H.FORELINE_HEATER_PID[8].Feedforward, PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[8].Output_Limit, SSR_ON=> GV.FORELINE_HEATER_SSR_ON[8]); IF H_FORELINE[8].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[8].P:=H_FORELINE[8].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[8].I:=H_FORELINE[8].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[8].D:=H_FORELINE[8].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[8]:=FALSE; END_IF (* //FORELINE9 PID H_FORELINE[9]( ENABLE:= GV.AI.FORELINE_Temp9<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[9], TEMP_SV:= FORELINE_TEMP_SV[9], TEMP_ACTUAL:= GV.AI.FORELINE_Temp9, PID_P:= GV_H.FORELINE_HEATER_PID[9].P, PID_I:= GV_H.FORELINE_HEATER_PID[9].I, PID_D:= GV_H.FORELINE_HEATER_PID[9].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[9].DP, PID_Feedforward:= GV_H.FORELINE_HEATER_PID[9].Feedforward, PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[9].Output_Limit, SSR_ON=> GV.FORELINE_HEATER_SSR_ON[9]); IF H_FORELINE[9].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[9].P:=H_FORELINE[9].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[9].I:=H_FORELINE[9].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[9].D:=H_FORELINE[9].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[9]:=FALSE; END_IF //FORELINE10 PID H_FORELINE[10]( ENABLE:= GV.AI.FORELINE_Temp10<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[10], TEMP_SV:= FORELINE_TEMP_SV[10], TEMP_ACTUAL:= GV.AI.FORELINE_Temp10, PID_P:= GV_H.FORELINE_HEATER_PID[10].P, PID_I:= GV_H.FORELINE_HEATER_PID[10].I, PID_D:= GV_H.FORELINE_HEATER_PID[10].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[10].DP, PID_Feedforward:= GV_H.FORELINE_HEATER_PID[10].Feedforward, PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[10].Output_Limit, SSR_ON=> GV.FORELINE_HEATER_SSR_ON[10]); IF H_FORELINE[10].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[10].P:=H_FORELINE[10].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[10].I:=H_FORELINE[10].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[10].D:=H_FORELINE[10].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[10]:=FALSE; END_IF //FORELINE11 PID H_FORELINE[11]( ENABLE:= GV.AI.FORELINE_Temp11<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[11], TEMP_SV:= FORELINE_TEMP_SV[11], TEMP_ACTUAL:= GV.AI.FORELINE_Temp11, PID_P:= GV_H.FORELINE_HEATER_PID[11].P, PID_I:= GV_H.FORELINE_HEATER_PID[11].I, PID_D:= GV_H.FORELINE_HEATER_PID[11].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[11].DP, PID_Feedforward:= , PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[11].Output_Limit, SSR_ON=> GV.FORELINE_HEATER_SSR_ON[11]); IF H_FORELINE[11].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[11].P:=H_FORELINE[11].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[11].I:=H_FORELINE[11].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[11].D:=H_FORELINE[11].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[11]:=FALSE; END_IF //FORELINE12 PID H_FORELINE[12]( ENABLE:= GV.AI.FORELINE_Temp12<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[12], TEMP_SV:= FORELINE_TEMP_SV[12], TEMP_ACTUAL:= GV.AI.FORELINE_Temp12, PID_P:= GV_H.FORELINE_HEATER_PID[12].P, PID_I:= GV_H.FORELINE_HEATER_PID[12].I, PID_D:= GV_H.FORELINE_HEATER_PID[12].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[12].DP, PID_Feedforward:= , PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[12].Output_Limit, SSR_ON=> GV.FORELINE_HEATER_SSR_ON[12]); IF H_FORELINE[12].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[12].P:=H_FORELINE[12].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[12].I:=H_FORELINE[12].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[12].D:=H_FORELINE[12].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[12]:=FALSE; END_IF //FORELINE13 PID H_FORELINE[13]( ENABLE:= GV.AI.FORELINE_Temp13<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[13], TEMP_SV:= FORELINE_TEMP_SV[13], TEMP_ACTUAL:= GV.AI.FORELINE_Temp13, PID_P:= GV_H.FORELINE_HEATER_PID[13].P, PID_I:= GV_H.FORELINE_HEATER_PID[13].I, PID_D:= GV_H.FORELINE_HEATER_PID[13].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[13].DP, PID_Feedforward:= , PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[13].Output_Limit, SSR_ON=> GV.FORELINE_HEATER_SSR_ON[13]); IF H_FORELINE[13].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[13].P:=H_FORELINE[13].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[13].I:=H_FORELINE[13].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[13].D:=H_FORELINE[13].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[13]:=FALSE; END_IF //FORELINE14 PID H_FORELINE[14]( ENABLE:= GV.AI.FORELINE_Temp14<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[14], TEMP_SV:= FORELINE_TEMP_SV[14], TEMP_ACTUAL:= GV.AI.FORELINE_Temp14, PID_P:= GV_H.FORELINE_HEATER_PID[14].P, PID_I:= GV_H.FORELINE_HEATER_PID[14].I, PID_D:= GV_H.FORELINE_HEATER_PID[14].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[14].DP, PID_Feedforward:= , PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[14].Output_Limit, SSR_ON=> GV.FORELINE_HEATER_SSR_ON[14]); IF H_FORELINE[14].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[14].P:=H_FORELINE[14].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[14].I:=H_FORELINE[14].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[14].D:=H_FORELINE[14].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[14]:=FALSE; END_IF //FORELINE15 PID H_FORELINE[15]( ENABLE:= GV.AI.FORELINE_Temp15<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[15], TEMP_SV:= FORELINE_TEMP_SV[15], TEMP_ACTUAL:= GV.AI.FORELINE_Temp15, PID_P:= GV_H.FORELINE_HEATER_PID[15].P, PID_I:= GV_H.FORELINE_HEATER_PID[15].I, PID_D:= GV_H.FORELINE_HEATER_PID[15].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[15].DP, PID_Feedforward:= , PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[15].Output_Limit, SSR_ON=> GV.FORELINE_HEATER_SSR_ON[15]); IF H_FORELINE[15].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[15].P:=H_FORELINE[15].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[15].I:=H_FORELINE[15].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[15].D:=H_FORELINE[15].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[15]:=FALSE; END_IF //FORELINE16 PID H_FORELINE[16]( ENABLE:= GV.AI.FORELINE_Temp16<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[16], TEMP_SV:= FORELINE_TEMP_SV[16], TEMP_ACTUAL:= GV.AI.FORELINE_Temp16, PID_P:= GV_H.FORELINE_HEATER_PID[16].P, PID_I:= GV_H.FORELINE_HEATER_PID[16].I, PID_D:= GV_H.FORELINE_HEATER_PID[16].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[16].DP, PID_Feedforward:= , PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[16].Output_Limit, SSR_ON=> GV.FORELINE_HEATER_SSR_ON[16]); IF H_FORELINE[16].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[16].P:=H_FORELINE[16].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[16].I:=H_FORELINE[16].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[16].D:=H_FORELINE[16].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[16]:=FALSE; END_IF //FORELINE17 PID H_FORELINE[17]( ENABLE:= GV.AI.FORELINE_Temp17<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[17], TEMP_SV:= FORELINE_TEMP_SV[17], TEMP_ACTUAL:= GV.AI.FORELINE_Temp17, PID_P:= GV_H.FORELINE_HEATER_PID[17].P, PID_I:= GV_H.FORELINE_HEATER_PID[17].I, PID_D:= GV_H.FORELINE_HEATER_PID[17].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[17].DP, PID_Feedforward:= , PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[17].Output_Limit, SSR_ON=> GV.FORELINE_HEATER_SSR_ON[17]); IF H_FORELINE[17].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[17].P:=H_FORELINE[17].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[17].I:=H_FORELINE[17].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[17].D:=H_FORELINE[17].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[17]:=FALSE; END_IF //FORELINE18 PID H_FORELINE[18]( ENABLE:= GV.AI.FORELINE_Temp18<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[18], TEMP_SV:= FORELINE_TEMP_SV[18], TEMP_ACTUAL:= GV.AI.FORELINE_Temp18, PID_P:= GV_H.FORELINE_HEATER_PID[18].P, PID_I:= GV_H.FORELINE_HEATER_PID[18].I, PID_D:= GV_H.FORELINE_HEATER_PID[18].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[18].DP, PID_Feedforward:= , PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[18].Output_Limit, SSR_ON=> GV.FORELINE_HEATER_SSR_ON[18]); IF H_FORELINE[18].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[18].P:=H_FORELINE[18].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[18].I:=H_FORELINE[18].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[18].D:=H_FORELINE[18].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[18]:=FALSE; END_IF //FORELINE19 PID H_FORELINE[19]( ENABLE:= GV.AI.FORELINE_Temp19<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[19], TEMP_SV:= FORELINE_TEMP_SV[19], TEMP_ACTUAL:= GV.AI.FORELINE_Temp19, PID_P:= GV_H.FORELINE_HEATER_PID[19].P, PID_I:= GV_H.FORELINE_HEATER_PID[19].I, PID_D:= GV_H.FORELINE_HEATER_PID[19].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[19].DP, PID_Feedforward:= , PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[19].Output_Limit, SSR_ON=> GV.FORELINE_HEATER_SSR_ON[19]); IF H_FORELINE[19].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[19].P:=H_FORELINE[19].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[19].I:=H_FORELINE[19].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[19].D:=H_FORELINE[19].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[19]:=FALSE; END_IF //FORELINE20 PID H_FORELINE[20]( ENABLE:= GV.AI.FORELINE_Temp20<120, AUTO_TUNE:= GV.FORELINE_HEATER_AUTO_TUNE_EN[20], TEMP_SV:= FORELINE_TEMP_SV[20], TEMP_ACTUAL:= GV.AI.FORELINE_Temp20, PID_P:= GV_H.FORELINE_HEATER_PID[20].P, PID_I:= GV_H.FORELINE_HEATER_PID[20].I, PID_D:= GV_H.FORELINE_HEATER_PID[20].D, PID_Dp:= GV_H.FORELINE_HEATER_PID[20].DP, PID_Feedforward:= , PID_Output_Limit:= GV_H.FORELINE_HEATER_PID[20].Output_Limit, SSR_ON=> GV.FORELINE_HEATER_SSR_ON[20]); IF H_FORELINE[20].PID_AUTO_TUNE_DONE THEN GV_H.FORELINE_HEATER_PID[20].P:=H_FORELINE[20].PID_AUTO_TUNE_P; GV_H.FORELINE_HEATER_PID[20].I:=H_FORELINE[20].PID_AUTO_TUNE_I; GV_H.FORELINE_HEATER_PID[20].D:=H_FORELINE[20].PID_AUTO_TUNE_D; GV.FORELINE_HEATER_AUTO_TUNE_EN[20]:=FALSE; END_IF *)]]>