FB62 SEQ1 P04 SEQ1 Discharging automatic mode

 

 

 

Netzwerk 1: SEQ1 Pre-Setting

    #LiftStartUp := NOT "E04 4M1 LB" AND"DI OUT P04".Support."4M2 EndLimUp";

    #LiftStartDn := "E04 4M1 LB" AND "DI OUT P04".Support."4M2 EndLimDown";

 

 

 

Netzwerk 2: Execute SEQ1

    #SEQ1(STEP_PLS := "HMI KEY".P04.GLB.F17_StepPls,

         STEP_MNS := "HMI KEY".P04.GLB.F18_StepMns,

         GOTO_STEP := "HMI KEY".P04.GLB.F19_GoToStep,

         GOTO_STEP_NO := "HMI KEY".P04.GLB.GoToStep,

         MAX_STEP := 4);

    #ACT_STEP := #SEQ1.S.stepact;

 

 

 

Netzwerk 3: Step jump distributor

    CASE #SEQ1.S.stepact OF

        0: // Waiting for enabling SEQ1

            "M04 SEQ1 Active" := FALSE;

            "M04 MW68" := 0;

            #SEQ1.S.stepd := "M04 HomPos" AND #SEQ1.S.steps;

           

        1:  // 4M1 Load drive set value

            IF #SEQ1.S.stepfc THEN

                "M04 SEQ1 Active" := TRUE;

                IF #LiftStartUp THEN

                    "DI OUT P04"."4M1".DRV.SetTrgtPos := "DI OUT P04".MANUAL.Support."4M1".Set_TchInPos_1;

                    RETURN;

                ELSIF #LiftStartDn THEN

                    "DI OUT P04"."4M1".DRV.SetTrgtPos := "DI OUT P04".MANUAL.Support."4M1".Set_TchInPos_0;

                    RETURN;

                END_IF;

            ELSE

                #SEQ1.S.stepd := NOT "DI OUT P04"."4M1".DRV.SetPoReach;

            END_IF;

           

        2:  // If lift is up 4M1 WP (RTT-Takt)

            IF "DI OUT P04".Support."4M2 EndLimUp" THEN

                IF "DI OUT P04"."4M1".DRV.SetPoReach THEN

                    #SEQ1.S.c1.start := "HMI KEY".P04."4M1".F5_Set_Ref_Point := "M04 ToRTT SetPoReach" := TRUE;

                    #SEQ1.S.c1.set := 15;

                    "M04 Enbl RTT" := FALSE;

                END_IF;

               

                "M04 4M1 GoToPos" := "HMI KEY".P04."4M1".Enable_WP AND "M04 Enbl RTT";

               

                IF #SEQ1.S.c1.done THEN

                    "HMI KEY".P04."4M1".F5_Set_Ref_Point := FALSE;

                    #SEQ1.S.stepnew := 4;

                    #SEQ1.S.stepd := "E04 4M1 LB" AND "DI OUT P04"."4M1".DRV.ReferenceOK AND "DI OUT P04"."4M1".DRV.CrntPos = 0.0;

                    IF NOT #SEQ1.S.stepd THEN

                        #FLT."4M1_WP" := TRUE;

                    END_IF;

                END_IF;

            END_IF;

           

            // If lift is down 4M1 HP (unloading)

            IF "DI OUT P04".Support."4M2 EndLimDown" THEN

                IF "DI OUT P04"."4M1".DRV.SetPoReach THEN

                    #SEQ1.S.c1.start := "HMI KEY".P04."4M1".F5_Set_Ref_Point := "HMI KEY".P04."4M3".F5_Set_Ref_Point := TRUE;

                    #SEQ1.S.c1.set := 15;

                END_IF;

               

                "M04 4M1 GoToPos" := NOT #SEQ1.S.c1.start AND NOT "E04 4M3 LB";

                "DI OUT P04".MANUAL.Support."4M3".CmdExe_slow_WP := "HMI KEY".P04."4M3".Enable_HP AND "M04 4M1 GoToPos";

               

                IF #SEQ1.S.c1.done THEN

                    "HMI KEY".P04."4M1".F5_Set_Ref_Point := "HMI KEY".P04."4M3".F5_Set_Ref_Point := FALSE;

                    #SEQ1.S.stepd := NOT "E04 4M1 LB" AND "DI OUT P04"."4M1".DRV.CrntPos = 0.0 AND "DI OUT P04"."4M3".DRV.CrntPos = 0.0;

                    IF NOT #SEQ1.S.stepd THEN

                        #FLT."4M1_HP" := TRUE;

                    END_IF;

                END_IF;

            END_IF;

           

        3:  // Lift 4M2 GoToPos HP (up)

            IF #SEQ1.S.stepfc THEN

                "DI OUT P04"."4M2".DRV.SetTrgtPos := "DI OUT P04".MANUAL.Support."4M2".Set_TchInPos_0;

                #SEQ1.S.c2.start := TRUE;

                #SEQ1.S.c2.set := 15;

                RETURN;

            ELSE

                "M04 4M2 GoToPos" := "HMI KEY".P04."4M2".Enable_WP;

            END_IF;

            IF "DI OUT P04"."4M2".DRV.SetPoReach AND #SEQ1.S.c2.done THEN

                "M04 4M2 GoToPos" := FALSE;

                #SEQ1.S.c1.start := TRUE;

                #SEQ1.S.c1.set := 15;

                "M04 SEQ1 Done" := "DI MAIN P04".SEQ1.LiftStartUp;

                IF NOT "M04 SEQ1 Done" AND #SEQ1.S.c1.done THEN

                    #FLT."4M2_HP" := TRUE;

                END_IF;

            END_IF;

           

        4:  // Lift 4M2 GoToPos WP (down)

            IF #SEQ1.S.stepfc THEN

                "DI OUT P04"."4M2".DRV.SetTrgtPos := "DI OUT P04".MANUAL.Support."4M2".Set_TchInPos_1;

                #SEQ1.S.c2.start := TRUE;

                #SEQ1.S.c2.set := 15;

                RETURN;

            ELSE

                "M04 4M2 GoToPos" := "HMI KEY".P04."4M2".Enable_HP;

            END_IF;

            IF "DI OUT P04"."4M2".DRV.SetPoReach AND #SEQ1.S.c2.done THEN

                "M04 4M2 GoToPos" := FALSE;

                #SEQ1.S.c1.start := TRUE;

                #SEQ1.S.c1.set := 15;

                "M04 SEQ1 Done" := "DI MAIN P04".SEQ1.LiftStartDn;

                IF NOT "M04 SEQ1 Done" AND #SEQ1.S.c1.done THEN

                    #FLT."4M2_WP" := TRUE;

                END_IF;

            END_IF;

    END_CASE;

 

 

 

 

Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO