FB OUT P01 : Out puts stage handling |
|
|
|
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"); |
|