Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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".M201.DRV.CmdExe_WP := "HMI KEY".P02.M201.F12_Enable_WP AND #SSM.S.stepa;

        #SSM.S.stepd := "DI OUT P02".M201.FEEDBACK AND NOT "DI OUT P02".Y2011.FEEDBACK_WP;

       

    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 M201 Pallet A atPos" 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 AND "DI OUT P02".CV201.FEEDBACK_WP AND NOT #SSM.S.steplo;

        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".M201.DRV.CmdExe_WP := "HMI KEY".P02.M201.F12_Enable_WP AND "DI OUT P02".CV201.FEEDBACK_HP AND #SSM.S.stepa;

            #SSM.S.stepd := "DI OUT P02".M201.FEEDBACK AND "E00 Y2012 Pallet A AfterPos";

        END_IF;

       

    4: // Query pallet after stopper Y2012

        "DI OUT P02".M201.DRV.CmdExe_WP := FALSE;

        "DI MAIN P02".to_P01.Pallet_A_ReadyToEnd := TRUE;

        #SSM.S.stepd := NOT "DI OUT P02".M201.FEEDBACK AND "HMI KEY".PlantInfo.Product_Packaging_Done;

       

    5: // Waiting to end product packaging Pallet_A

        #SSM.S.c1.start := "HMI KEY".PlantInfo.Product_Packaging_Done;

        #SSM.S.c1.set := 20;

        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: // Query pallet after Pre-Stopper Y2011

        "DI OUT P02".M202.DRV.CmdExe_WP := "HMI KEY".P02.M202.F12_Enable_WP AND #SSM.S.stepa;

        #SSM.S.stepd := "DI OUT P02".M202.FEEDBACK AND NOT "DI OUT P02".Y2011.FEEDBACK_WP;

       

    2: // Query M202 Pallet B atPos

        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 M202 Pallet B atPos" 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 AND "DI OUT P02".CV202.FEEDBACK_WP AND NOT #SSM.S.steplo;

        END_IF;

       

    3: // Waiting for Packaging 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".M202.DRV.CmdExe_WP := "HMI KEY".P02.M202.F12_Enable_WP AND "DI OUT P02".CV202.FEEDBACK_HP AND #SSM.S.stepa;

            #SSM.S.stepd := "DI OUT P02".M202.FEEDBACK AND "E00 Y2022 Pallet B AfterPos";

        END_IF;

       

    4: // Query pallet after stopper Y2022

        "DI OUT P02".M202.DRV.CmdExe_WP := FALSE;

        "DI MAIN P02".to_P01.Pallet_B_ReadyToEnd := TRUE;

        #SSM.S.stepd := NOT "DI OUT P02".M202.FEEDBACK AND "HMI KEY".PlantInfo.Product_Packaging_Done;

       

    5: // Waiting to end product packaging Pallet_B

        #SSM.S.c1.start := "HMI KEY".PlantInfo.Product_Packaging_Done;

        #SSM.S.c1.set := 20;

        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;