



|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OB100 Startup : Pre-Setting P01 and P02 |
|
|
|
|
|
Network 7: Plantinfo_P02 Robot_3D.Target.Position "HMI KEY".Plantinfo_P02.Track_Conveyor.Measuring_Shift_Distance := 239.45; "HMI KEY".Plantinfo_P02.Track_Conveyor.Object_Offset := 81.63; "HMI KEY".Plantinfo_P02.Track_Conveyor.follow := 800.0; "HMI KEY".Plantinfo_P02.Track_Conveyor.Distance_to_Belt := 97.96; "DI OUT P02".TRACK_CONVEYOR.DRV.Support.Object_ON_Distance := 853.58; // WCS Home (Base position) "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[0].Axis[1] := 1583.66; "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[0].Axis[2] := 571.42; "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[0].Axis[3] := 174.82; // WCS must!! "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[1].Axis[1] := 1032.00; "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[1].Axis[2] := 1273.46; "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[1].Axis[3] := 163.26; // WCS must!! "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[2].Axis[1] := 1184.38; "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[2].Axis[2] := 1273.46; "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[2].Axis[3] := 65.30; // OCS1 in WCS must!! #tmp_target_postion_y = 1273.46 - 853.58 #tmp_target_postion_y := "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[1].Axis[2] - "DI OUT P02".TRACK_CONVEYOR.DRV.Support.Object_ON_Distance; "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[3].Axis[1] := "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[2].Axis[1] + "HMI KEY".Plantinfo_P02.Track_Conveyor.follow; "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[3].Axis[2] := #tmp_target_postion_y; // 419.88 "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[3].Axis[3] := 0.0; "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[4].Axis[1] := 2136.76; "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[4].Axis[2] := #tmp_target_postion_y; // 419.88 "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[4].Axis[3] := "HMI KEY".Plantinfo_P02.Track_Conveyor.Distance_to_Belt; // 97.96 // -------------------------- Min in WCS ------------------ "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[5].Axis[1] := 1030.0; "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[5].Axis[2] := 571.42; "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[5].Axis[3] := 35.0; // -------------------------- Max in WCS ------------------ "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[6].Axis[1] := 2145.0; "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[6].Axis[2] := 1551.42; "HMI KEY".Plantinfo_P02.Robot_3D.Target.Position[6].Axis[3] := 600.0; |
|
|
|
|
|
Network 8: Track_Conveyor and Camera Picture_Frame "HMI KEY".Plantinfo_P02.Track_Conveyor.Window := 4; "DI OUT P02".TRACK_CONVEYOR.DRV.Support.Modulo_Length := "+1-S120M".Modulo.Length * 1000.0; // mc29052026 conver to mm "HMI KEY".Plantinfo_P02.Track_Conveyor.ConveyorBeltOrigin.x := "DI OUT P02".TRACK_CONVEYOR.DRV.MC_TrackConveyorBelt.ConveyorBeltOrigin.x := 0.0; "HMI KEY".Plantinfo_P02.Track_Conveyor.ConveyorBeltOrigin.y := "DI OUT P02".TRACK_CONVEYOR.DRV.MC_TrackConveyorBelt.Convey orBeltOrigin.y := "+2-ROBOT_3D".OcsFrame[1].y; // 212.24 "HMI KEY".Plantinfo_P02.Track_Conveyor.ConveyorBeltOrigin.z := "DI OUT P02".TRACK_CONVEYOR.DRV.MC_TrackConveyorBelt.ConveyorBeltOrigin.z := "+2-ROBOT_3D".OcsFrame[1].z; // Camera Frame "HMI KEY".Plantinfo_P02.Picture_Frame.X := 10.0; // not used "HMI KEY".Plantinfo_P02.Picture_Frame.Y := 36.32; "HMI KEY".Plantinfo_P02.Picture_Frame.A := 90.0; |
|
|
|
|
|
Network 9: Plantinfo_P02 ROBOT_3D Dynamic "HMI KEY".Plantinfo_P02.Robot_3D.Velocity_Slow := 6.0; // m/min "HMI KEY".Plantinfo_P02.Robot_3D.Velocity_Middle := 21.165; // m/min |
|
|
|
|
|
Network 10: WINDER Interface ReWinder.READ (TO) "DI OUT P01".WINDER.Interface.ReWinder.READ."HW_SubModule" := "+0-CU320-2PN~PROFINET_interface~+0-S120ReW_SIEMENS_telegram,,,"; "DI OUT P01".WINDER.Interface.ReWinder.READ.Modulo_Length := "+1-S120ReW".Modulo.Length; // 360.0° "DI OUT P01".WINDER.Interface.ReWinder.READ.Gear_Ratio := 6.0 * "+1-S120ReW".LoadGear.Numerator / "+1-S120ReW".LoadGear.Denominator; "DI OUT P01".WINDER.Interface.ReWinder.READ.Torque := "+1-S120ReW".Actor.DriveParameter.ReferenceTorque; |
|
|
|
|
|
Network 11: WINDER Interface UnWinder READ (TO) "DI OUT P01".WINDER.Interface.UnWinder.READ."HW_SubModule" := "+0-CU320-2PN~PROFINET_interface~+0-S120UnW_SIEMENS_telegram,,,"; "DI OUT P01".WINDER.Interface.UnWinder.READ.Gear_Ratio := 6.0 * "+1-S120UnW".LoadGear.Numerator / "+1-S120UnW".LoadGear.Denominator; "DI OUT P01".WINDER.Interface.UnWinder.READ.Torque := "+1-S120UnW".Actor.DriveParameter.ReferenceTorque; |
|
|
|
|
|
Network 12: WINDER Interface MasterLine READ (TO) "DI OUT P01".WINDER.Interface.MasterLine.READ.Gear_Ratio := "+1-S120M".LoadGear.Numerator / "+1-S120M".LoadGear.Denominator; "DI OUT P01".WINDER.Interface.MasterLine.READ.Leadscrew_Pitch := "+1-S120M".Mechanics.LeadScrew / 1000.0; // m "DI OUT P01".WINDER.Interface.MasterLine.READ.Modulo_Length := "+1-S120M".Modulo.Length; "DI OUT P01".WINDER.Interface.MasterLine.READ.Torque := "+1-S120M".Actor.DriveParameter.ReferenceTorque; // Scaling S120M position "DI OUT P01".Manual.S120M.Positive_Scaled_Value := "+1-S120M".Modulo.Length * 1000.0; // mm "DI OUT P01".Manual.S120M.Shared_Zero_Scaled_Value := 0.0; // ReWinder - Slave "DI OUT P01".S120ReS.DRV.MC_GearIn.RatioNumerator := 1; "DI OUT P01".S120ReS.DRV.MC_GearIn.RatioDenominator := 1; |
|
|
|
|
|
Network 13: OEM PEW MinMax Limits "DI OUT P01".DANCER_PEW.Support.Hight_Limit := "HMI KEY".Plantinfo_P01.ReWinder.Dancer_Position_Max; "DI OUT P01".DANCER_PEW.Support.Low_Limit := "HMI KEY".Plantinfo_P01.ReWinder.Dancer_Position_Min; "DI OUT P01".LOADCELL_PEW.Support.Hight_Limit := "HMI KEY".Plantinfo_P01.UnWinder.Tension_Max; "DI OUT P01".LOADCELL_PEW.Support.Low_Limit := "HMI KEY".Plantinfo_P01.UnWinder.Tension_Min; "DI OUT P01".UNWINDER_DIAMETER_PEW.Support.Hight_Limit := LREAL_TO_REAL(IN := "HMI KEY".Plantinfo_P01.UnWinder.Full_Roll_Diameter); "DI OUT P01".UNWINDER_DIAMETER_PEW.Support.Low_Limit := LREAL_TO_REAL(IN := "HMI KEY".Plantinfo_P01.UnWinder.Core_Diameter); "DI OUT P01".REWINDER_DIAMETER_PEW.Support.Hight_Limit := LREAL_TO_REAL(IN := "HMI KEY".Plantinfo_P01.ReWinder.Full_Roll_Diameter); "DI OUT P01".REWINDER_DIAMETER_PEW.Support.Low_Limit := LREAL_TO_REAL(IN := "HMI KEY".Plantinfo_P01.ReWinder.Core_Diameter); |
|
|
|
|
|
Network 14: OEM Drive "DI OUT P01".S120M.Accelerate_Decelerate_TON.PT := t#5500ms; "DI OUT P01".S120M.DRV.Support.WindowRange := 0.16; "DI OUT P01".S120ReW.Accelerate_Decelerate_TON.PT := t#5500ms; "DI OUT P01".S120ReW.DRV.Support.WindowRange := 60.0; "DI OUT P01".S120ReS.Accelerate_Decelerate_TON.PT := t#5500ms; "DI OUT P01".S120ReS.DRV.Support.WindowRange := 60.0; "DI OUT P01".S120UnW.Accelerate_Decelerate_TON.PT := t#5500ms; "DI OUT P02".S210A1.Accelerate_Decelerate_TON.PT := t#5000ms; "DI OUT P02".S210A2.Accelerate_Decelerate_TON.PT := t#5000ms; "DI OUT P02".S210A3.Accelerate_Decelerate_TON.PT := t#5000ms; "DI OUT P02".ROBOT_3D.Accelerate_Decelerate_TON.PT := t#5000ms; |
|
|
|
|
|
Network 15: OEM WINDER (Sub.functions) "DI OUT P01".WINDER.UnWinder_Speed_PT1.CycleTime_Impulse := 100.0; "DI OUT P01".WINDER.UnWinder_Speed_PT1.Y_PT1_Window := 0.001; "DI OUT P01".WINDER.UnWinder_Speed_PT1.Smoothing_Time_IN := 1000.0; "DI OUT P01".WINDER.ReWinder_Perimeter_PT1.CycleTime_Impulse := 100.0; "DI OUT P01".WINDER.ReWinder_Perimeter_PT1.Y_PT1_Window := 0.001; "DI OUT P01".WINDER.ReWinder_Perimeter_PT1.Smoothing_Time_IN := 2000.0; "DI OUT P01".WINDER.ReWinder_Diameter_PT1.CycleTime_Impulse := 100.0; "DI OUT P01".WINDER.ReWinder_Diameter_PT1.Y_PT1_Window := 0.001; "DI OUT P01".WINDER.ReWinder_Diameter_PT1.Smoothing_Time_IN := 2000.0; "DI OUT P01".WINDER.ReWinder_Speed.CycleTime_Impulse := 100.0; "DI OUT P01".WINDER.ReWinder_Speed.RampUp_Time_IN := 100.0; "DI OUT P01".WINDER.ReWinder_Speed.RampDown_Time_IN := 1000.0; "DI OUT P01".WINDER.ReWinder_Speed.Nominal_Value_IN := 1.0; "DI OUT P01".WINDER.ReWinder_Diameter.CycleTime_Impulse := 100.0; "DI OUT P01".WINDER.ReWinder_Diameter.Nominal_Value_IN := 1.0; "DI OUT P01".WINDER.ReWinder_Diameter.Linear_Acceleration := 0.28299; "DI OUT P01".WINDER.ReWinder_Diameter.Linear_Deceleration := -0.28299; "DI OUT P01".WINDER.ReWinder_Diameter.Denom_Ramp_Time_IN := 100.0; "DI OUT P01".WINDER.ReWinder_Diameter.Smoothing_StartValue := 1.0; "DI OUT P01".WINDER.ReWinder_Diameter.Smoothing_Step := 1.0; |
|
|
|
|
|
Network 16: FOR Perimeter_BreackPoints TO 50 DO "HMI KEY".Plantinfo_P01.BreakPoints_Index := 0; FOR #tmp_breakPoints := 0 TO 50 DO "HMI KEY".Plantinfo_P01.Perimeter_BreakPoints["HMI KEY".Plantinfo_P01.BreakPoints_Index].x := "HMI KEY".Plantinfo_P01.BreakPoints_Index * 4; "HMI KEY".Plantinfo_P01.Perimeter_BreakPoints["HMI KEY".Plantinfo_P01.BreakPoints_Index].y := ("HMI KEY".Plantinfo_P01.ReWinder.Core_Diameter + "HMI KEY".Plantinfo_P01.Perimeter_BreakPoints["HMI KEY".Plantinfo_P01.BreakPoints_Index].x * 2 * "HMI KEY".Plantinfo_P01.Web.Thickness) * #PI; "HMI KEY".Plantinfo_P01.BreakPoints_Index += 1; END_FOR; |
|
|
|
|
|
Network 17: FOR Dancer_BreackPoints TO 8 DO "HMI KEY".Plantinfo_P01.BreakPoints_Index := 0; FOR #tmp_breakPoints := 0 TO 8 DO "HMI KEY".Plantinfo_P01.Dancer_BreakPoints["HMI KEY".Plantinfo_P01.BreakPoints_Index].x := "HMI KEY".Plantinfo_P01.BreakPoints_Index * 838.09 / 8.0; #"tmp_dummy_lreal" := (10.0 - "HMI KEY".Plantinfo_P01.BreakPoints_Index * 2.5); "HMI KEY".Plantinfo_P01.Dancer_BreakPoints["HMI KEY".Plantinfo_P01.BreakPoints_Index].y := #"tmp_dummy_lreal"; "HMI KEY".Plantinfo_P01.BreakPoints_Index += 1; END_FOR; |
|
|
|
|
|
Network 18: PID CycleTime.Value: Time frame applied variable for interrupt OB30 [sec] "+1-DANCER_PID".CycleTime.EnEstimation := "+1-DANCER_PID".CycleTime.EnMonitoring := FALSE; // CycleTime.Value: Time frame applied variable for interrupt OB30 [sec] "+1-DANCER_PID".CycleTime.Value := 0.1; |
|