123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413 |
- <?xml version="1.0" encoding="utf-8"?>
- <TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
- <POU Name="FIMSSEQUENCE" Id="{ccd53ff0-004a-4e41-8b19-d824f47f7c88}" SpecialFunc="None">
- <Declaration><![CDATA[FUNCTION_BLOCK FIMSSEQUENCE
- VAR_INPUT
- Enable :BOOL;
- StopCmd_In_b :BOOL;
- LoadCmd_In_b :BOOL;
- UnloadCmd_In_b :BOOL;
- Open_Close_Cmd_In_b :BOOL;
- Open_Close_Count :BOOL;
- PodSeqAlmRst_In_b :BOOL;
- N2PurgeBypassEN_In_b :BOOL;
- FoupInPodPos_In_b :BOOL;
- FoupInRetractPos_In_b :BOOL;
- FoupInExtendPos_In_b :BOOL;
- FoupInSealPos_In_b :BOOL;
- FoupInRlsPos_In_b :BOOL;
- FoupLatchOnPos_In_b :BOOL;
- FoupLatchOffPos_In_b :BOOL;
- PodVacStatus_In_b :BOOL;
- PodVacATM_In_b :BOOL;
- O2Check_EN :BOOL;
- O2Check_Done_In_b :BOOL;
- PodDrXaxisAvoidInUpPos_In_b :BOOL;
- PodDrXaxisAvoidInDnPos_In_b :BOOL;
- PodDrYClsPos_In_b :BOOL;
- PodDrYOpPos_In_b :BOOL;
- N2PurgeValOpPos_In_b :BOOL;
- N2PurgeValClPos_In_b :BOOL;
- END_VAR
- VAR_OUTPUT
- EnableOutput :BOOL;
- LoadOTAlm_Out_b :BOOL;
- UnloadOTAlm_Out_b :BOOL;
- PodLoadDone_Out_b :BOOL;
- PodUnloadDone_Out_b :BOOL;
- PodRunning_Out_b :BOOL;
- PodRetractVal_Out_b :BOOL;
- PodExtendVal_Out_b :BOOL;
- PodVacOpVal_Out_b :BOOL;
- PodVacClsVal_Out_b :BOOL;
- PodFoupLatchOffVal_Out_b :BOOL;
- PodFoupLatchonVal_Out_b :BOOL;
- PodSealVal_Out_b :BOOL;
- PodRealseVal_Out_b :BOOL;
- N2PurgePodOpVal_Out_b :BOOL;
- N2PurgePodClsVal_Out_b :BOOL;
- O2CheckVal_Out_b :BOOL;
- PodDrXaxisAvoidOpVal_Out_b :BOOL;
- PodDrXaxisAvoidClsVal_Out_b :BOOL;
- PodDrYOpVal_Out_b :BOOL;
- PodDrYClsVal_Out_b :BOOL;
- END_VAR
- VAR
- UnloadStage : INT ;
- FIMSUnloadTrig : R_TRIG ;
- UnloadOTAlm : TON ;
- LoadStage : INT ;
- FIMSLoadTrig : R_TRIG ;
- LoadOTAlm : TON ;
- FIMSTrigDleyOn : TON ;
- FIMSUnloadDlyOn : TON ;
- PodLoadRunning_b : BOOL ;
- PodUnloadRunning_b : BOOL ;
- loadottime : TIME ;
- unloadottime : TIME ;
- KeyStatusTON : TON ;
- KeyStatusTON1 : TON ;
- UnloadVacOffDly : TON ;
- UNLOAD_STEP_DELAY_EN : BOOL ;
- UNLOAD_STEP_NEXT : INT ;
- UNLOAD_STEP_DELAY : TON ;
- UNLOAD_STEP_DELAY_TIME : TIME ;
- LOAD_STEP_DELAY_EN : BOOL ;
- LOAD_STEP_NEXT : INT ;
- LOAD_STEP_DELAY : TON ;
- LOAD_STEP_DELAY_TIME : TIME ;
- END_VAR
- ]]></Declaration>
- <Implementation>
- <ST><![CDATA[ IF NOT LoadCmd_In_b OR ( LoadOTAlm_Out_b AND PodSeqAlmRst_In_b ) OR StopCmd_In_b THEN
- LoadOTAlm( In:= FALSE , PT:= T#60s , Q=> LoadOTAlm_Out_b , ET=>loadottime );
- LoadStage := 0 ;
- PodLoadRunning_b := FALSE ;
- LOAD_STEP_DELAY_EN:=FALSE;
- LOAD_STEP_NEXT:=0;
- END_IF ;
-
- IF NOT UnloadCmd_In_b OR ( UnloadOTAlm_Out_b AND PodSeqAlmRst_In_b ) OR StopCmd_In_b THEN
- UnloadOTAlm( In:= FALSE , PT:= T#60s , Q=> UnloadOTAlm_Out_b , ET=>unloadottime );
- UnloadStage := 0 ;
- PodUnloadRunning_b := FALSE ;
- UNLOAD_STEP_DELAY_EN:=FALSE;
- UNLOAD_STEP_NEXT:=0;
- END_IF;
-
- IF Enable THEN
- //Alarm
- IF LoadCmd_In_b AND NOT StopCmd_In_b AND LoadStage>0 THEN
- LoadOTAlm( In:= TRUE , PT:= T#60s , Q=> LoadOTAlm_Out_b , ET=>loadottime );
- (*ELSIF NOT LoadCmd_In_b OR ( LoadOTAlm_Out_b AND PodSeqAlmRst_In_b ) OR StopCmd_In_b THEN
- LoadOTAlm( In:= FALSE , PT:= T#60s , Q=> LoadOTAlm_Out_b , ET=>loadottime );
- LoadStage := 0 ;
- PodLoadRunning_b := FALSE ;*)
- END_IF;
-
- IF UnloadCmd_In_b AND NOT StopCmd_In_b AND UnloadStage>0 THEN
- UnloadOTAlm( In:= TRUE , PT:= T#60s , Q=> UnloadOTAlm_Out_b , ET=>unloadottime );
- (*ELSIF NOT UnloadCmd_In_b OR ( UnloadOTAlm_Out_b AND PodSeqAlmRst_In_b ) OR StopCmd_In_b THEN
- UnloadOTAlm( In:= FALSE , PT:= T#60s , Q=> UnloadOTAlm_Out_b , ET=>unloadottime );
- UnloadStage := 0 ;
- PodUnloadRunning_b := FALSE ;*)
- END_IF;
-
- //Unload
- FIMSUnloadDlyOn.In := UnloadCmd_In_b ;
- FIMSUnloadDlyOn((*In:=,*) PT:=T#100MS(*, Q=>, ET=>*));
- UNLOAD_STEP_DELAY(In:=UNLOAD_STEP_DELAY_EN,PT:=UNLOAD_STEP_DELAY_TIME);
- IF UnloadCmd_In_b THEN
- FIMSUnloadTrig( Clk:= FIMSUnloadDlyOn.Q );
- IF FIMSUnloadTrig.Q THEN
- UnloadStage := 0 ;
- END_IF;
- CASE UnloadStage OF
- 0://门板Y轴归位
- PodLoadDone_Out_b := FALSE ;
- PodUnloadDone_Out_b := FALSE ;
- PodUnloadRunning_b := TRUE ;
- PodDrYClsVal_Out_b := TRUE ;
- PodDrYOpVal_Out_b := FALSE ;
- (*UnloadOTAlm( In:= PodDrYClsVal_Out_b AND NOT PodSeqAlmRst_In_b , PT:= T#60s , Q=> UnloadOTAlm_Out_b [*, ET=>*] );*)
- IF PodDrYClsVal_Out_b AND PodDrYClsPos_In_b AND NOT PodDrYOpPos_In_b AND NOT UnloadOTAlm_Out_b
- THEN
- UNLOAD_STEP_DELAY_EN:=TRUE;
- UNLOAD_STEP_NEXT:=10;
- UNLOAD_STEP_DELAY_TIME:=T#200ms;
- UnloadStage := 200 ;
- END_IF;
- 10://Pod 门板移动 seal
- PodSealVal_Out_b := TRUE ;
- PodRealseVal_Out_b := FALSE ;
- (*UnloadOTAlm( In:= PodSealVal_Out_b AND NOT PodSeqAlmRst_In_b , PT:= T#60s , Q=> UnloadOTAlm_Out_b [*, ET=>*] );*)
- IF PodSealVal_Out_b AND FoupInSealPos_In_b AND NOT FoupInRlsPos_In_b AND NOT UnloadOTAlm_Out_b THEN
- N2PurgePodClsVal_Out_b := TRUE ;
- UNLOAD_STEP_DELAY_EN:=TRUE;
- UNLOAD_STEP_NEXT:=30;
- UNLOAD_STEP_DELAY_TIME:=T#200ms;
- UnloadStage := 200 ;
- END_IF;
- (*20://pod门板x轴避让归位
- PodDrXaxisAvoidClsVal_Out_b :=TRUE ;
- PodDrXaxisAvoidOpVal_Out_b := FALSE ;
- [*UnloadOTAlm( In:= PodDrXaxisAvoidClsVal_Out_b AND NOT PodSeqAlmRst_In_b , PT:= T#60s , Q=> UnloadOTAlm_Out_b [*, ET=>*] );*]
- IF PodDrXaxisAvoidClsVal_Out_b AND PodDrXaxisAvoidInDnPos_In_b AND NOT PodDrXaxisAvoidInUpPos_In_b AND NOT UnloadOTAlm_Out_b THEN
- UnloadStage := 30;
- END_IF;*)
- 30://foup latch on
- PodFoupLatchonVal_Out_b := TRUE ;
- PodFoupLatchoffVal_Out_b := FALSE ;
- KeyStatusTON(In:=PodFoupLatchonVal_Out_b, PT:=T#1s(*, Q=>, ET=>*));
- (*UnloadOTAlm( In:= PodFoupLatchonVal_Out_b AND NOT PodSeqAlmRst_In_b , PT:= T#60s , Q=> UnloadOTAlm_Out_b [*, ET=>*] );*)
- IF PodFoupLatchonVal_Out_b AND FoupLatchOnPos_In_b AND NOT FoupLatchOffPos_In_b AND NOT UnloadOTAlm_Out_b AND KeyStatusTON.Q THEN
- UNLOAD_STEP_DELAY_EN:=TRUE;
- UNLOAD_STEP_NEXT:=40;
- UNLOAD_STEP_DELAY_TIME:=T#200ms;
- UnloadStage := 200 ;
- END_IF;
-
- 40://Vacuum off
- PodVacClsVal_Out_b := TRUE ;
- PodVacOpVal_Out_b := FALSE ;
- UnloadVacOffDly(In:=PodVacClsVal_Out_b, PT:=T#1.5s(*, Q=>, ET=>*));
- IF PodVacATM_In_b OR UnloadVacOffDly.Q(*PodVacClsVal_Out_b AND PodVacStatus_In_b*) THEN
- UNLOAD_STEP_DELAY_EN:=TRUE;
- UNLOAD_STEP_NEXT:=50;
- UNLOAD_STEP_DELAY_TIME:=T#200ms;
- UnloadStage := 200 ;
- END_IF;
-
- 50:// retract
- KeyStatusTON(In:=FALSE, PT:=T#1s(*, Q=>, ET=>*));
- PodRetractVal_Out_b := TRUE ;
- PodExtendVal_Out_b := FALSE ;
- (*UnloadOTAlm( In:= PodRetractVal_Out_b AND NOT PodSeqAlmRst_In_b , PT:= T#60s , Q=> UnloadOTAlm_Out_b [*, ET=>*] );*)
- IF PodRetractVal_Out_b AND FoupInRetractPos_In_b AND NOT FoupInExtendPos_In_b AND NOT UnloadOTAlm_Out_b (*AND FoupInPodPos_In_b*)THEN
- UNLOAD_STEP_DELAY_EN:=TRUE;
- UNLOAD_STEP_NEXT:=100;
- UNLOAD_STEP_DELAY_TIME:=T#200ms;
- UnloadStage := 200 ;
- END_IF;
- 100://Unload done
- UnloadOTAlm( In:= FALSE , PT:= T#60s , Q=> UnloadOTAlm_Out_b (*, ET=>*));
- PodUnloadRunning_b := FALSE ;
- PodUnloadDone_Out_b := TRUE ;
- UNLOAD_STEP_DELAY_EN:=FALSE;
-
- 200://each step delay time
- IF UNLOAD_STEP_DELAY.Q
- THEN
- UNLOAD_STEP_DELAY_EN:=FALSE;
- UnloadStage := UNLOAD_STEP_NEXT ;
- END_IF;
- END_CASE;
- END_IF;
-
- //Load
- (*FIMSTrigDleyOn.In := LoadCmd_In_b ;*)
- FIMSTrigDleyOn.In := LoadCmd_In_b ;
- FIMSTrigDleyOn((*In:= LoadCmd_In_b ,*) PT:= T#100MS (*, Q=>, ET=>*));
- LOAD_STEP_DELAY(In:=LOAD_STEP_DELAY_EN,PT:=LOAD_STEP_DELAY_TIME);
- IF LoadCmd_In_b THEN
- FIMSLoadTrig( Clk:= FIMSTrigDleyOn.Q );
- IF FIMSLoadTrig.Q=TRUE THEN
- LoadStage:= 0;
- END_IF;
- CASE LoadStage OF
- 0://载台上foup有无检测
- PodUnloadDone_Out_b := FALSE ;
- PodLoadDone_Out_b := FALSE ;
- PodLoadRunning_b := TRUE ;
- (*LoadOTAlm.In := NOT PodSeqAlmRst_In_b ;*)
- (*LoadOTAlm([*In:=,*] PT:=T#60s, Q=>LoadOTAlm_Out_b[*, ET=>*]);*)
- IF FoupInPodPos_In_b AND NOT LoadOTAlm_Out_b THEN
- LoadOTAlm.In :=FALSE ;
- LOAD_STEP_DELAY_EN:=TRUE;
- LOAD_STEP_NEXT:=10;
- LOAD_STEP_DELAY_TIME:=T#200ms;
- loadStage := 200 ;
- END_IF;
- 10: //dock
- PodExtendVal_Out_b :=TRUE;
- PodRetractVal_Out_b:=FALSE;
- (*LoadOTAlm1(In:= PodExtendVal_Out_b AND NOT PodSeqAlmRst_In_b , PT:= T#60s, Q=> LoadOTAlm_Out_b [*, ET=>*] );*)
- IF PodExtendVal_Out_b=TRUE AND FoupInExtendPos_In_b=TRUE AND NOT FoupInRetractPos_In_b=TRUE AND NOT LoadOTAlm_Out_b=TRUE THEN
- LOAD_STEP_DELAY_EN:=TRUE;
- LOAD_STEP_NEXT:=20;
- LOAD_STEP_DELAY_TIME:=T#200ms;
- loadStage := 200 ;
- END_IF;
- 20: //vacuum on
- PodVacOpVal_Out_b := TRUE ;
- PodVacClsVal_Out_b := FALSE ;
- IF PodVacOpVal_Out_b=TRUE (* AND PodVacStatus_In_b=TRUE *) THEN
- LOAD_STEP_DELAY_EN:=TRUE;
- LOAD_STEP_NEXT:=30;
- LOAD_STEP_DELAY_TIME:=T#200ms;
- loadStage := 200 ;
- END_IF;
- 30: //foup latch off
- PodFoupLatchoffVal_Out_b := TRUE ;
- PodFoupLatchonVal_Out_b := FALSE ;
- KeyStatusTON1(In:=PodFoupLatchoffVal_Out_b, PT:=T#1s(*, Q=>, ET=>*));
- (*LoadOTAlm2( In:= PodFoupLatchoffVal_Out_b AND NOT PodSeqAlmRst_In_b , PT:= T#60s , Q=> LoadOTAlm_Out_b [*, ET=>*] );*)
- IF PodFoupLatchoffVal_Out_b AND FoupLatchOffPos_In_b AND NOT FoupLatchOnPos_In_b AND NOT LoadOTAlm_Out_b AND KeyStatusTON1.Q THEN
- LOAD_STEP_DELAY_EN:=TRUE;
- LOAD_STEP_NEXT:=31;
- LOAD_STEP_DELAY_TIME:=T#200ms;
- loadStage := 200 ;
- END_IF;
-
- 31://N2 Purge Judge
- IF N2PurgeBypassEN_In_b AND O2Check_EN
- THEN
- loadStage := 40 ;
- ELSE
- loadStage := 50;
- END_IF;
-
-
- 40://pod门板x轴避让归位 N2 SEAL
- PodDrXaxisAvoidClsVal_Out_b :=TRUE ;
- PodDrXaxisAvoidOpVal_Out_b := FALSE ;
- (*UnloadOTAlm( In:= PodDrXaxisAvoidClsVal_Out_b AND NOT PodSeqAlmRst_In_b , PT:= T#60s , Q=> UnloadOTAlm_Out_b [*, ET=>*] );*)
- IF PodDrXaxisAvoidClsVal_Out_b AND PodDrXaxisAvoidInDnPos_In_b AND NOT PodDrXaxisAvoidInUpPos_In_b AND NOT UnloadOTAlm_Out_b THEN
- LOAD_STEP_DELAY_EN:=TRUE;
- LOAD_STEP_NEXT:=41;
- LOAD_STEP_DELAY_TIME:=T#0ms;
- loadStage := 41 ;
- END_IF;
- 41: //Pod 门板移动 release
- PodRealseVal_Out_b := TRUE ;
- PodSealVal_Out_b := FALSE ;
- (*LoadOTAlm3( In:= PodRealseVal_Out_b AND NOT PodSeqAlmRst_In_b , PT:= T#60s , Q=> LoadOTAlm_Out_b [*, ET=>*] );*)
- IF PodRealseVal_Out_b AND FoupInRlsPos_In_b AND NOT FoupInSealPos_In_b AND NOT LoadOTAlm_Out_b THEN
- N2PurgePodClsVal_Out_b := TRUE ;
- LOAD_STEP_DELAY_EN:=TRUE;
- LOAD_STEP_NEXT:=42;
- LOAD_STEP_DELAY_TIME:=T#0ms;
- loadStage := 42 ;
- END_IF;
- 42: //N2 Purge and O2 detect
- N2PurgePodOpVal_Out_b := TRUE ;
- N2PurgePodClsVal_Out_b :=FALSE ;
- O2CheckVal_Out_b := TRUE ;
- IF N2PurgePodOpVal_Out_b AND N2PurgeValOpPos_In_b AND NOT N2PurgeValClPos_In_b AND O2Check_Done_In_b AND NOT LoadOTAlm_Out_b THEN
- LOAD_STEP_DELAY_EN:=TRUE;
- LOAD_STEP_NEXT:=43;
- LOAD_STEP_DELAY_TIME:=T#0ms;
- loadStage := 43 ;
- END_IF;
- 43://Pod 门板移动 seal
- PodSealVal_Out_b := TRUE ;
- PodRealseVal_Out_b := FALSE ;
- (*UnloadOTAlm( In:= PodSealVal_Out_b AND NOT PodSeqAlmRst_In_b , PT:= T#60s , Q=> UnloadOTAlm_Out_b [*, ET=>*] );*)
- IF PodSealVal_Out_b AND FoupInSealPos_In_b AND NOT FoupInRlsPos_In_b AND NOT UnloadOTAlm_Out_b THEN
- N2PurgePodClsVal_Out_b := TRUE ;
- LOAD_STEP_DELAY_EN:=TRUE;
- LOAD_STEP_NEXT:=50;
- LOAD_STEP_DELAY_TIME:=T#200ms;
- loadStage := 200 ;
- END_IF;
- 50: // X轴避让
- PodDrXaxisAvoidOpVal_Out_b := TRUE ;
- PodDrXaxisAvoidClsVal_Out_b := FALSE ;
- (*LoadOTAlm4( In:= PodDrXaxisAvoidOpVal_Out_b AND NOT PodSeqAlmRst_In_b , PT:= T#60s , Q=> LoadOTAlm_Out_b [*, ET=>*] );*)
- IF PodDrXaxisAvoidOpVal_Out_b AND PodDrXaxisAvoidInUpPos_In_b AND NOT PodDrXaxisAvoidInDnPos_In_b AND NOT LoadOTAlm_Out_b THEN
- LOAD_STEP_DELAY_EN:=TRUE;
- LOAD_STEP_NEXT:=51;
- LOAD_STEP_DELAY_TIME:=T#0ms;
- loadStage := 51 ;
- END_IF;
- 51: //Pod 门板移动 release
- PodRealseVal_Out_b := TRUE ;
- PodSealVal_Out_b := FALSE ;
- (*LoadOTAlm3( In:= PodRealseVal_Out_b AND NOT PodSeqAlmRst_In_b , PT:= T#60s , Q=> LoadOTAlm_Out_b [*, ET=>*] );*)
- IF PodRealseVal_Out_b AND FoupInRlsPos_In_b AND NOT FoupInSealPos_In_b AND NOT LoadOTAlm_Out_b THEN
- LOAD_STEP_DELAY_EN:=TRUE;
- LOAD_STEP_NEXT:=52;
- LOAD_STEP_DELAY_TIME:=T#200ms;
- loadStage := 200 ;
- END_IF;
- 52://X轴避让
- PodDrXaxisAvoidOpVal_Out_b := TRUE ;
- PodDrXaxisAvoidClsVal_Out_b := FALSE ;
- //LoadOTAlm4( In:= PodDrXaxisAvoidOpVal_Out_b AND NOT PodSeqAlmRst_In_b , PT:= T#60s , Q=> LoadOTAlm_Out_b [*, ET=>*] );
- IF PodDrXaxisAvoidOpVal_Out_b AND PodDrXaxisAvoidInUpPos_In_b AND NOT PodDrXaxisAvoidInDnPos_In_b AND NOT LoadOTAlm_Out_b THEN
- LOAD_STEP_DELAY_EN:=TRUE;
- LOAD_STEP_NEXT:=60;
- LOAD_STEP_DELAY_TIME:=T#200ms;
- loadStage := 200 ;
- END_IF;
-
- (*53://vacuum off
- KeyStatusTON(In:=FALSE, PT:=T#1s[*, Q=>, ET=>*]);
- PodVacClsVal_Out_b := TRUE ;
- PodVacOpVal_Out_b := FALSE ;
- IF PodVacClsVal_Out_b AND PodVacStatus_In_b THEN
- LoadStage := 60 ;
- END_IF; *)
- 60://Y轴移动
- PodDrYOpVal_Out_b := TRUE ;
- PodDrYClsVal_Out_b := FALSE ;
- (*LoadOTAlm5( In:= PodDrYOpVal_Out_b AND NOT PodSeqAlmRst_In_b , PT:= T#60s , Q=> UnloadOTAlm_Out_b [*, ET=>*] );*)
- IF PodDrYOpVal_Out_b AND PodDrYOpPos_In_b AND NOT PodDrYClsPos_In_b AND NOT UnloadOTAlm_Out_b THEN
- LOAD_STEP_DELAY_EN:=TRUE;
- LOAD_STEP_NEXT:=100;
- LOAD_STEP_DELAY_TIME:=T#0ms;
- loadStage := 100 ;
- END_IF;
- 100://Load done
- LoadOTAlm( In:= FALSE , PT:= T#60s , Q=> LoadOTAlm_Out_b (*, ET=>*));
- PodLoadRunning_b := FALSE ;
- PodLoadDone_Out_b := TRUE ;
-
- 200://each step delay time
- IF LOAD_STEP_DELAY.Q
- THEN
- LOAD_STEP_DELAY_EN:=FALSE;
- loadStage := LOAD_STEP_NEXT ;
- END_IF;
- END_CASE;
- END_IF;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PodRunning_Out_b := PodLoadRunning_b OR PodUnloadRunning_b ;
-
- END_IF;]]></ST>
- </Implementation>
- <LineIds Name="FIMSSEQUENCE">
- <LineId Id="17" Count="36" />
- <LineId Id="412" Count="0" />
- <LineId Id="54" Count="78" />
- <LineId Id="134" Count="11" />
- <LineId Id="411" Count="0" />
- <LineId Id="146" Count="154" />
- <LineId Id="302" Count="29" />
- <LineId Id="9" Count="0" />
- </LineIds>
- </POU>
- </TcPlcObject>
|