FB59 OUT P03 : Two aisle automated small parts storage outputs

[hit  <- on your browser to return]

 

 

 

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");