Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

To go to next HMI image use the touch buttons; some of them are interactive.

FB32 SEQ1 P01 P01 sequencer 1

 

[previous page..]

 

Network 3: Execute Pick and Place Blister Tray (2/2)

   

    30: // XYZaxis MovAbso towards Pos.13 plase palette 2 (down/closed)

        IF #SSM.S.stepfc THEN

            #IndexPos2 := #IndexPos2 + 1;

            #PosPointer := 13;

            #ExecuteCoodinate(INDEX_POS := #IndexPos2,

                              PLACES_ON_X := "ModulDa".P01.MaPa.WPC2_NumOfPos_X,

                              PLACES_ON_Y := "ModulDa".P01.MaPa.WPC2_NumOfPos_Y,

                              REF_POS := "ModulDa".P01.MaPa.WPC2_RefPos,

                              GAP_ON_X := "ModulDa".P01.MaPa.WPC2_Gap_X,

                              GAP_ON_Y := "ModulDa".P01.MaPa.WPC2_Gap_Y,

                              TARGET_POS := #TrgtPos2);

            #TrgtPos2.Z := "DI OUT P01".MANUAL.XYZG_TrgtPos[#PosPointer].Z;

            #TrgtPos2.G12 := "DI OUT P01".MANUAL.XYZG_TrgtPos[#PosPointer].G12;

            #TrgtPos2.G34 := "DI OUT P01".MANUAL.XYZG_TrgtPos[#PosPointer].G34;

        ELSE

            "FC POS REACHED"(START := #SSM.S.steplo,

                             TARGET_POS := #TrgtPos2,

                             VELO_Z := "DI OUT P01".MANUAL.XYZGaxisVelo_1,

                             VELO_XYG := "DI OUT P01".MANUAL.XYZGaxisVelo_1,

                             ENABLE_X := NOT "DI OUT P01".V90_X.HALT_01,

                             ENABLE_Y := NOT "DI OUT P01".V90_Y.HALT_01,

                             ENABLE_Z := NOT "DI OUT P01".V90_Z.HALT_01 AND "DI OUT P01".V90_X.DRV.Support.InPos AND "DI OUT P01".V90_Y.DRV.Support.InPos

                                         AND "DI OUT P01".V90_X.NexDrv_DlyOn,

                             MOV_TO_POS_X => "DI OUT P01".V90_X.DRV.Support.Cmd_MovAbso,

                             MOV_TO_POS_Y => "DI OUT P01".V90_Y.DRV.Support.Cmd_MovAbso,

                             MOV_TO_POS_Z => "DI OUT P01".V90_Z.DRV.Support.Cmd_MovAbso,

                             PRECISION := 5.0,

                             TARGET_REACHED => #SSM.S.c1.start);

            "DI OUT P01".MD_12.DRV.Support.Cmd_MovAbso := NOT "DI OUT P01".MD_12.HALT_01 AND #SSM.S.c1.done;

            "DI OUT P01".MD_34.DRV.Support.Cmd_MovAbso := NOT "DI OUT P01".MD_34.HALT_01 AND #SSM.S.c1.done;

            #SSM.S.stepd := "DI OUT P01".MD_12.DRV.Support.InPos AND "DI OUT P01".MD_34.DRV.Support.InPos AND #SSM.S.c1.done;

        END_IF;

       

    31: // Zaxis MovAbso towards Pos.1 SafetyPos (up/closed)

        IF #SSM.S.stepfc THEN

            #PosPointer := 1;

            "DI OUT P01".V90_Z.DRV.Support.SetVelo := "DI OUT P01".MANUAL.XYZGaxisVelo_1;

            "DI OUT P01".V90_Z.DRV.MC_MoveAbsolute.Position := "DI OUT P01".MANUAL.XYZG_TrgtPos[#PosPointer].Z;

        ELSE

            #SSM.S.stepd := "DI OUT P01".V90_Z.DRV.Support.InPos AND NOT #SSM.S.steplo;

            "DI OUT P01".V90_Z.DRV.Support.Cmd_MovAbso := NOT "DI OUT P01".V90_Z.HALT_01;

            IF #IndexPos1 < #MaxPos1 AND #IndexPos2 < #MaxPos2 AND #IndexPos2 < "ModulDa".P01.MaPa.SetBatchParts THEN

                #SSM.S.stepnew := 2;

                IF #SSM.S.stepd AND "M01 SEQ2 DoWP2" THEN

                    "DI MAIN P01".ProdCounter.GoodProducts := "DI MAIN P01".ProdCounter.GoodProducts + 1;

                END_IF;

            END_IF;

        END_IF;

       

    32: // C01 Lifting gate HP (up/closed)

        IF #SSM.S.steplo THEN

            #PosPointer := 1;

            "DI OUT P01".MD_12.DRV.Support.SetVelo := "DI OUT P01".MANUAL.XYZGaxisVelo_1;

            "DI OUT P01".MD_12.DRV.MC_MoveAbsolute.Position := "DI OUT P01".MANUAL.XYZG_TrgtPos[#PosPointer].G12;

            "DI OUT P01".MD_34.DRV.Support.SetVelo := "DI OUT P01".MANUAL.XYZGaxisVelo_1;

            "DI OUT P01".MD_34.DRV.MC_MoveAbsolute.Position := "DI OUT P01".MANUAL.XYZG_TrgtPos[#PosPointer].G34;

        ELSE

            "DI OUT P01".MD_12.DRV.Support.Cmd_MovAbso := NOT "DI OUT P01".MD_12.HALT_01;

            "DI OUT P01".MD_34.DRV.Support.Cmd_MovAbso := NOT "DI OUT P01".MD_34.HALT_01;

        END_IF;

        "DI OUT P01".C01.VLV_O.CmdExe_WP := FALSE;

        #SSM.S.stepd := "DI OUT P01".C01.FB_HP AND "DI OUT P01".MD_12.DRV.Support.InPos AND "DI OUT P01".MD_34.DRV.Support.InPos;

       

    33: // Query homing reached Pos.1 SafetyPos (up/opened)

        "M01 SEQ1 Done" := "M01 HomPosIS";

END_CASE;

 

[previous page..]