FB39 OUT P01 : P01 Execute Output Stage |
|
|
|
Network 1: Call manual operation #Manual(ST_MANU := "DI MAIN GLB".M00.ManuCmpltMa_run, MODULE_HP := "HMI KEY".P01.GLB.F20_HomPos, SUPPORT_SEQ := "DI MAIN P01".M00.HomPosRun); |
|
|
|
Network 2: Pre-Setting #Support.Estop_TOF(IN := "DI MAIN GLB".M00.GLB_Estop, PT := t#1s); "A00 S120M Enable" := "A00 S120UnW Enable" := "A00 S120ReW Enable" := #Support.Estop_TOF.Q; #tmp_operation_mode := "DI MAIN GLB".M00.AutoCmpltMa_run OR "DI MAIN P01".M00.HomPosRun OR #Manual.Winder_Control.CmdExe_SSM_Mode; |
|
|
|
Network 3: S120M Master line // Pre-Setting #S120M.DRV.MC_Powe0r.StartMode := #S120M.DRV.MC_MoveAbsolute.Direction := 1; #S120M.DRV.MC_MoveJog.PosCntrl := TRUE; // Epos enabled and halt impulse #S120M.DRV.Support.Epos_Enabled := "HMI KEY".P01.S120M.F12_Enable_WP AND "HMI KEY".P01.S120M.F11_Enable_HP; #S120M.DRV.Support.FEg_Halt_Imp := #S120M.DRV.Support.FEg_Halt AND NOT #S120M.DRV.Support.Epos_Enabled; #S120M.DRV.Support.FEg_Halt := #S120M.DRV.Support.Epos_Enabled; // Execute axis move to home position #S120M.DRV.MC_Home.Execute := #S120M.DRV.Support.LampOFF AND "HMI KEY".P01.S120M.F5_Set_Ref_Point AND ("DI MAIN GLB".SET.SSM.S.steps OR "DI MAIN GLB".M00.ManuCmpltMa_run); // Execute output stage #S120M(ENABLE := "A00 S120M Enable", HALT_01 := "HMI KEY".P01.S120M.F21_HALT OR #S120M.DRV.Support.FEg_Halt_Imp OR "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q OR "DI MAIN P01".M00.TOF_ModuleOFF_Pulse.Q, MCB := "E00 S120M MCB", EXECUTE_ABSO := #S120M.DRV.Support.Cmd_MoveAbsolute AND #tmp_operation_mode OR "HMI KEY".P01.S120M.F17_GoToAbsoPos, EXECUTE_RELA := #S120M.DRV.Support.Cmd_MoveRelative AND #tmp_operation_mode OR "HMI KEY".P01.S120M.F18_GoToRelaPos, ENABLE_JOG_HP := #S120M.DRV.Support.Cmd_MoveJogHP AND #tmp_operation_mode OR #Manual.S120M.CmdExe_slow_fast_HP, ENABLE_JOG_WP := #S120M.DRV.Support.Cmd_MoveJogWP AND #tmp_operation_mode OR #Manual.S120M.CmdExe_slow_fast_WP, ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_REg, HOME_MODE := 0, AXIS := "+1-S120M"); |
|
|
|
Network 4: S120ReW Rewinder #S120ReW.DRV.MC_Power.StartMode := #S120ReW.DRV.MC_MoveAbsolute.Direction := 1; #S120ReW.DRV.MC_MoveJog.PosCntrl := TRUE; // Epos enabled and halt impulse #S120ReW.DRV.Support.Epos_Enabled := "HMI KEY".P01.S120ReW.F12_Enable_WP AND "HMI KEY".P01.S120ReW.F11_Enable_HP; #S120ReW.DRV.Support.FEg_Halt_Imp := #S120ReW.DRV.Support.FEg_Halt AND NOT #S120ReW.DRV.Support.Epos_Enabled; #S120ReW.DRV.Support.FEg_Halt := #S120ReW.DRV.Support.Epos_Enabled; // Execute axis move to home position #S120ReW.DRV.MC_Home.Execute := #S120ReW.DRV.Support.LampOFF AND "HMI KEY".P01.S120ReW.F5_Set_Ref_Point AND ("DI MAIN GLB".SET.SSM.S.steps OR "DI MAIN GLB".M00.ManuCmpltMa_run); // Execute output stage #S120ReW(ENABLE := "A00 S120ReW Enable", HALT_01 := "HMI KEY".P01.S120ReW.F21_HALT OR #S120ReW.DRV.Support.FEg_Halt_Imp OR "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q OR "DI MAIN P01".M00.TOF_ModuleOFF_Pulse.Q, MCB := "E00 S120ReW MCB", ENABLE_JOG_HP := #S120ReW.DRV.Support.Cmd_MoveJogHP AND #tmp_operation_mode OR #Manual.S120ReW.CmdExe_slow_fast_HP, ENABLE_JOG_WP := #S120ReW.DRV.Support.Cmd_MoveJogWP AND #tmp_operation_mode OR #Manual.S120ReW.CmdExe_slow_fast_WP, ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_REg, HOME_MODE := 0, AXIS := "+1-S120ReW"); |
|
|
|
Network 5: S120UnW Unwinder // Execute reference point #S120UnW.DRV.MC_Power.StartMode := #S120UnW.DRV.MC_MoveVelocity.Direction := 1; #S120UnW.DRV.MC_MoveJog.PosCntrl := TRUE; // Halt impulse #S120UnW.DRV.Support.Epos_Enabled := "HMI KEY".P01.S120UnW.F12_Enable_WP; #S120UnW.DRV.Support.FEg_Halt_Imp := #S120UnW.DRV.Support.FEg_Halt AND NOT #S120UnW.DRV.Support.Epos_Enabled; #S120UnW.DRV.Support.FEg_Halt := #S120UnW.DRV.Support.Epos_Enabled; // Execute output stage #S120UnW(ENABLE := "A00 S120UnW Enable", HALT_01 := "HMI KEY".P01.S120UnW.F21_HALT OR #S120UnW.DRV.Support.FEg_Halt_Imp OR "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q OR "DI MAIN P01".M00.TOF_ModuleOFF_Pulse.Q, MCB := "E00 S120UnW MCB", ENABLE_JOG_HP := #S120UnW.DRV.Support.Cmd_MoveJogHP AND #tmp_operation_mode OR #Manual.S120UnW.CmdExe_slow_fast_HP, ENABLE_JOG_WP := #S120UnW.DRV.Support.Cmd_MoveJogWP AND #tmp_operation_mode OR #Manual.S120UnW.CmdExe_slow_fast_WP, ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_REg, MODE := 0, AXIS := "+1-S120UnW"); |
|
|
|
Network 6: Scale Dancer_PEW and Dancer_Pos to RPM_offset #Dancer_PEW(PEW_IN := "E02 Dancer_PEW", //"E01 Dancer_PEW":P, H_LIM := #Dancer_PEW.Support.High_Lim, // 630.0 mm L_LIM := #Dancer_PEW.Support.Low_Lim, // 0.0 mm PEW_SCALE => #Dancer_PEW.Support.PEW_Scaled); #DanPos_Interpolat(RUN := #S120ReW.DRV.Support.LampON, X := #Dancer_PEW.Support.PEW_Scaled, Y_FX => #Winder_Control.ReWinder.Offset, BREAKPOINTS := "HMI KEY".Dancer_Pos_RPM_Offset); IF #DanPos_Interpolat.Done THEN #Winder_Control.ReWinder.Offset := 0.0; #DanPos_Interpolat.Done := FALSE; END_IF; |
|
|
|
Network 7: LoadCell_PEW #LoadCell_PEW(PEW_IN := "E02 LoadCell_PEW", // "E01 LoadCell_PEW":P, H_LIM := #LoadCell_PEW.Support.High_Lim, L_LIM := #LoadCell_PEW.Support.Low_Lim, PEW_SCALE => #LoadCell_PEW.Support.PEW_Scaled); |
|
|
|
Network 8: UnWinderDiameter_PEW IF "HMI KEY".P01.Winder_Control.F23_ParaSet_1 OR #Winder_Control.Cmd_Read_Diameter THEN #UnWinderDiameter_PEW(PEW_IN := "E02 UnWinderDiameter_PEW", // "E01 UnWinderDiameter_PEW":P, H_LIM := #UnWinderDiameter_PEW.Support.High_Lim, L_LIM := #UnWinderDiameter_PEW.Support.Low_Lim, PEW_SCALE => #UnWinderDiameter_PEW.Support.PEW_Scaled); END_IF; |
|
|
|
Network 9: ReWinderDiameter_PEW IF "HMI KEY".P01.Winder_Control.F23_ParaSet_1 OR #Winder_Control.Cmd_Read_Diameter THEN #ReWinderDiameter_PEW(PEW_IN := "E02 ReWinderDiameter_PEW", // "E01 ReWinderDiameter_PEW":P H_LIM := #ReWinderDiameter_PEW.Support.High_Lim, L_LIM := #ReWinderDiameter_PEW.Support.Low_Lim, PEW_SCALE => #ReWinderDiameter_PEW.Support.PEW_Scaled); END_IF; |
|
|
|
Network 10: READ Technology and periphery data // Dynamic #Winder_Control.Interface.ReWinder.READ.Position := #S120ReW.DRV.Support.ActPos; #Winder_Control.Interface.MasterLine.READ.Position := #S120M.DRV.Support.ActPos * 1000.0; // periphery #Winder_Control.Interface.ReWinder.READ.DancerPos := #Dancer_PEW.Support.PEW_Scaled; #Winder_Control.Interface.UnWinder.READ.Tension := #LoadCell_PEW.Support.PEW_Scaled; #Winder_Control.Interface.UnWinder.READ.Diameter := #UnWinderDiameter_PEW.Support.PEW_Scaled; #Winder_Control.Interface.ReWinder.READ.Diameter := #ReWinderDiameter_PEW.Support.PEW_Scaled; |
|
|
|
Network 11: Winder control #Winder_Control(ENABLE := #Winder_Control.Enable_To_Start AND #tmp_operation_mode, IMPULSE := "M00_Imp_10Hz", READ_MASTER_VELOCITY := #S120M.DRV.Support.ActVelo, ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK, MODE := "HMI KEY".P01.Winder_Control.Int_InOut, PERIMETER_BREAKPOINTS := "HMI KEY".Perimeter_BrackPoints); |
|
|
|
Network 12: WRITE result data IF #Winder_Control.WIN_OnOff THEN IF #S120ReW.DRV.MC_TorqueAdditive.Enable THEN #S120ReW.DRV.MC_TorqueAdditive.Value := #Winder_Control.ReWinder.Torque_Additive_T750; END_IF; IF #S120UnW.DRV.MC_TorqueAdditive.Enable THEN #S120UnW.DRV.MC_TorqueAdditive.Value := #Winder_Control.UnWinder.Torque_Additive_T750; END_IF; END_IF; // Diameter option #Winder_Control.Interface.ReWinder.WRITE.Diameter := #Winder_Control.ReWinder.Roll_Diameter; #Winder_Control.Interface.UnWinder.WRITE.Diameter := #Winder_Control.UnWinder.Roll_Diameter; // Velocity Adaption #Winder_Control.Interface.ReWinder.WRITE.Velocity := #Winder_Control.ReWinder.Speed_At_Roll_Diameter * #Winder_Control.Interface.ReWinder.READ.Gear_Ratio; #Winder_Control.Interface.UnWinder.WRITE.Velocity := #Winder_Control.UnWinder.Speed_At_Roll_Diameter * #Winder_Control.Interface.UnWinder.READ.Gear_Ratio; |
|