



|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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; |
|