Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FB SEQ1 P02 Sequencer 1 Pallet transfer at P02

 

 

 

Network 1: Call actual SSM

#SSM(LAST_STEP := 6);

 

 

 

Network 2: Pre-Setting

"DI MAIN P02".M00.ProductCounter.DlyOnReset(IN := "DI MAIN P02".M00.ProductCounter.ResetGoodProducts,

                                            PT := "DI MAIN P02".M00.ProductCounter.DlyOnReset.PT);

IF "DI MAIN P02".M00.ProductCounter.DlyOnReset.Q THEN

    "DI MAIN P02".M00.ProductCounter.GoodProducts := "DI MAIN P02".M00.ProductCounter.SetCounter;

END_IF;

"DI MAIN P02".M00.RdyToStart :=  "DI MAIN GLB".M00.AutoCmpltMa_run OR "DI MAIN GLB".M00.InchCmpltMa_run;

 

 

 

Network 3: CASE-Function corresponds to actual SSM

CASE #SSM.S.stepact OF

    0: // waiting for SEQ to start

        "DI MAIN P02".M00.SEQ1_Busy := FALSE;

        IF NOT "DI MAIN P02".M00.RdyToStart THEN

            RETURN;

        ELSE

            IF "HMI KEY".Message.Programme_1_Selected AND

                ("HMI KEY".ProgChoice_1.WorkPiece_1.PalletPlaceOn_X

                OR "HMI KEY".ProgChoice_1.WorkPiece_2.PalletPlaceOn_X

                OR "HMI KEY".ProgChoice_1.WorkPiece_3.PalletPlaceOn_X) = 0

                OR "HMI KEY".Message.Programme_2_Selected AND

                ("HMI KEY".ProgChoice_2.WorkPiece_1.PalletPlaceOn_X

                OR "HMI KEY".ProgChoice_2.WorkPiece_2.PalletPlaceOn_X

                OR "HMI KEY".ProgChoice_2.WorkPiece_3.PalletPlaceOn_X) = 0

                OR "HMI KEY".Message.Programme_3_Selected AND

                ("HMI KEY".ProgChoice_3.WorkPiece_1.PalletPlaceOn_X

                OR "HMI KEY".ProgChoice_3.WorkPiece_2.PalletPlaceOn_X

                OR "HMI KEY".ProgChoice_3.WorkPiece_3.PalletPlaceOn_X) = 0 THEN

                #SSM.S."1_FAULT_00_15".%X0 := TRUE;

                "DI MAIN GLB".M00.AutoCmpltMa_run := FALSE;

                RETURN;

            ELSE

                #SSM.S."1_FAULT_00_15".%X0 := FALSE;

            END_IF;

            #SSM.S.stepd := #SSM.S.steps AND "DI MAIN P01".to_P02_Pallet.Request AND "DI OUT P02".M32_Pallet_Data.Pallet_Code <> 16#0000_0000;

        END_IF;

       

    1: // Y406/Y410 work stopper WP, Y410 outlet stopper WP

        "DI OUT P02".Y406.VLV_O.CmdExe_WP := "HMI KEY".P02.Y406.F12_Enable_WP;

        "DI OUT P02".Y410.VLV_O.CmdExe_WP := "HMI KEY".P02.Y410.F12_Enable_WP;

        #SSM.S.stepd := "DI OUT P02".Y406.FB_WP AND "DI OUT P02".Y410.FB_WP;

       

    2: // C401/C402 pallet fixing unit WP

        "DI OUT P02".C402.VLV_OC.CmdExe_HP := "DI OUT P02".C401.VLV_OC.CmdExe_HP := FALSE;

        "DI OUT P02".C401.VLV_OC.CmdExe_WP := "HMI KEY".P02.C401.F12_Enable_WP AND "DI OUT P02"."M32_Interface".DRV.RdyToGiveOver;

        "DI OUT P02".C402.VLV_OC.CmdExe_WP := "HMI KEY".P02.C402.F12_Enable_WP AND "DI OUT P02"."M32_Interface".DRV.RdyToGiveOver;

        #SSM.S.stepd :=

        "DI MAIN P02".to_P01_Pallet.ReadyToGo := "DI OUT P02".M33.DRV.CC.RdyToGiveOver_ToNC AND "DI OUT P02".C401.FB_WP AND "DI OUT P02".C402.FB_WP AND #SSM.S.stepa;

       

    3: // Waiting for response P01 to P02 pallet done

        IF "DI MAIN P01".to_P02_Pallet.Done THEN

            #SSM.S.stepd := TRUE;

            "DI MAIN P02".to_P01_Pallet.ReadyToGo := FALSE;

        END_IF;

       

    4: // C401/C402 pallet fixing unit HP "DI MAIN P01".to_P02_Pallet.Done

        "DI MAIN P02".M00.SEQ1_Busy := TRUE;

        "DI OUT P02".C402.VLV_OC.CmdExe_WP := "DI OUT P02".C401.VLV_OC.CmdExe_WP := FALSE;

        "DI OUT P02".C401.VLV_OC.CmdExe_HP := "HMI KEY".P02.C401.F11_Enable_HP;

        "DI OUT P02".C402.VLV_OC.CmdExe_HP := "HMI KEY".P02.C402.F11_Enable_HP;

        #SSM.S.stepd := "DI OUT P02".C401.FB_HP AND "DI OUT P02".C402.FB_HP;

       

    5: // M32 pallet pick-up conveyor WP, M33 pallet outlet conveyor WP

        "DI OUT P02".M32.DRV.CmdExe_WP := "HMI KEY".P02.M32.F12_Enable_WP AND "E02 M32 LimSwitch";

       

        "DI OUT P02".M33.DRV.CmdExe_WP := "HMI KEY".P02.M33.F12_Enable_WP AND NOT "E02 M33 LimSwitch";

        #SSM.S.stepd := "DI MAIN P02".to_P01_Pallet.DoneACK := "E02 M33 LimSwitch";

       

    6: // Waiting for message P01_to_P02_Pallet.DoneACK

        IF #SSM.S.stepfc THEN

            "DI OUT P02".M32_Pallet_Data.Pallet_Code := 16#0000_0000;

            "DI MAIN P02".M00.ProductCounter.GoodProducts := "DI MAIN P02".M00.ProductCounter.GoodProducts + 1; // Pallet counter

        ELSIF "DI MAIN P01".to_P02_Pallet.DoneACK AND NOT #SSM.S.steplo THEN

            "DI MAIN P02".M00.SEQ1_Done := TRUE;

        END_IF;

END_CASE;