FB59 OUT P03 : Two aisle automated small parts storage outputs |
|
|
|
Netzwerk 1: Call manual operation #Manual(ST_MANU := "DI MAIN GLB".M00.ManuCmpltMa_run, MODULE_HP := "HMI KEY".P03.GLB.F20_HomPos, SUPPORT_SEQ := "DI MAIN P03".M00.HomPosRun); |
|
|
|
Netzwerk 2: Pre-Setting "A00 G120C_X Enbl" := "A00 G102C_Y Enbl" := "A00 G120C_Z Enbl" := "E00 26S1 Estop" AND "E00 EStp ok"; #Support.T03_Estop_TOF(IN := "E00 26S1 Estop" AND "E00 EStp ok", PT := t#1s); #tmp_operation_mode := "DI MAIN GLB".M00.AutoCmpltMa_run OR "DI MAIN P03".M00.HomPosRun; |
|
A Zero-Pressure-Conveying is here implicated between i.e. M302_Transfer_To_M303, and M302_Transfer_To_HBS1 (here High-Bay-Storage 1). CC_PC, CC_NC present the conveyor communication interface of forwards/backwards transfer. They are used to coordinate the movement of current conveyor with previous conveyor (CC_PC), and current conveyor with next conveyor (CC_NC). |
|
Netzwerk 3: M302 Transfer to M303 || M302 Transfer to HBS1 #M302_Transfer_To_M303(STA_IMP := "E03 GapCntrl HBS2" AND "DI MAIN GLB".M00.CmpltMaRun_Imp, HALT_01 := NOT "HMI KEY".P03.M302.F12_Enable_WP OR "DI MAIN P03".M00.HomPosRun OR NOT "E03 GapCntrl HBS2" AND "DI MAIN GLB".M00.AutoCmpltMa_run, LIM_SENSOR := ("E03 M302 LimS22" OR NOT #HBS2.RdyToTakeIn_FrmNC) AND "DI MAIN GLB".M00.AutoCmpltMa_run OR "DI MAIN GLB".M00.ManuCmpltMa_run AND "E03 M302 LimS22", DELAY_ON := 8, ACTOR_ON => #M302_Transfer_To_M303.DRV.LampWP, CC_PC := #M302_Transfer_To_M303.DRV.PC, CC_NC := #M303_Transfer_To_M304.DRV.CC, BLK_MOVE := TRUE, SOURCE_BLK_DATA := #M302_Box_Data, TARGET_BLK_DATA := #M303_Box_Data); #M302_Transfer_To_HBS1(STA_IMP := "E03 GapCntrl HBS1" AND "DI MAIN GLB".M00.CmpltMaRun_Imp, HALT_01 := NOT "HMI KEY".P03.M302.F11_Enable_HP OR "DI MAIN P03".M00.HomPosRun OR NOT "E03 GapCntrl HBS1" AND "DI MAIN GLB".M00.AutoCmpltMa_run, LIM_SENSOR := ("E03 M302 LimS21" OR NOT #HBS1.RdyToTakeIn_FrmNC) AND "DI MAIN GLB".M00.AutoCmpltMa_run OR "DI MAIN GLB".M00.ManuCmpltMa_run AND "E03 M302 LimS21", DELAY_ON := 5, ACTOR_ON => #M302_Transfer_To_HBS1.DRV.LampHP, CC_PC := #M302_Transfer_To_HBS1.DRV.CC, CC_NC := #HBS1, BLK_MOVE := TRUE, SOURCE_BLK_DATA := #M302_Box_Data, TARGET_BLK_DATA := #HBS1_Box_Data); // M302 Lift truck conveyor 1 #M302(CMD_ONOFF_CW := #M302_Transfer_To_M303.DRV.LampWP OR #M302.DRV.ActorJog_WP, CMD_ONOFF_ACW := #M302_Transfer_To_HBS1.DRV.LampHP OR #M302.DRV.ActorJog_HP, HALT_01 := NOT "DI MAIN GLB".M00.GLB_Estop, MCB := "E00 M302 MCB", ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_Imp, IO_ADDRESS := 60);
// M302_Transfer_To_HBS1 Box give over control HBS1 IF #Support."1st_Detection_BGC1" AND #Support.#"2ed_Detection_BGC1" AND NOT "E03 BoxGapCntrl HBS1" THEN #HBS1.Occupied_FrmNC := #Support."1st_Detection_BGC1" := #Support."2ed_Detection_BGC1" := FALSE; ELSIF NOT "E03 BoxGapCntrl HBS1" AND "E03 M302 LimS21" THEN #Support."1st_Detection_BGC1" := TRUE; ELSIF #Support."1st_Detection_BGC1" AND NOT "E03 M302 LimS21" AND "E03 BoxGapCntrl HBS1" THEN #HBS1.Occupied_FrmNC := #Support."2ed_Detection_BGC1" := TRUE; END_IF; |
|
See above for further explanation |
|
Netzwerk 4: M303 Transfer to M304 || M303 Transfer to M302 #M303_Transfer_To_M304(STA_IMP := "E03 GapCntrl HBS2" AND "DI MAIN GLB".M00.CmpltMaRun_Imp, HALT_01 := NOT "HMI KEY".P03.M303.F12_Enable_WP OR "DI MAIN P03".M00.HomPosRun OR NOT "E03 GapCntrl HBS2" AND "DI MAIN GLB".M00.AutoCmpltMa_run, LIM_SENSOR := ("E03 M303 LimS32" OR NOT #HBS2.RdyToTakeIn_FrmNC) AND "DI MAIN GLB".M00.AutoCmpltMa_run OR "DI MAIN GLB".M00.ManuCmpltMa_run AND "E03 M303 LimS32", DELAY_ON := 7, ACTOR_ON => #M303_Transfer_To_M304.DRV.LampWP, CC_PC := #M303_Transfer_To_M304.DRV.CC, CC_NC := #M304_Transfer_To_M305.DRV.CC, BLK_MOVE := TRUE, SOURCE_BLK_DATA := #M303_Box_Data, TARGET_BLK_DATA := #M304_Box_Data); #M303_Transfer_To_M302(STA_IMP := "E03 GapCntrl HBS1" AND "DI MAIN GLB".M00.CmpltMaRun_Imp, HALT_01 := NOT "HMI KEY".P03.M303.F11_Enable_HP OR "DI MAIN P03".M00.HomPosRun OR NOT "E03 GapCntrl HBS1" AND "DI MAIN GLB".M00.AutoCmpltMa_run, LIM_SENSOR := ("E03 M303 LimS31" OR NOT #HBS1.RdyToTakeIn_FrmNC) AND "DI MAIN GLB".M00.AutoCmpltMa_run OR "DI MAIN GLB".M00.ManuCmpltMa_run AND "E03 M303 LimS31", DELAY_ON := 6, ACTOR_ON => #M303_Transfer_To_M302.DRV.LampHP, CC_PC := #M303_Transfer_To_M302.DRV.CC, CC_NC := #M302_Transfer_To_HBS1.DRV.CC, BLK_MOVE := TRUE, SOURCE_BLK_DATA := #M303_Box_Data, TARGET_BLK_DATA := #M302_Box_Data); // M303 Lift truck conveyor 2 #M303(CMD_ONOFF_CW := #M303_Transfer_To_M304.DRV.LampWP OR #M303.DRV.ActorJog_WP, CMD_ONOFF_ACW := #M303_Transfer_To_M302.DRV.LampHP OR #M303.DRV.ActorJog_HP, HALT_01 := NOT "DI MAIN GLB".M00.GLB_Estop, MCB := "E00 M303 MCB", ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_Imp, IO_ADDRESS := 62); |
|
|
|
Netzwerk 5: M304 Transfer to M305 || M304 Transfer to M303 #M304_Transfer_To_M305(STA_IMP := "E03 GapCntrl HBS2" AND "DI MAIN GLB".M00.CmpltMaRun_Imp, HALT_01 := NOT "HMI KEY".P03.M304.F12_Enable_WP OR "DI MAIN P03".M00.HomPosRun OR NOT "E03 GapCntrl HBS2" AND "DI MAIN GLB".M00.AutoCmpltMa_run, LIM_SENSOR := ("E03 M304 LimS42" OR NOT #HBS2.RdyToTakeIn_FrmNC) AND "DI MAIN GLB".M00.AutoCmpltMa_run OR "DI MAIN GLB".M00.ManuCmpltMa_run AND "E03 M304 LimS42", DELAY_ON := 7, ACTOR_ON => #M304_Transfer_To_M305.DRV.LampWP, CC_PC := #M304_Transfer_To_M305.DRV.CC, CC_NC := #M305_Transfer_To_HBS2.DRV.CC, BLK_MOVE := TRUE, SOURCE_BLK_DATA := #M304_Box_Data, TARGET_BLK_DATA := #M305_Box_Data); #M304_Transfer_To_M303(STA_IMP := "E03 GapCntrl HBS1" AND "DI MAIN GLB".M00.CmpltMaRun_Imp, HALT_01 := NOT "HMI KEY".P03.M304.F11_Enable_HP OR "DI MAIN P03".M00.HomPosRun OR NOT "E03 GapCntrl HBS1" AND "DI MAIN GLB".M00.AutoCmpltMa_run, LIM_SENSOR := ("E03 M304 LimS41" OR NOT #HBS1.RdyToTakeIn_FrmNC) AND "DI MAIN GLB".M00.AutoCmpltMa_run OR "DI MAIN GLB".M00.ManuCmpltMa_run AND "E03 M304 LimS41", DELAY_ON := 6, ACTOR_ON => #M304_Transfer_To_M303.DRV.LampHP, CC_PC := #M304_Transfer_To_M303.DRV.CC, CC_NC := #M303_Transfer_To_M302.DRV.CC, BLK_MOVE := TRUE, SOURCE_BLK_DATA := #M304_Box_Data, TARGET_BLK_DATA := #M303_Box_Data); // M304 Lift truck conveyor 3 #M304(CMD_ONOFF_CW := #M304_Transfer_To_M305.DRV.LampWP OR #M304.DRV.ActorJog_WP, CMD_ONOFF_ACW := #M304_Transfer_To_M303.DRV.LampHP OR #M304.DRV.ActorJog_HP, HALT_01 := NOT "DI MAIN GLB".M00.GLB_Estop, MCB := "E00 M304 MCB", ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_Imp, IO_ADDRESS := 64); |
|
|
|
Netzwerk 6: M305 Transfer to HBS2 || M305 Transfer to M304 #M305_Transfer_To_HBS2(STA_IMP := "E03 GapCntrl HBS2" AND "DI MAIN GLB".M00.CmpltMaRun_Imp, HALT_01 := NOT "HMI KEY".P03.M305.F12_Enable_WP OR "DI MAIN P03".M00.HomPosRun OR NOT "E03 GapCntrl HBS2" AND "DI MAIN GLB".M00.AutoCmpltMa_run, LIM_SENSOR := ("E03 M305 LimS52" OR NOT #HBS2.RdyToTakeIn_FrmNC) AND "DI MAIN GLB".M00.AutoCmpltMa_run OR "DI MAIN GLB".M00.ManuCmpltMa_run AND "E03 M305 LimS52", DELAY_ON := 5, ACTOR_ON => #M305_Transfer_To_HBS2.DRV.LampWP, CC_PC := #M305_Transfer_To_HBS2.DRV.CC, CC_NC := #HBS2, BLK_MOVE := TRUE, SOURCE_BLK_DATA := #M305_Box_Data, TARGET_BLK_DATA := #HBS2_Box_Data); #M305_Transfer_To_M304(STA_IMP := "E03 GapCntrl HBS1" AND "DI MAIN GLB".M00.CmpltMaRun_Imp, HALT_01 := NOT "HMI KEY".P03.M305.F11_Enable_HP OR "DI MAIN P03".M00.HomPosRun OR NOT "E03 GapCntrl HBS1" AND "DI MAIN GLB".M00.AutoCmpltMa_run, LIM_SENSOR := ("E03 M305 LimS51" OR NOT #HBS1.RdyToTakeIn_FrmNC) AND "DI MAIN GLB".M00.AutoCmpltMa_run OR "DI MAIN GLB".M00.ManuCmpltMa_run AND "E03 M305 LimS51", DELAY_ON := 5, ACTOR_ON => #M305_Transfer_To_M304.DRV.LampHP, CC_PC := #M305_Transfer_To_M304.DRV.PC, CC_NC := #M304_Transfer_To_M303.DRV.CC, BLK_MOVE := TRUE, SOURCE_BLK_DATA := #M305_Box_Data, TARGET_BLK_DATA := #M304_Box_Data); // M305 Lift truck conveyor 4 #M305(CMD_ONOFF_CW := #M305_Transfer_To_HBS2.DRV.LampWP OR #M305.DRV.ActorJog_WP, CMD_ONOFF_ACW := #M305_Transfer_To_M304.DRV.LampHP OR #M305.DRV.ActorJog_HP, HALT_01 := NOT "DI MAIN GLB".M00.GLB_Estop, MCB := "E00 M305 MCB", ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_Imp, IO_ADDRESS := 66);
// Box give over control HBS2 IF #Support."1st_Detection_BGC2" AND #Support.#"2ed_Detection_BGC2" AND NOT "E03 BoxGapCntrl HBS2" THEN #HBS2.Occupied_FrmNC := #Support."1st_Detection_BGC2" := #Support."2ed_Detection_BGC2" := FALSE; ELSIF NOT "E03 BoxGapCntrl HBS2" AND "E03 M305 LimS52" THEN #Support."1st_Detection_BGC2" := TRUE; ELSIF #Support."1st_Detection_BGC2" AND NOT "E03 M305 LimS52" AND "E03 BoxGapCntrl HBS2" THEN #HBS2.Occupied_FrmNC := #Support."2ed_Detection_BGC2" := TRUE; END_IF; |
|
|
|
Netzwerk 7: G120C_X axis stacker crane HBS // Execute output stage #G120C_X.DRV.MC_Home.Execute := "E03 G120C_Z MiddleCntrl" AND #G120C_X.DRV.Support.LampHP AND "HMI KEY".P03.G120C_X.F5_Set_Ref_Point AND ("DI MAIN GLB".SET.SSM.S.steps OR "DI MAIN GLB".M00.ManuCmpltMa_run); #G120C_X.DRV.MC_Power.StartMode := #G120C_X.DRV.MC_MoveAbsolute.Direction := 1; #G120C_X.DRV.MC_MoveJog.PosCntrl := TRUE; #G120C_X.DRV.Support.Epos_Enabled := "HMI KEY".P03.G120C_X.F11_Enable_HP AND "HMI KEY".P03.G120C_X.F12_Enable_WP; // Halt impulse #G120C_X.DRV.Support.FEg_Halt_Imp := #G120C_X.DRV.Support.FEg_Halt AND NOT #G120C_X.DRV.Support.Epos_Enabled; #G120C_X.DRV.Support.FEg_Halt := #G120C_X.DRV.Support.Epos_Enabled; // Execute output stage #G120C_X(ENABLE := #Support.T03_Estop_TOF.Q, HALT_01 := "HMI KEY".P03.G120C_X.F21_HALT OR "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q OR #G120C_X.DRV.Support.FEg_Halt_Imp OR "DI MAIN P03".M00.TOF_ModuleOFF_Pulse.Q, MCB := "E00 G120C_X MCB", START_ABSO := #G120C_X.DRV.Support.Cmd_MovAbso AND #tmp_operation_mode OR "HMI KEY".P03.G120C_X.F17_GoToAbsoPos, START_RELA := #G120C_X.DRV.Support.Cmd_MovRela AND #tmp_operation_mode OR "HMI KEY".P03.G120C_X.F18_GoToRelaPos, JOG_WP := #G120C_X.DRV.Support.Cmd_MovJogWP AND #tmp_operation_mode OR #Manual.G120C_X.CmdExe_slow_fast_WP, JOG_HP := #G120C_X.DRV.Support.Cmd_MovJogHP AND #tmp_operation_mode OR #Manual.G120C_X.CmdExe_slow_fast_HP, ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_REg, HOM_MODE := 3, AXIS := "+3-G120C_X"); |
|
|
|
Netzwerk 8: G120C_Y axis stacker crane HBS // Execute output stage #G120C_Y.DRV.MC_Home.Execute := "E03 G120C_Z MiddleCntrl" AND #G120C_Y.DRV.Support.LampHP AND "HMI KEY".P03.G120C_Y.F5_Set_Ref_Point AND ("DI MAIN GLB".SET.SSM.S.steps OR "DI MAIN GLB".M00.ManuCmpltMa_run); #G120C_Y.DRV.MC_Power.StartMode := #G120C_Y.DRV.MC_MoveAbsolute.Direction := 1; #G120C_Y.DRV.MC_MoveJog.PosCntrl := TRUE; #G120C_Y.DRV.Support.Epos_Enabled := "HMI KEY".P03.G120C_Y.F11_Enable_HP AND "HMI KEY".P03.G120C_Y.F12_Enable_WP; // Halt impulse #G120C_Y.DRV.Support.FEg_Halt_Imp := #G120C_Y.DRV.Support.FEg_Halt AND NOT #G120C_Y.DRV.Support.Epos_Enabled; #G120C_Y.DRV.Support.FEg_Halt := #G120C_Y.DRV.Support.Epos_Enabled; // Execute output stage #G120C_Y(ENABLE := #Support.T03_Estop_TOF.Q, HALT_01 := "HMI KEY".P03.G120C_Y.F21_HALT OR "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q OR #G120C_Y.DRV.Support.FEg_Halt_Imp OR "DI MAIN P03".M00.TOF_ModuleOFF_Pulse.Q, MCB := "E00 G120C_Y MCB", START_ABSO := #G120C_Y.DRV.Support.Cmd_MovAbso AND #tmp_operation_mode OR "HMI KEY".P03.G120C_Y.F17_GoToAbsoPos, START_RELA := #G120C_Y.DRV.Support.Cmd_MovRela AND #tmp_operation_mode OR "HMI KEY".P03.G120C_Y.F18_GoToRelaPos, JOG_WP := #G120C_Y.DRV.Support.Cmd_MovJogWP AND #tmp_operation_mode OR #Manual.G120C_Y.CmdExe_slow_fast_WP, JOG_HP := #G120C_Y.DRV.Support.Cmd_MovJogHP AND #tmp_operation_mode OR #Manual.G120C_Y.CmdExe_slow_fast_HP, ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_REg, HOM_MODE := 3, AXIS := "+3-G120C_Y"); |
|
|
|
Netzwerk 9: G120C_Z axis towing arm stacker crane HBS // Execute output stage #G120C_Z.DRV.MC_Home.Execute := #G120C_Z.DRV.Support.LampHP AND "HMI KEY".P03.G120C_Z.F5_Set_Ref_Point AND ("DI MAIN GLB".SET.SSM.S.steps OR "DI MAIN GLB".M00.ManuCmpltMa_run); #G120C_Z.DRV.MC_Power.StartMode := #G120C_Z.DRV.MC_MoveAbsolute.Direction := 1; #G120C_Z.DRV.MC_MoveJog.PosCntrl := TRUE; #G120C_Z.DRV.Support.Epos_Enabled := "HMI KEY".P03.G120C_Z.F11_Enable_HP AND "HMI KEY".P03.G120C_Z.F12_Enable_WP; // Halt impulse #G120C_Z.DRV.Support.FEg_Halt_Imp := #G120C_Z.DRV.Support.FEg_Halt AND NOT #G120C_Z.DRV.Support.Epos_Enabled; #G120C_Z.DRV.Support.FEg_Halt := #G120C_Z.DRV.Support.Epos_Enabled; // Execute output stage #G120C_Z(ENABLE := #Support.T03_Estop_TOF.Q, HALT_01 := "HMI KEY".P03.G120C_Z.F21_HALT OR "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q OR #G120C_Z.DRV.Support.FEg_Halt_Imp OR "DI MAIN P03".M00.TOF_ModuleOFF_Pulse.Q, MCB := "E00 G120C_Z MCB", START_ABSO := #G120C_Z.DRV.Support.Cmd_MovAbso AND #tmp_operation_mode OR "HMI KEY".P03.G120C_Z.F17_GoToAbsoPos, START_RELA := #G120C_Z.DRV.Support.Cmd_MovRela AND #tmp_operation_mode OR "HMI KEY".P03.G120C_Z.F18_GoToRelaPos, JOG_WP := #G120C_Z.DRV.Support.Cmd_MovJogWP AND #tmp_operation_mode OR #Manual.G120C_Z.CmdExe_slow_fast_WP, JOG_HP := #G120C_Z.DRV.Support.Cmd_MovJogHP AND #tmp_operation_mode OR #Manual.G120C_Z.CmdExe_slow_fast_HP, ACK_FLT := "DI MAIN GLB".M00.FLT_CmpltMaACK_REg, HOM_MODE := 3, AXIS := "+3-G120C_Z"); |
|