FB OUT P01 : Out puts stage handling

[hit  <- on your browser to return]

 

 

 

Network 1: Call Manual operation mode

#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.T01_Estop_TOF(IN := "DI MAIN GLB".M00.GLB_Estop AND NOT "HMI KEY".P01.RP2D.F10_Commissioning,

                       PT := t#1s);

// Current operation mode

#tmp_operation_mode := "DI MAIN GLB".M00.AutoCmpltMa_run OR "DI MAIN P01".M00.HomPosRun OR "DI MAIN P01".SEQ1.SSM.S.stepin;

// Kinematics command active

#S210_A1.res_07 := #S210_A2.res_07 := #RP2D.DRV.Support.Active; // by Move Circular commands

 

 

 

Network 3: S210_A1 axis Roller-Picker-2D

// Execute output stage

#S210_A1.DRV.MC_Home.Execute := #S210_A1.DRV.Support.LampOFF AND "HMI KEY".P01.#S210_A1.F5_Set_Ref_Point AND ("DI MAIN GLB".SET.SSM.S.steps OR "DI MAIN GLB".M00.ManuCmpltMa_run);

#S210_A1.DRV.MC_Power.StartMode := #S210_A1.DRV.MC_MoveAbsolute.Direction := 1;

#S210_A1.DRV.MC_MoveJog.PosCntrl := TRUE;

#S210_A1.DRV.Support.Epos_Enabled := "HMI KEY".P01.S210_A1.F11_Enable_HP AND "HMI KEY".P01.S210_A1.F12_Enable_WP;

// Halt impulse

#S210_A1.DRV.Support.FEg_Halt_Imp := #S210_A1.DRV.Support.FEg_Halt AND NOT #S210_A1.DRV.Support.Epos_Enabled;

#S210_A1.DRV.Support.FEg_Halt := #S210_A1.DRV.Support.Epos_Enabled;

// Execute output stage

#S210_A1(ENABLE := #Support.T01_Estop_TOF.Q,

         HALT_01 := "HMI KEY".P01.S210_A1.F21_Halt OR "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q OR #S210_A1.DRV.Support.FEg_Halt_Imp OR "DI MAIN P01".M00.TOF_ModuleOFF_Pulse.Q,

         MCB := "E00 S210_A1 MCB",

         START_ABSO := #S210_A1.DRV.Support.Cmd_MoveAbso AND #tmp_operation_mode OR "HMI KEY".P01.S210_A1.F17_GoToAbsoPos,

         START_RELA := #S210_A1.DRV.Support.Cmd_MoveRela AND #tmp_operation_mode OR "HMI KEY".P01.S210_A1.F18_GoToRelaPos,

         JOG_WP := #S210_A1.DRV.Support.Cmd_MoveJogWP AND #tmp_operation_mode OR #Manual.S210_A1.CmdExe_slow_fast_WP,

         JOG_HP := #S210_A1.DRV.Support.Cmd_MoveJogHP AND #tmp_operation_mode OR #Manual.S210_A1.CmdExe_slow_fast_HP,

         ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_REg,

         HOM_MODE := 0, //=0 Absolute encoder ActPos = Refpos

         AXIS := "+1-S210_A1");

 

 

 

Network 4: S210_A2 axis Roller-Picker-2D

// Execute output stage

#S210_A2.DRV.MC_Home.Execute := #S210_A2.DRV.Support.LampOFF AND "HMI KEY".P01.#S210_A2.F5_Set_Ref_Point AND ("DI MAIN GLB".SET.SSM.S.steps OR "DI MAIN GLB".M00.ManuCmpltMa_run);

#S210_A2.DRV.MC_Power.StartMode := #S210_A2.DRV.MC_MoveAbsolute.Direction := 1;

#S210_A2.DRV.MC_MoveJog.PosCntrl := TRUE;

#S210_A2.DRV.Support.Epos_Enabled := "HMI KEY".P01.S210_A2.F11_Enable_HP AND "HMI KEY".P01.S210_A2.F12_Enable_WP;

// Halt impulse

#S210_A2.DRV.Support.FEg_Halt_Imp := #S210_A2.DRV.Support.FEg_Halt AND NOT #S210_A2.DRV.Support.Epos_Enabled;

#S210_A2.DRV.Support.FEg_Halt := #S210_A2.DRV.Support.Epos_Enabled;

// Execute output stage

