Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FB32 SEQ1 P01: Winder Control Step Switching Mechanism

 

 

 

Network 1: Pre-Setting

"DI MAIN P01".M00.ReadyToStart := "DI MAIN GLB".M00.HomePosition_All AND NOT "DI MAIN P01".M00.HomePositionRunning;

 

 

 

Network 2: Define last step

#SSM(LAST_STEP := 7);

 

 

 

Network 3: Step Switching Mechanism (SSM)

CASE #SSM.S.stepact OF

    0: // Waiting for SEQ to start

        "DI MAIN P01".to_P02.ReadyToEnd := "DI MAIN P01".M00.SEQ1_Busy := FALSE;

        "DI MAIN P01".to_P02.Request := "DI MAIN P01".M00.ReadyToStart AND "DI MAIN GLB".M00.AutomaticEntirePlant_run;

        IF "DI MAIN P01".M00.ReadyToStart AND "HMI KEY".P01.WINDER.F3_Jog_slow_WP THEN

            #SSM.S.stepd := #SSM.S.steps AND "DI MAIN GLB".M00.ManualEntirePlant_run AND "DI OUT P01".Manual.WINDER.Execute_SSM_Mode;

        ELSIF NOT "DI MAIN P01".M00.ReadyToStart AND "DI MAIN GLB".M00.OM_AUTO_ON AND "HMI KEY".P00.GLB.F5_Start THEN

            "DI OUT P01".Manual.WINDER.Execute_SSM_Mode := "DI MAIN GLB".M00.AutomaticEntirePlant_run := FALSE;

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

        ELSE

            #SSM.S.stepd := #SSM.S.steps AND "DI MAIN P01".M00.ReadyToStart AND "DI MAIN GLB".M00.AutomaticEntirePlant_run AND "DI MAIN P02".to_P01.Request;

        END_IF;

       

    1: // Re-Read current diameter

        IF #SSM.S.steplo THEN

            #RunTimeCounter := 0;

            "HMI KEY".P01.WINDER.F23_ParameterSet_1 := TRUE;

        ELSE

            "HMI KEY".P01.WINDER.F23_ParameterSet_1 := FALSE;

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

            AND "DI OUT P01".WINDER.UnWinder.Roll_Diameter >= "DI OUT P01".WINDER.UnWinder.Core_Diameter

            AND "DI OUT P01".WINDER.Web.Rest_Length > 0.0;

        END_IF;

       

    2: // WINDER Enable_To_Start Condition

        IF #SSM.S.steplo THEN

            "DI OUT P01".DANCER_PID.Mode := 3;

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

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

            "DI OUT P01".DANCER_PID.ModeActivate := "HMI KEY".P01.WINDER.F12_Enable_WP;

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

        ELSE

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

            "DI OUT P01".WINDER.Enable_To_Start := "HMI KEY".P01.S120M.F12_Enable_WP AND #SSM.S.stepa;

            #SSM.S.stepd := "DI OUT P01".WINDER.Enabled AND "DI OUT P01".DANCER_PID.State = 3 AND #SSM.S.c1.done;

        END_IF;

       

    3: // WINDER Speeding_Up

        "DI OUT P01".S120M.DRV.Support.SetVelocity := "DI OUT P01".WINDER.Web.Master_Speeding_Up_Velocity;

        "DI OUT P01".S120ReW.DRV.Support.SetVelocity := "DI OUT P01".WINDER.Interface.ReWinder.WRITE.Velocity;

        "DI OUT P01".S120UnW.DRV.Support.SetVelocity := "DI OUT P01".WINDER.Interface.UnWinder.WRITE.Velocity;

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

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

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

        "DI OUT P01".WINDER.Speeding_Up := #SSM.S.stepa;

        IF "DI OUT P01".DANCER_PEW.Support.PEW_Scaled >= "DI OUT P01".WINDER.ReWinder.Dancer_Position_SetPoint THEN

            "DI MAIN P01".M00.SEQ1_DoWP1 := "DI OUT P01".WINDER.Speeding_Up_Done := TRUE;

            "DI OUT P01".WINDER.Speeding_Up := FALSE;

            #SSM.S.stepd := "E00 WebAvailable";

        END_IF;

       

    4: // WINDER InVelocity

        "DI MAIN P01".to_P02.EnabledToRun := TRUE;

        "DI OUT P01".S120M.DRV.Support.SetVelocity := "DI OUT P01".WINDER.Web.Master_Work_Velocity;

        "DI OUT P01".S120ReW.DRV.Support.SetVelocity := "DI OUT P01".WINDER.Interface.ReWinder.WRITE.Velocity;

        "DI OUT P01".S120UnW.DRV.Support.SetVelocity := "DI OUT P01".WINDER.Interface.UnWinder.WRITE.Velocity;

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

        "DI OUT P01".S120ReW.DRV.MC_TorqueAdditive.Enable :=

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

        "DI OUT P01".S120UnW.DRV.MC_TorqueAdditive.Enable :=

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

        #SSM.S.stepd := "DI OUT P01".S120M.DRV.MC_MoveJog.InVelocity AND "DI OUT P01".S120ReW.DRV.MC_MoveJog.InVelocity AND "DI OUT P01".S120UnW.DRV.MC_MoveJog.InVelocity;

       

    5: // WINDER Waiting for Web_Target_Reached

        "DI OUT P01".S120M.DRV.Support.SetVelocity := "DI OUT P01".WINDER.Web.Master_Work_Velocity;

        "DI OUT P01".S120ReW.DRV.Support.SetVelocity := "DI OUT P01".WINDER.Interface.ReWinder.WRITE.Velocity;

              "DI OUT P01".S120UnW.DRV.Support.SetVelocity := "DI OUT P01".WINDER.Interface.UnWinder.WRITE.Velocity;

        "DI OUT P01".WINDER.Enable_To_Start :=

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

        "DI OUT P01".S120ReW.DRV.MC_TorqueAdditive.Enable :=

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

        "DI OUT P01".S120UnW.DRV.MC_TorqueAdditive.Enable :=

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

        #SSM.S.stepd := "DI OUT P01".WINDER.Web_Target_Reached AND "DI OUT P01".WINDER.Diameter_Target_Reached;

       

    6: // Dancer travels towards zero positon

        IF #SSM.S.stepfc THEN

            "DI MAIN P01".to_P02.ReadyToEnd := TRUE;

            "DI MAIN P01".to_P02.EnabledToRun :=

            "DI OUT P01".S120ReW.DRV.MC_TorqueAdditive.Enable :=

            "DI OUT P01".S120UnW.DRV.MC_TorqueAdditive.Enable :=

            "DI OUT P01".WINDER.Speeding_Up_Done :=

            "DI OUT P01".WINDER.Enable_To_Start :=

            "DI OUT P01".S120M.DRV.Support.MoveJogWP :=

            "DI OUT P01".S120ReW.DRV.Support.MoveJogWP :=

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

        ELSIF "DI OUT P01".DANCER_PEW.Support.PEW_Scaled <= "DI OUT P01".WINDER.ReWinder.Dancer_Position_Min + 4.0 THEN

            #SSM.S.stepd := NOT "E00 WebAvailable";

        END_IF;

       

    7: // WINDER SEQ1_Done

        IF #SSM.S.stepfc THEN

            "HMI KEY".Plantinfo_P01.Coil_Slitting_Done := "DI MAIN P01".M00.SEQ1_WP1_Done_OK := TRUE;

            "DI MAIN P01".M00.ProductCounter.GoodParts := "DI MAIN P01".M00.ProductCounter.GoodParts + 1;

            "DI OUT P01".Manual.WINDER.Execute_SSM_Mode := "DI MAIN P01".to_P02.Request := FALSE;

        ELSE

            "DI OUT P01".DANCER_PID.Setpoint := 0.0;

            "DI MAIN P01".M00.SEQ1_Done := "DI MAIN P01".to_P02.Done := NOT #SSM.S.steplo AND "DI MAIN P02".to_P01.Done;

        END_IF;

END_CASE;