123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368 |
- <?xml version="1.0" encoding="utf-8"?>
- <TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
- <POU Name="MAIN" Id="{cd684302-3d87-4339-8cb1-2eaa0223f5ad}" SpecialFunc="None">
- <Declaration><![CDATA[PROGRAM MAIN
- VAR
- ENABLE:BOOL;
- //RECIPE
- PROCESS:PROCESS;
- PROCESS_EN:BOOL;
- PROCESS_RUN:BOOL;
- PROCESS_STOP:BOOL;
- P_NO:INT;
- CYCLE_EN:BOOL;
- CYCLE_NUM:INT;
- CYCLE_START_STEP_NO:INT;
- STEP_NO:INT;
- NEXTSTEP_EN:BOOL;
- UPS:FB_S_UPS_BAPI;
- END_VAR
- ]]></Declaration>
- <Implementation>
- <ST><![CDATA[//UPS
- UPS(
- sNetID:= ,
- iPLCPort:= 851,
- tTimeout:= ,
- eUpsMode:= eSUPS_WrPersistData_shutdown,
- ePersistentMode:= ,
- tRecoverTime:= T#10S,
- bPowerFailDetect=> ,
- eState=> ,
- nCapacity=> ,
- bBusy=> ,
- bError=> ,
- nErrID=> );
- //******************************IO*********************************
- IO_EXCHANGE();
- //*****************************CONFIGURATION***********************
- IL();
- //*****************************INTERLOCK***************************
- Temp();
-
- //*****************************PROCESS*****************************
- PROCESS_RUN:=GV.Process_Start AND NOT GV.ALARM_OCC;
- PROCESS_STOP:=GV.Process_Stop OR GV.ALARM_OCC;
- //PROCESS ENABLE
- IF PROCESS_RUN AND NOT PROCESS_EN
- THEN
- CYCLE_NUM := 0;
- STEP_NO:=1;
- P_NO:=1;
- PM.ProcessFeedBack.ProcessFinished:=FALSE;
- END_IF
- IF PROCESS_RUN AND NOT PROCESS_EN
- THEN
- PROCESS_EN:=TRUE;
- END_IF;
-
- IF PROCESS_STOP
- THEN
- CYCLE_NUM:=0;
- CYCLE_EN:=FALSE;
- PROCESS_EN:=FALSE;
- PROCESS_RUN:=FALSE;
- END_IF;
- IF NOT PM.ProcessFeedBack.ProcessFinished
- THEN
- PM.ProcessFeedBack.CurrentStepNo:=STEP_NO;
- ELSE
- PM.ProcessFeedBack.CurrentStepNo:=STEP_NO-1;
- END_IF
-
- IF PROCESS_EN
- THEN
- PM.ProcessFeedBack.ProcessStart:=TRUE;
- PM.ProcessFeedBack.CurrentStepstart:=TRUE;
- ELSE
- PM.ProcessFeedBack.ProcessStart:=FALSE;
- PM.ProcessFeedBack.CurrentStepstart:=FALSE;
- END_IF
-
- IF GV.Step_Num<STEP_NO
- THEN
- PM.ProcessFeedBack.ProcessFinished:=TRUE;
- END_IF
- IF GV.ALARM_OCC
- THEN
- PROCESS_EN:=FALSE;
-
- END_IF
-
- IF STEP_NO<1 OR STEP_NO >100
- THEN
- STEP_NO:=1;
- END_IF
-
- //CYCLE初始化
- IF GV.SetpArray[STEP_NO].CycleStart AND CYCLE_EN=FALSE
- THEN
- CYCLE_EN := TRUE;
- CYCLE_START_STEP_NO := STEP_NO;
- CYCLE_NUM := GV.SetpArray[STEP_NO].CycleNumber;
- END_IF;
-
- //STEP
- PROCESS(
- ENABLE := PROCESS_EN,
- NEXTSTEP_EN := NEXTSTEP_EN,
- Alarm_RST := UI.Warning_And_Alarm_RST,
- PMStableTime := GV.PMConfig.PMStableTime,
- STEP_DATA := GV.SetpArray[STEP_NO],
- );
-
- //PROCESS FLOW
- CASE P_NO OF
- 1: IF NOT PROCESS_EN
- THEN
- P_NO:=100;
- ELSE
- P_NO:=2;
- END_IF;
- NEXTSTEP_EN:=FALSE;
-
- 2: IF PROCESS.NEXTSTEP
- THEN
- PM.ProcessFeedBack.CurrentStepFinished:=TRUE;
- PM.ProcessFeedBack.CurrentStepstart:=FALSE;
- P_NO:=3;
- END_IF;
-
- 3: IF CYCLE_EN
- THEN
- P_NO:=10;
- ELSE
- P_NO:=20;
- END_IF
-
- 10: IF GV.SetpArray[STEP_NO].CycleEnd
- THEN
- P_NO:=11;
- ELSE
- P_NO:=20;
- END_IF;
-
- 11: IF CYCLE_NUM=0
- THEN
- P_NO:=20;
- CYCLE_EN:=FALSE;
- ELSE
- CYCLE_NUM:=CYCLE_NUM-1;
- P_NO:=21;
- END_IF;
-
- 20: STEP_NO:=STEP_NO+1;
- NEXTSTEP_EN:=TRUE;
- P_NO:=1;
- PM.ProcessFeedBack.CurrentStepstart:=TRUE;
- PM.ProcessFeedBack.CurrentStepFinished:=FALSE;
-
- 21: STEP_NO:=CYCLE_START_STEP_NO;
- NEXTSTEP_EN:=TRUE;
- P_NO:=1;
-
- 100:;
- END_CASE;
-
-
- IF PROCESS_EN
- THEN
- //******************工艺参数赋值***************
- //APC
- GV. AO. APC.TARGET_PRESSURE := PROCESS.APC_PRESSURE;
- GV. AO. APC.TARGET_POSITION := PROCESS.APC_POSITION;
- IF GV_IL.APC_EN THEN
- GV.AO. APC. Control_Mode := PROCESS.APC_CONTROL_MODE ;
- ELSE
- GV.AO. APC. Control_Mode := 3 ;
- END_IF
-
- //MFC
- GV.AO.MFC1_Flow_Setpoint := PROCESS.MFC1_SV;
- GV.AO.MFC2_Flow_Setpoint := PROCESS.MFC2_SV;
- GV.AO.MFC3_Flow_Setpoint := PROCESS.MFC3_SV;
- GV.AO.MFC4_Flow_Setpoint := PROCESS.MFC4_SV;
- GV.AO.MFC5_Flow_Setpoint := PROCESS.MFC5_SV;
- GV.AO.MFC6_Flow_Setpoint := PROCESS.MFC6_SV;
- GV.AO.MFC7_Flow_Setpoint := PROCESS.MFC7_SV;
- // GV.AO.MFC8_Flow_Setpoint := PROCESS.MFC8_SV;
- // GV.AO.MFC9_Flow_Setpoint := PROCESS.MFC9_SV;
-
- //LID HEATER
- GV.AO.LID_Temp_SV := PROCESS.LID_TEMP;
-
- //CHAMBER HEATER
- GV.AO. Chamber_Temp1_SV :=
- GV.AO. Chamber_Temp2_SV :=
- GV.AO. Chamber_Temp3_SV := PROCESS.WALL_TEMP;
- //CHILLER
- // GV. CHILLER2_TEMP_SV := PROCESS.STAGE_EDGE_TEMP; //CHILLER1
- // GV. CHILLER1_TEMP_SV := PROCESS.STAGE_EDGE_TEMP; //CHILLER2
-
- //************************TOLERANCE 赋值****************
-
- //************************VALVE动作****************
- GV.NDO.AV1 := FALSE ;// ( GV.AO.MFC1_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC1 AND GV_IL.AV1_EN ;
- GV.NDO.AV2 := ( GV.AO.MFC1_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC1 AND GV_IL.AV2_EN ;
- GV.NDO.AV3 := ( GV.AO.MFC1_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC1 AND GV_IL.AV3_EN ;
- GV.NDO.AV4 := FALSE ;// ( GV.AO.MFC2_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC2 AND GV_IL.AV4_EN ;
- GV.NDO.AV5 := ( GV.AO.MFC2_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC2 AND GV_IL.AV5_EN ;
- GV.NDO.AV6 := ( GV.AO.MFC2_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC2 AND GV_IL.AV6_EN ;
- GV.NDO.AV7 := FALSE ;// ( GV.AO.MFC3_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC3 AND GV_IL.AV7_EN ;
- GV.NDO.AV8 := ( GV.AO.MFC3_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC3 AND GV_IL.AV8_EN ;
- GV.NDO.AV9 := ( GV.AO.MFC3_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC3 AND GV_IL.AV9_EN ;
- GV.NDO.AV10 := FALSE ;// ( ) AND AND GV_IL.AV10_EN ;
- GV.NDO.AV11 := FALSE ;// ( ) AND AND GV_IL.AV11_EN ;
- GV.NDO.AV12 := FALSE ;// ( ) AND AND GV_IL.AV12_EN ;
- GV.NDO.AV13 := FALSE ;// ( ) AND AND GV_IL.AV13_EN ;
- GV.NDO.AV14 := FALSE ;// ( GV.AO.MFC5_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC5 AND GV_IL.AV14_EN ;
- GV.NDO.AV15 := ( GV.AO.MFC5_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC5 AND GV_IL.AV15_EN ;
- GV.NDO.AV16 := ( GV.AO.MFC5_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC5 AND GV_IL.AV16_EN ;
- GV.NDO.AV17 := FALSE ;// ( ) AND AND GV_IL.AV17_EN ;
- GV.NDO.AV18 := FALSE ;// ( ) AND AND GV_IL.AV18_EN ;
- GV.NDO.AV19 := FALSE ;// ( ) AND AND GV_IL.AV19_EN ;
- GV.NDO.AV20 := FALSE ;// ( GV.AO.MFC6_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC6 AND GV_IL.AV20_EN ;
- GV.NDO.AV21 := ( GV.AO.MFC6_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC6 AND GV_IL.AV21_EN ;
- GV.NDO.AV22 := ( GV.AO.MFC6_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC6 AND GV_IL.AV22_EN ;
- GV.NDO.AV23 := FALSE ;// ( GV.AO.MFC7_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC7 AND GV_IL.AV23_EN ;
- GV.NDO.AV24 := ( GV.AO.MFC7_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC7 AND GV_IL.AV24_EN ;
- GV.NDO.AV25 := ( GV.AO.MFC7_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC7 AND GV_IL.AV25_EN ;
- GV.NDO.AV26 := (
- (( GV.AO.MFC1_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC1)
- OR (( GV.AO.MFC2_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC2)
- OR (( GV.AO.MFC3_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC3)
- )
- AND GV_IL.AV26_EN ;
- GV.NDO.AV27 := (
- (( GV.AO.MFC5_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC5)
- OR (( GV.AO.MFC6_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC6)
- OR (( GV.AO.MFC7_Flow_Setpoint>0 ) AND PM.INFO.Alarm.TOLERANCE_MFC7)
- )
- AND GV_IL.AV27_EN ;
-
- END_IF
- //TOL ALRM&WARNING
- PM.INFO.Alarm.TOLERANCE_PRESSURE := NOT PROCESS.PRESSURE_ALARM;
- PM.INFO.Alarm.TOLERANCE_MFC1 := NOT PROCESS.MFC1_Alarm;
- PM.INFO.Alarm.TOLERANCE_MFC2 := NOT PROCESS.MFC2_Alarm;
- PM.INFO.Alarm.TOLERANCE_MFC3 := NOT PROCESS.MFC3_Alarm;
- PM.INFO.Alarm.TOLERANCE_MFC4 := NOT PROCESS.MFC4_Alarm;
- PM.INFO.Alarm.TOLERANCE_MFC5 := NOT PROCESS.MFC5_Alarm;
- PM.INFO.Alarm.TOLERANCE_MFC6 := NOT PROCESS.MFC6_Alarm;
- PM.INFO.Alarm.TOLERANCE_MFC7 := NOT PROCESS.MFC7_Alarm;
- PM.INFO.Alarm.TOLERANCE_MFC8 := NOT PROCESS.MFC8_Alarm;
- PM.INFO.Alarm.TOLERANCE_MFC9 := NOT PROCESS.MFC9_Alarm;
- PM.INFO.Alarm.TOLERANCE_WALL_TEMP := NOT PROCESS.WALL_TEMP_Alarm;
- PM.INFO.Alarm.TOLERANCE_LID_TEMP := NOT PROCESS.LID_TEMP_Alarm;
- PM.INFO.Alarm.TOLERANCE_STAGE_EDGE_TEMP := NOT PROCESS.STAGE_EDGE_TEMP_Alarm;
- PM.INFO.Alarm.TOLERANCE_STAGE_CENTER_TEMP := NOT PROCESS.STAGE_CENTER_TEMP_ALARM;
-
- PM.INFO.Warning.TOLERANCE_PRESSURE := NOT PROCESS.PRESSURE_WARNING;
- PM.INFO.Warning.TOLERANCE_MFC1 := NOT PROCESS.MFC1_WARNING;
- PM.INFO.Warning.TOLERANCE_MFC2 := NOT PROCESS.MFC2_WARNING;
- PM.INFO.Warning.TOLERANCE_MFC3 := NOT PROCESS.MFC3_WARNING;
- PM.INFO.Warning.TOLERANCE_MFC4 := NOT PROCESS.MFC4_WARNING;
- PM.INFO.Warning.TOLERANCE_MFC5 := NOT PROCESS.MFC5_WARNING;
- PM.INFO.Warning.TOLERANCE_MFC6 := NOT PROCESS.MFC6_WARNING;
- PM.INFO.Warning.TOLERANCE_MFC7 := NOT PROCESS.MFC7_WARNING;
- PM.INFO.Warning.TOLERANCE_MFC8 := NOT PROCESS.MFC8_WARNING;
- PM.INFO.Warning.TOLERANCE_MFC9 := NOT PROCESS.MFC9_WARNING;
- PM.INFO.Warning.TOLERANCE_WALL_TEMP := NOT PROCESS.WALL_TEMP_WARNING;
- PM.INFO.Warning.TOLERANCE_LID_TEMP := NOT PROCESS.LID_TEMP_WARNING;
- PM.INFO.Warning.TOLERANCE_STAGE_EDGE_TEMP := NOT PROCESS.STAGE_EDGE_TEMP_WARNING;
- PM.INFO.Warning.TOLERANCE_STAGE_CENTER_TEMP := NOT PROCESS.STAGE_CENTER_TEMP_WARNING;
- ]]></ST>
- </Implementation>
- <LineIds Name="MAIN">
- <LineId Id="4090" Count="28" />
- <LineId Id="4397" Count="1" />
- <LineId Id="4401" Count="2" />
- <LineId Id="4400" Count="0" />
- <LineId Id="4399" Count="0" />
- <LineId Id="4424" Count="3" />
- <LineId Id="4432" Count="0" />
- <LineId Id="4428" Count="1" />
- <LineId Id="4552" Count="0" />
- <LineId Id="4551" Count="0" />
- <LineId Id="4430" Count="1" />
- <LineId Id="4423" Count="0" />
- <LineId Id="4433" Count="0" />
- <LineId Id="4522" Count="0" />
- <LineId Id="4524" Count="2" />
- <LineId Id="4523" Count="0" />
- <LineId Id="4528" Count="0" />
- <LineId Id="4405" Count="1" />
- <LineId Id="4408" Count="0" />
- <LineId Id="4417" Count="0" />
- <LineId Id="4409" Count="1" />
- <LineId Id="4434" Count="0" />
- <LineId Id="4411" Count="0" />
- <LineId Id="4128" Count="2" />
- <LineId Id="4132" Count="1" />
- <LineId Id="4321" Count="1" />
- <LineId Id="4324" Count="1" />
- <LineId Id="4323" Count="0" />
- <LineId Id="4139" Count="10" />
- <LineId Id="4435" Count="0" />
- <LineId Id="4151" Count="6" />
- <LineId Id="4396" Count="0" />
- <LineId Id="4158" Count="10" />
- <LineId Id="4395" Count="0" />
- <LineId Id="4169" Count="2" />
- <LineId Id="4414" Count="0" />
- <LineId Id="4416" Count="0" />
- <LineId Id="4174" Count="1" />
- <LineId Id="4360" Count="2" />
- <LineId Id="4365" Count="1" />
- <LineId Id="4364" Count="0" />
- <LineId Id="4363" Count="0" />
- <LineId Id="4176" Count="10" />
- <LineId Id="4370" Count="0" />
- <LineId Id="4187" Count="1" />
- <LineId Id="4369" Count="0" />
- <LineId Id="4189" Count="3" />
- <LineId Id="4393" Count="0" />
- <LineId Id="4415" Count="0" />
- <LineId Id="4193" Count="3" />
- <LineId Id="4394" Count="0" />
- <LineId Id="4198" Count="10" />
- <LineId Id="4576" Count="3" />
- <LineId Id="4575" Count="0" />
- <LineId Id="4210" Count="18" />
- <LineId Id="4230" Count="4" />
- <LineId Id="4492" Count="0" />
- <LineId Id="4293" Count="0" />
- <LineId Id="4292" Count="0" />
- <LineId Id="4294" Count="25" />
- <LineId Id="4353" Count="0" />
- <LineId Id="4350" Count="1" />
- <LineId Id="4354" Count="0" />
- <LineId Id="4352" Count="0" />
- <LineId Id="4320" Count="0" />
- <LineId Id="4356" Count="2" />
- <LineId Id="4355" Count="0" />
- <LineId Id="4359" Count="0" />
- <LineId Id="4291" Count="0" />
- <LineId Id="4264" Count="1" />
- <LineId Id="4521" Count="0" />
- <LineId Id="4266" Count="0" />
- <LineId Id="4493" Count="27" />
- <LineId Id="4267" Count="1" />
- <LineId Id="686" Count="0" />
- </LineIds>
- </POU>
- </TcPlcObject>
|