



|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FB42 SEQ1 P02 : Packaging Pallet A |
|
|
|
|
|
Network 1: Pre-Setting "DI MAIN P02".M00.ReadyToStart := "DI MAIN P02".M00.HomePos_IS AND ("DI MAIN GLB".M00.AutoEntirePlant_run XOR "DI MAIN GLB".M00.InchEntirePlant_run); "DI MAIN P02".M00.SEQ1_Busy := NOT (#SSM.S.step0 AND "DI MAIN P02".SEQ2.SSM.S.step0); |
|
|
|
|
|
Network 2: Define last step #SSM(LAST_STEP := 5); |
|
|
|
|
|
Network 3: Step Switching Mechanism (SSM) CASE #SSM.S.stepact OF 0: // Waiting for SEQ1 to start #SSM.S.stepd := "DI MAIN P01".to_P02.Pallet_A_Request AND "DI MAIN P02".M00.ReadyToStart AND #SSM.S.steps;
1: // M201 Packaging Conveyor CmdExe_WP "DI OUT P02".Y2011.VLV_O.CmdExe_WP := "HMI KEY".P02.Y2011.F12_Enable_WP AND #SSM.S.stepa; "DI OUT P02".M201.DRV.CmdExe_WP := "HMI KEY".P02.M201.F12_Enable_WP AND ("DI OUT P02".Y2011.FEEDBACK_WP OR "E00 Y2011 After Pos"); #SSM.S.stepd := "DI OUT P02".M201.FEEDBACK AND "E00 Y2011 After Pos" AND "DI OUT P02".Y2011.FEEDBACK_HP;
2: // CV201 Packaging Fixing Unit CmdExe_WP IF #SSM.S.stepfc THEN "DI OUT P01".Pallet_A := "HMI KEY".PlantInfo.Pallet_A; // BLOCK MOVE "DI OUT P01".Pallet_A.Places := "HMI KEY".PlantInfo.Pallet_A.Layer_Data.PlacesOn_X * "HMI KEY".PlantInfo.Pallet_A.Layer_Data.PlacesOn_Y; ELSIF "E00 Y2012 at Pos" THEN "DI OUT P02".M201.DRV.CmdExe_WP := "DI OUT P02".CV201.VLV_OC.CmdExe_HP := FALSE; "DI OUT P02".CV201.VLV_OC.CmdExe_WP := "HMI KEY".P02.CV201.F12_Enable_WP; #SSM.S.stepd := "DI MAIN P02".to_P01.Pallet_A_EnabledToRun := NOT ("DI OUT P02".M201.FEEDBACK OR #SSM.S.steplo) AND "DI OUT P02".CV201.FEEDBACK_WP; END_IF;
3: // Waiting for P01_to_P02 Pallet_A_Done IF "DI MAIN P01".to_P02.Pallet_A_Done THEN "DI OUT P02".CV201.VLV_OC.CmdExe_WP := FALSE; "DI OUT P02".CV201.VLV_OC.CmdExe_HP := "HMI KEY".P02.CV201.F11_Enable_HP; "DI OUT P02".Y2012.VLV_O.CmdExe_WP := "HMI KEY".P02.Y2012.F12_Enable_WP AND #SSM.S.stepa; "DI OUT P02".M201.DRV.CmdExe_WP := "HMI KEY".P02.M201.F12_Enable_WP AND ("DI OUT P02".Y2012.FEEDBACK_WP OR "E00 Y2012 After Pos"); #SSM.S.stepd := "DI OUT P02".M201.FEEDBACK AND "E00 Y2012 After Pos"; END_IF;
4: // Query pallet after stopper Y2012 #SSM.S.c1.start := TRUE; #SSM.S.c1.set := 30; "DI OUT P02".Y2012.VLV_O.CmdExe_WP := "DI OUT P02".M201.DRV.CmdExe_WP := NOT #SSM.S.c1.done; #SSM.S.stepd := "DI MAIN P02".to_P01.Pallet_A_ReadyToEnd := "DI OUT P02".M201.DRV.LampHP AND "DI OUT P02".Y2012.FEEDBACK_HP;
5: // Waiting to end product packaging Pallet_A #SSM.S.c1.start := "HMI KEY".PlantInfo.Product_Packaging_Done; #SSM.S.c1.set := 30; IF #SSM.S.c1.done THEN "DI MAIN P02".to_P01.Pallet_A_EnabledToRun := "DI MAIN P02".to_P01.Pallet_A_ReadyToEnd := FALSE; #SSM.S.stepd := "DI MAIN P01".to_P02.Pallet_A_Done AND NOT "HMI KEY".P00.GLB.F6_OM_RUN_DOWN_ON; END_IF; END_CASE; |
|
|
|
|
|
FB43 SEQ2 P02 : Packaging Pallet B |
|
|
|
|
|
Network 1: Pre-Setting ; |
|
|
|
|
|
Network 2: Define last step #SSM(LAST_STEP := 5); |
|
|
|
|
|
Network 3: Step Switching Mechanism (SSM) CASE #SSM.S.stepact OF 0: // Waiting for SEQ1 to start #SSM.S.stepd := "DI MAIN P01".to_P02.Pallet_B_Request AND "DI MAIN P02".M00.ReadyToStart AND #SSM.S.steps;
1: // M202 Packaging Conveyor CmdExe_WP "DI OUT P02".Y2021.VLV_O.CmdExe_WP := "HMI KEY".P02.Y2021.F12_Enable_WP AND #SSM.S.stepa; "DI OUT P02".M202.DRV.CmdExe_WP := "HMI KEY".P02.M202.F12_Enable_WP AND ("DI OUT P02".Y2021.FEEDBACK_WP OR "E00 Y2021 After Pos"); #SSM.S.stepd := "DI OUT P02".M202.FEEDBACK AND "E00 Y2021 After Pos" AND "DI OUT P02".Y2021.FEEDBACK_HP;
2: // CV202 Packaging Fixing Unit CmdExe_WP IF #SSM.S.stepfc THEN "DI OUT P01".Pallet_B := "HMI KEY".PlantInfo.Pallet_B; // BLOCK MOVE "DI OUT P01".Pallet_B.Places := "HMI KEY".PlantInfo.Pallet_B.Layer_Data.PlacesOn_X * "HMI KEY".PlantInfo.Pallet_B.Layer_Data.PlacesOn_Y; ELSIF "E00 Y2022 at Pos" THEN "DI OUT P02".M202.DRV.CmdExe_WP := "DI OUT P02".CV202.VLV_OC.CmdExe_HP := FALSE; "DI OUT P02".CV202.VLV_OC.CmdExe_WP := "HMI KEY".P02.CV202.F12_Enable_WP; #SSM.S.stepd := "DI MAIN P02".to_P01.Pallet_B_EnabledToRun := NOT ("DI OUT P02".M202.FEEDBACK OR #SSM.S.steplo) AND "DI OUT P02".CV202.FEEDBACK_WP; END_IF;
3: // Waiting for P01_to_P02 Pallet_B_Done IF "DI MAIN P01".to_P02.Pallet_B_Done THEN "DI OUT P02".CV202.VLV_OC.CmdExe_WP := FALSE; "DI OUT P02".CV202.VLV_OC.CmdExe_HP := "HMI KEY".P02.CV202.F11_Enable_HP; "DI OUT P02".Y2022.VLV_O.CmdExe_WP := "HMI KEY".P02.Y2022.F12_Enable_WP AND #SSM.S.stepa; "DI OUT P02".M202.DRV.CmdExe_WP := "HMI KEY".P02.M202.F12_Enable_WP AND ("DI OUT P02".Y2022.FEEDBACK_WP OR "E00 Y2022 After Pos"); #SSM.S.stepd := "DI OUT P02".M202.FEEDBACK AND "E00 Y2022 After Pos"; END_IF;
4: // Query pallet after stopper Y2022 #SSM.S.c1.start := TRUE; #SSM.S.c1.set := 30; "DI OUT P02".Y2022.VLV_O.CmdExe_WP := "DI OUT P02".M202.DRV.CmdExe_WP := NOT #SSM.S.c1.done; #SSM.S.stepd := "DI MAIN P02".to_P01.Pallet_B_ReadyToEnd := "DI OUT P02".M202.DRV.LampHP AND "DI OUT P02".Y2022.FEEDBACK_HP;
5: // Waiting to end product packaging Pallet_B #SSM.S.c1.start := "HMI KEY".PlantInfo.Product_Packaging_Done; #SSM.S.c1.set := 30; IF #SSM.S.c1.done THEN "DI MAIN P02".to_P01.Pallet_B_EnabledToRun := "DI MAIN P02".to_P01.Pallet_B_ReadyToEnd := FALSE; #SSM.S.stepd := "DI MAIN P01".to_P02.Pallet_B_Done AND NOT "HMI KEY".P00.GLB.F6_OM_RUN_DOWN_ON; END_IF; END_CASE; |
|