Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FB31 SET P01 : P01 Prepare Winder Control for Start Condition

 

 

 

Network 1: Query start condition

"DI MAIN P01".M00.HomPosIS :=

"DI OUT P01".S120M.DRV.Support.HomeDone

AND "DI OUT P01".S120ReW.DRV.Support.HomeDone

AND "DI OUT P01".S120M.DRV.Support.LampOFF

AND "DI OUT P01".S120ReW.DRV.Support.LampOFF

AND "DI OUT P01".S120UnW.DRV.Support.LampOFF

AND "DI OUT P01".Winder_Control.UnWinder.Roll_Diameter = "DI OUT P01".Winder_Control.UnWinder.Full_Roll_Diameter

AND "DI OUT P01".Winder_Control.ReWinder.Roll_Diameter = "DI OUT P01".Winder_Control.ReWinder.Core_Diameter

AND "HMI KEY".P01.Winder_Control.Int_InOut <> -1;

 

 

 

Network 2: Define last step

#SSM(LAST_STEP := 5);

 

 

 

Network 3: Step Switching Mechanism (SSM)

CASE #SSM.S.stepact OF

    0: // Waiting for SET to start

        #SSM.S.stepd := #SSM.S.steps;

       

    1: // Execute Pre-Setting

        IF #SSM.S.stepfc THEN

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

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

            // Block move Configuration Customer_Data

            "DI OUT P01".Winder_Control.ReWinder := "HMI KEY".Customer_Data.ReWinder; // Block move

            "DI OUT P01".Winder_Control.UnWinder := "HMI KEY".Customer_Data.UnWinder; // Block move

            // Block move Web

            "DI OUT P01".Winder_Control.Web := "HMI KEY".Customer_Data.Web; // Block move

            // Roll_Diameter swap if need be

            "DI OUT P01".Winder_Control.ReWinder.Roll_Diameter := "DI OUT P01".Winder_Control.ReWinder.Core_Diameter;

            "DI OUT P01".Winder_Control.UnWinder.Roll_Diameter := "DI OUT P01".Winder_Control.UnWinder.Full_Roll_Diameter;

        ELSE

            "DI OUT P01".Winder_Control.Parameter_Reset := NOT #SSM.S.c1.done AND #SSM.S.stepa;

            "HMI KEY".P01.S120M.F5_Set_Ref_Point := NOT #SSM.S.c1.done AND #SSM.S.stepa;

            "HMI KEY".P01.S120ReW.F5_Set_Ref_Point := NOT #SSM.S.c1.done AND #SSM.S.stepa;

            #SSM.S.stepd := "DI OUT P01".S120M.DRV.Support.HomeDone AND "DI OUT P01".S120ReW.DRV.Support.HomeDone AND #SSM.S.c1.done;

        END_IF;

       

    2: // Calculate Web_Length, Full_Roll_Weight, Inertia_Max

        IF #SSM.S.steplo THEN

            "HMI KEY".P01.Winder_Control.F23_ParaSet_1 := TRUE;

        ELSE

            "HMI KEY".P01.Winder_Control.F23_ParaSet_1 := FALSE;

            "DI OUT P01".Winder_Control.Web.Rest_Length :=

            #Pi * ("DI OUT P01".Winder_Control.UnWinder.Roll_Diameter ** 2

            - "DI OUT P01".Winder_Control.UnWinder.Core_Diameter ** 2) / (4.0 * "DI OUT P01".Winder_Control.Web.Thickness);

            IF "DI OUT P01".Winder_Control.Web.Length <> "DI OUT P01".Winder_Control.Web.Rest_Length THEN

                "DI OUT P01".Winder_Control.Web.Length := "DI OUT P01".Winder_Control.Web.Rest_Length;

                "DI OUT P01".Winder_Control.UnWinder.Full_Roll_Weight :=

                "DI OUT P01".Winder_Control.Web.Length * "DI OUT P01".Winder_Control.Web.Width * "DI OUT P01".Winder_Control.

                Web.Thickness * "DI OUT P01".Winder_Control.Web.Densety;

                "DI OUT P01".Winder_Control.UnWinder.Inertia_Max :=

                0.5 * "DI OUT P01".Winder_Control.UnWinder.Full_Roll_Weight * ("DI OUT P01".Winder_Control.UnWinder.Roll_Diameter ** 2

                + "DI OUT P01".Winder_Control.UnWinder.Core_Diameter ** 2);

                "DI OUT P01".Winder_Control.Speeding_Up_Done := FALSE;

                #SSM.S.stepd := TRUE;

            END_IF;

        END_IF;

       

    3: // Connect UnWinder web with ReWinder whilst Speeding_Up

        IF "DI OUT P01".Winder_Control.Interface.MasterLine.READ.Position > "DI OUT P01".Winder_Control.Interface.MasterLine.READ.Modulo_Length * 950.0

            AND NOT #MasterLine_Revolutions_REg THEN

            "DI OUT P01".Winder_Control.Web.Rest_Length := "DI OUT P01".Winder_Control.Web.Rest_Length

            - "DI OUT P01".Winder_Control.Interface.MasterLine.READ.Modulo_Length;

            "DI OUT P01".Winder_Control.Web.Revolutions += 1.0;

        END_IF;

        #MasterLine_Revolutions_REg :=

        "DI OUT P01".Winder_Control.Interface.MasterLine.READ.Position > "DI OUT P01".Winder_Control.Interface.MasterLine.READ.Modulo_Length * 950.0;

        "DI OUT P01".S120M.DRV.Support.SetVelo := "DI OUT P01".Winder_Control.Web.Master_Speeding_Up_Velocity;

        "DI OUT P01".S120UnW.DRV.Support.SetVelo := "DI OUT P01".S120M.DRV.Support.SetVelo / ("DI OUT P01".Winder_Control.UnWinder.Roll_Diameter * #Pi);

        "DI OUT P01".S120M.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.S120M.F12_Enable_WP AND #SSM.S.stepa;

        "DI OUT P01".S120UnW.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.S120UnW.F12_Enable_WP AND "DI OUT P01".S120M.DRV.Support.LampON AND #SSM.S.stepa;

        IF ("DI OUT P01".Winder_Control.Web.Length - "DI OUT P01".Winder_Control.Web.Rest_Length) > ("DI OUT P01".Winder_Control.Web.Path_Length_To_UnWinder

            + "DI OUT P01".Winder_Control.Web.Path_Length_To_ReWinder) THEN

            #SSM.S.stepd := TRUE;

            "DI OUT P01".S120M.DRV.Support.Cmd_MoveJogWP := "DI OUT P01".S120UnW.DRV.Support.Cmd_MoveJogWP := FALSE;

        END_IF;

       

    4: // Query Plant start condition

        #SSM.S.stepd := "DI OUT P01".Winder_Control.ReWinder.Roll_Diameter >= "DI OUT P01".Winder_Control.ReWinder.Core_Diameter

        AND "DI OUT P01".Winder_Control.UnWinder.Roll_Diameter <= "DI OUT P01".Winder_Control.UnWinder.Full_Roll_Diameter

        AND "DI OUT P01".Winder_Control.Web.Rest_Length > "DI OUT P01".Winder_Control.UnWinder.Roll_Diameter * #Pi

        AND "DI OUT P01".Dancer_PEW.Support.PEW_Scaled = "DI OUT P01".Dancer_PEW.Support.Low_Lim;

       

    5: // End Plant HomPosRun

        IF #SSM.S.stepfc AND "HMI KEY".P01.Winder_Control.Int_InOut = -1 THEN

            "HMI SYS".TP1200_Comfort.AreaPoint.ControlRequest.Parameter_JobNumber := 51;

            "HMI SYS".TP1200_Comfort.AreaPoint.ControlRequest.Parameter_ScreenNumber := 8;

        ELSE

            "DI MAIN P01".M00.HomPosRun := NOT "DI MAIN P01".M00.HomPosIS OR #SSM.S.steplo;

            "DI MAIN P01".SEQ1.#SSM.S."1_FAULT_00_15".%X0 := FALSE;

        END_IF;

END_CASE;