FB39 OUT P01 : P01 Execute Output Stage

[hit  <- on your browser to return]

 

 

 

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;