123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604 |
- <?xml version="1.0" encoding="utf-8"?>
- <TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
- <POU Name="Temp" Id="{8e4146c5-83e0-483d-9024-7c58de37e9e4}" SpecialFunc="None">
- <Declaration><![CDATA[PROGRAM Temp
- VAR
- H_LID :ARRAY[1..10] OF Temp_controller;
- H_CHAMBER :ARRAY[1..10] OF Temp_controller;
- H_PEN_VALVE :Temp_controller;
- H_GATE_VALVE :Temp_controller;
- H_IGS :ARRAY[1..10] OF Temp_controller;
- H_TAPE :ARRAY[1..10] OF Temp_controller;
- H_FORELINE :ARRAY[1..20] OF Temp_controller;
- H_STAGE :ARRAY[1..10] OF Temp_controller;
- END_VAR
- ]]></Declaration>
- <Implementation>
- <ST><;
- 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.AO.AV102_Temp_SV+1
- THEN
- GV_H.FORELINE_HEATER_PID[3].Feedforward:=0;
- ELSE
- GV_H.FORELINE_HEATER_PID[3].Feedforward:=0;
- END_IF
- H_FORELINE[3](
- ENABLE:= GV.AI.AV102_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.AV102_Temp_SV,
- TEMP_ACTUAL:= GV.AI.AV102_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 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]]></ST>
- </Implementation>
- <LineIds Name="Temp">
- <LineId Id="33" Count="6" />
- <LineId Id="41" Count="5" />
- <LineId Id="1162" Count="0" />
- <LineId Id="47" Count="5" />
- <LineId Id="935" Count="0" />
- <LineId Id="54" Count="14" />
- <LineId Id="1163" Count="0" />
- <LineId Id="69" Count="10" />
- <LineId Id="81" Count="6" />
- <LineId Id="926" Count="0" />
- <LineId Id="159" Count="5" />
- <LineId Id="1164" Count="0" />
- <LineId Id="165" Count="6" />
- <LineId Id="938" Count="0" />
- <LineId Id="174" Count="13" />
- <LineId Id="1165" Count="0" />
- <LineId Id="188" Count="6" />
- <LineId Id="937" Count="0" />
- <LineId Id="196" Count="6" />
- <LineId Id="1150" Count="0" />
- <LineId Id="203" Count="14" />
- <LineId Id="219" Count="6" />
- <LineId Id="1087" Count="0" />
- <LineId Id="338" Count="6" />
- <LineId Id="346" Count="11" />
- <LineId Id="936" Count="0" />
- <LineId Id="359" Count="21" />
- <LineId Id="939" Count="0" />
- <LineId Id="382" Count="20" />
- <LineId Id="940" Count="0" />
- <LineId Id="404" Count="6" />
- <LineId Id="456" Count="13" />
- <LineId Id="941" Count="0" />
- <LineId Id="471" Count="7" />
- <LineId Id="962" Count="1" />
- <LineId Id="965" Count="2" />
- <LineId Id="964" Count="0" />
- <LineId Id="479" Count="5" />
- <LineId Id="961" Count="0" />
- <LineId Id="485" Count="6" />
- <LineId Id="942" Count="0" />
- <LineId Id="493" Count="6" />
- <LineId Id="1086" Count="0" />
- <LineId Id="500" Count="6" />
- <LineId Id="1166" Count="0" />
- <LineId Id="507" Count="21" />
- <LineId Id="1167" Count="0" />
- <LineId Id="529" Count="15" />
- <LineId Id="1222" Count="1" />
- <LineId Id="1225" Count="2" />
- <LineId Id="1224" Count="0" />
- <LineId Id="1110" Count="5" />
- <LineId Id="1168" Count="0" />
- <LineId Id="1116" Count="13" />
- <LineId Id="565" Count="1" />
- <LineId Id="1130" Count="2" />
- <LineId Id="1149" Count="0" />
- <LineId Id="1133" Count="1" />
- <LineId Id="1169" Count="0" />
- <LineId Id="1135" Count="13" />
- <LineId Id="587" Count="1" />
- <LineId Id="1089" Count="5" />
- <LineId Id="1170" Count="0" />
- <LineId Id="1095" Count="13" />
- <LineId Id="1088" Count="0" />
- <LineId Id="609" Count="5" />
- <LineId Id="1171" Count="0" />
- <LineId Id="615" Count="14" />
- <LineId Id="988" Count="0" />
- <LineId Id="990" Count="4" />
- <LineId Id="1172" Count="0" />
- <LineId Id="995" Count="6" />
- <LineId Id="1178" Count="0" />
- <LineId Id="1003" Count="5" />
- <LineId Id="989" Count="0" />
- <LineId Id="1009" Count="0" />
- <LineId Id="1011" Count="5" />
- <LineId Id="1173" Count="0" />
- <LineId Id="1017" Count="6" />
- <LineId Id="1181" Count="0" />
- <LineId Id="1180" Count="0" />
- <LineId Id="1025" Count="5" />
- <LineId Id="1010" Count="0" />
- <LineId Id="1031" Count="0" />
- <LineId Id="1033" Count="5" />
- <LineId Id="1174" Count="0" />
- <LineId Id="1039" Count="6" />
- <LineId Id="1183" Count="0" />
- <LineId Id="1046" Count="6" />
- <LineId Id="1032" Count="0" />
- <LineId Id="1053" Count="0" />
- <LineId Id="1055" Count="5" />
- <LineId Id="1175" Count="0" />
- <LineId Id="1061" Count="6" />
- <LineId Id="1185" Count="0" />
- <LineId Id="1068" Count="6" />
- <LineId Id="1054" Count="0" />
- </LineIds>
- </POU>
- </TcPlcObject>
|