#S210_A2(ENABLE := #Support.T01_Estop_TOF.Q,

         HALT_01 := "HMI KEY".P01.S210_A2.F21_Halt OR "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q OR #S210_A2.DRV.Support.FEg_Halt_Imp OR "DI MAIN P01".M00.TOF_ModuleOFF_Pulse.Q,

         MCB := "E00 S210_A2 MCB",

         START_ABSO := #S210_A2.DRV.Support.Cmd_MoveAbso AND #tmp_operation_mode OR "HMI KEY".P01.S210_A2.F17_GoToAbsoPos,

         START_RELA := #S210_A2.DRV.Support.Cmd_MoveRela AND #tmp_operation_mode OR "HMI KEY".P01.S210_A2.F18_GoToRelaPos,

         JOG_WP := #S210_A2.DRV.Support.Cmd_MoveJogWP AND #tmp_operation_mode OR #Manual.S210_A2.CmdExe_slow_fast_WP,

         JOG_HP := #S210_A2.DRV.Support.Cmd_MoveJogHP AND #tmp_operation_mode OR #Manual.S210_A2.CmdExe_slow_fast_HP,

         ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_REg,

         HOM_MODE := 0, // Absolute encoder ActPos = Refpos

         AXIS := "+1_S210_A2");

 

 

 

Network 5: RP2D Roller-Picker-2D control

// Enable Roller-Picker 2D to move in automatic mode

#RP2D.DRV.Support.Kinematics_Enabled := #S210_A1.DRV.Support.Epos_Enabled AND #S210_A2.DRV.Support.Epos_Enabled AND "HMI KEY".P01.RP2D.F9_Enabled_WP;

#RP2D.DRV.Support.InOperation :=

#S210_A1.DRV.Support.InOperation

AND #S210_A2.DRV.Support.InOperation

AND #S210_A2.DRV.Support.InOperation;

#RP2D(ENABLE := #S210_A1.DRV.MC_Power.Busy AND #S210_A2.DRV.MC_Power.Busy AND #RP2D.DRV.Support.Kinematics_Enabled,

      MCB := "E00 S210_A1 MCB" AND "E00 S210_A2 MCB",

      GROUP_STOP := "HMI KEY".P01.RP2D.F5_GroupStop, // in manual mode

      GROUP_INTERRUPT := "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q OR "DI MAIN P01".M00.TOF_ModuleOFF_Pulse.Q OR #Manual.RP2D.CmdExe_GroupInterrupt,

      GROUP_CONTINUE := "DI MAIN GLB".M00.CmpltMaRun_Imp AND #tmp_operation_mode OR #Manual.RP2D.CmdExe_GroupContinue,

      MOVE_LINEAR_ABSO := #RP2D.DRV.Support.Cmd_MoveLinearAbsolute AND #tmp_operation_mode OR #Manual.RP2D.CmdExe_MovLinAbso,

      MOVE_LINEAR_RELA := #RP2D.DRV.Support.Cmd_MoveLinearRelative AND #tmp_operation_mode OR #Manual.RP2D.CmdExe_MovLinRela,

      MOVE_CIRCULAR_ABSO := #RP2D.DRV.Support.Cmd_MoveCircularAbsolute AND #tmp_operation_mode OR #Manual.RP2D.CmdExe_MovCirAbso,

      MOVE_CIRCULAR_RELA := #RP2D.DRV.Support.Cmd_MoveCircularRelative AND #tmp_operation_mode OR #Manual.RP2D.CmdExe_MovCirRela,

      ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_REg,

      KINEMATICS := "+1-Cartecian_Portal");

 

 

 

Network 6: M100 vacuum gripper pump (RP2D)

#M100(CMD_ONOFF := FALSE,

     FD_BACK := "E00 M100 FdB",

     HALT_01 := FALSE,

     MCB := "E00 M100 MCB",

     ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_Imp,

     MOT_CW => "A00 M100 Cont");

 

 

 

Network 7: V100 vacuum gripper (RP2D)

#V100(CMD_WP := FALSE,

      FB_HP := "E01 V100 HP",

      FB_WP := "E01 V100 WP",

      RLS := "E00 AirPressure OK",

      ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_Imp,

      VALV_WP => "A01 V100 WP");

 

 

 

Network 8: C100 swivelling vacuum gripper

#C100(CMD_HP := FALSE,

      CMD_WP := FALSE,

      FB_HP := "E01 C100 HP",

      FB_WP := "E01 C100 WP",

      RLS := "E00 AirPressure OK",

      ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_REg,

      VALV_HP => "A01 C100 HP",

      VALV_WP => "A01 C100 WP");

 

 

 

Network 9: C101 push pull cylinder

#C101(CMD_HP := FALSE,

      CMD_WP := FALSE,

      FB_HP := "E01 C101 HP",

      FB_WP := "E01 C101 WP",

      RLS := "E00 AirPressure OK",

      ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_REg,

      VALV_HP => "A01 C101 HP",

      VALV_WP => "A01 C101 WP");