FB59 OUT P03 : Two aisle automated small parts storage outputs

[hit  <- on your browser to return]

 

 

 

Netzwerk 1: Call manual operation

 

#MANUAL(ST_MANU := "M00 ManuCmpltMa run",

        MODULE_HP := "HMI KEY".P03.GLB.F20_HomPos,

        SUPPORT_SEQ := "M03 RunHomPos");

 

 

 

Netzwerk 2: Pre-Setting

 

"A00 31N1_X Enbl" := "A00 32N1_Y Enbl" := "A00 33N1_Z Enbl" := "M00 EStp ok";

 

#tmp_30M2_halt := "HMI KEY".P03."30M2".F11_Enable_HP OR "HMI KEY".P03."30M2".F12_Enable_WP;

#tmp_30M3_halt := "HMI KEY".P03."30M3".F11_Enable_HP OR "HMI KEY".P03."30M3".F12_Enable_WP;

#tmp_30M4_halt := "HMI KEY".P03."30M4".F11_Enable_HP OR "HMI KEY".P03."30M4".F12_Enable_WP;

#tmp_30M5_halt := "HMI KEY".P03."30M5".F11_Enable_HP OR "HMI KEY".P03."30M5".F12_Enable_WP;

 

 

 

Netzwerk 3: 30M2_2 > 30M3_2

 

#tmp_enbl_LB := "E03 30M2 LB2_2" OR NOT #HBS_2.RdyToTakOver_FrmNC;

#"30M2_2"(STA_IMP := "E03 GapCntrl HBS2" AND "M00 TrnsSysRun Imp",

          LB := #tmp_enbl_LB AND "M00 AutoCmpltMa run" OR "M00 ManuCmpltMa run" AND "E03 30M2 LB2_2",

          HALT_10 := "HMI KEY".P03."30M2".F11_Enable_HP,

          DELAY_ON := 8,

          MOT => #"30M2_2".DRV.Bit_7,

          CC_PC := #"30M2_2".DRV.VC,

          CC_NC := #"30M3_2".DRV.CC);

 

IF "E03 30M3 LB3_2" AND NOT #Support."30M3_2_REg_MovBLK" THEN

    "FC BLK MOV DEL"(SOURCE_BLK := "DI MAIN P03".SEQ1.Box_Data_30M2,

                     TARGET_BLK := "DI MAIN P03".SEQ1.Box_Data_30M3,

                     FAULT := #dummy);

END_IF;

#Support."30M3_2_REg_MovBLK" := "E03 30M3 LB3_2";

 

 

 

Netzwerk 4: 30M3_2 > 30M4_2

 

#tmp_enbl_LB := "E03 30M3 LB3_2" OR NOT #HBS_2.RdyToTakOver_FrmNC;

#"30M3_2"(STA_IMP := "E03 GapCntrl HBS2" AND "M00 TrnsSysRun Imp",

          LB := #tmp_enbl_LB AND "M00 AutoCmpltMa run" OR "M00 ManuCmpltMa run" AND "E03 30M3 LB3_2",

          HALT_10 :=  "HMI KEY".P03."30M3".F11_Enable_HP,

          DELAY_ON := 7,

          MOT => #"30M3_2".DRV.Bit_7,

          CC_PC := #"30M3_2".DRV.CC,

          CC_NC := #"30M4_2".DRV.CC);

 

IF "E03 30M4 LB4_2" AND NOT #Support."30M4_2_REg_MovBLK" THEN

    "FC BLK MOV DEL"(SOURCE_BLK := "DI MAIN P03".SEQ1.Box_Data_30M3,

                     TARGET_BLK := "DI MAIN P03".SEQ1.Box_Data_30M4,

                     FAULT := #dummy);

END_IF;

#Support."30M4_2_REg_MovBLK" := "E03 30M4 LB4_2";

 

 

 

Netzwerk 5: 30M4_2 > 30M5_2

 

#tmp_enbl_LB := "E03 30M4 LB4_2" OR NOT #HBS_2.RdyToTakOver_FrmNC;

#"30M4_2"(STA_IMP := "E03 GapCntrl HBS2" AND "M00 TrnsSysRun Imp",

          LB := #tmp_enbl_LB AND "M00 AutoCmpltMa run" OR "M00 ManuCmpltMa run" AND "E03 30M4 LB4_2",

          HALT_10 := "HMI KEY".P03."30M4".F11_Enable_HP,

          DELAY_ON := 6,

          MOT => #"30M4_2".DRV.Bit_7,

          CC_PC := #"30M4_2".DRV.CC,

          CC_NC := #"30M5_2".DRV.CC);

 

IF "E03 30M5 LB5_2" AND NOT #Support."30M5_2_REg_MovBLK" THEN

    "FC BLK MOV DEL"(SOURCE_BLK := "DI MAIN P03".SEQ1.Box_Data_30M4,

                     TARGET_BLK := "DI MAIN P03".SEQ1.Box_Data_30M5,

                     FAULT := #dummy);

END_IF;

#Support."30M5_2_REg_MovBLK" := "E03 30M5 LB5_2";

 

 

 

Netzwerk 6: 30M5_2 > HBS2

 

#tmp_enbl_LB := "E03 30M5 LB5_2" OR NOT #HBS_2.RdyToTakOver_FrmNC;

#"30M5_2"(STA_IMP := "E03 GapCntrl HBS2" AND "M00 TrnsSysRun Imp",

          LB := #tmp_enbl_LB AND "M00 AutoCmpltMa run" OR "M00 ManuCmpltMa run" AND "E03 30M5 LB5_2",

          HALT_10 := "HMI KEY".P03."30M5".F11_Enable_HP,

          DELAY_ON := 5,

          MOT => #"30M5_2".DRV.Bit_7,

          CC_PC := #"30M5_2".DRV.CC,

          CC_NC := #HBS_2);

// Towing arm storing control HBS2

IF #Support."1st_Detection_BGC2" AND #Support.#"2ed_Detection_BGC2" AND NOT "E03 BoxGapCntrl HBS2" THEN

    #Support."1st_Detection_BGC2" := #Support."2ed_Detection_BGC2" := FALSE;

ELSIF NOT "E03 BoxGapCntrl HBS2" AND "E03 30M5 LB5_2" THEN

    #Support."1st_Detection_BGC2" := TRUE;

ELSIF #Support."1st_Detection_BGC2" AND NOT "E03 30M5 LB5_2" AND "E03 BoxGapCntrl HBS2" THEN

    #Support."2ed_Detection_BGC2" := TRUE;

END_IF;

#tmp_FEg_BGC := #Support."1st_Detection_BGC2" AND #Support."2ed_Detection_BGC2";

IF NOT "E03 BoxGapCntrl HBS2" AND #Support."30M5_2_FEg_HBS2" THEN

    "FC BLK MOV DEL"(SOURCE_BLK := "DI MAIN P03".SEQ1.Box_Data_30M5,

                     TARGET_BLK := "DI MAIN P03".SEQ1.Box_Data_HBS2,

                     FAULT := #dummy);

END_IF;

#Support."30M5_2_FEg_HBS2" := #tmp_FEg_BGC;

 

 

 

Netzwerk 7: 30M5_1 > 30M4_1

 

#tmp_enbl_LB := "E03 30M5 LB5_1" OR NOT #HBS_1.RdyToTakOver_FrmNC;

#"30M5_1"(STA_IMP := "E03 GapCntrl HBS1" AND "M00 TrnsSysRun Imp",

          LB := #tmp_enbl_LB AND "M00 AutoCmpltMa run" OR "M00 ManuCmpltMa run" AND "E03 30M5 LB5_1",

          HALT_10 := "HMI KEY".P03."30M5".F12_Enable_WP,

          DELAY_ON := 8,

          MOT => #"30M5_1".DRV.Bit_7,

          CC_PC := #"30M5_1".DRV.VC,

          CC_NC := #"30M4_1".DRV.CC);

 

IF "E03 30M4 LB4_1" AND NOT #Support."30M4_1_REg_MovBLK" THEN

    "FC BLK MOV DEL"(SOURCE_BLK := "DI MAIN P03".SEQ1.Box_Data_30M5,

                     TARGET_BLK := "DI MAIN P03".SEQ1.Box_Data_30M4,

                     FAULT := #dummy);

END_IF;

#Support."30M4_1_REg_MovBLK" := "E03 30M4 LB4_1";

 

 

 

Netzwerk 8: 30M4_1 > 30M3_1

 

#tmp_enbl_LB := "E03 30M4 LB4_1" OR NOT #HBS_1.RdyToTakOver_FrmNC;

#"30M4_1"(STA_IMP := "E03 GapCntrl HBS1" AND "M00 TrnsSysRun Imp",

          LB := #tmp_enbl_LB AND "M00 AutoCmpltMa run" OR "M00 ManuCmpltMa run" AND "E03 30M4 LB4_1",

          HALT_10 := "HMI KEY".P03."30M4".F12_Enable_WP,

          DELAY_ON := 7,

         MOT => #"30M4_1".DRV.Bit_7,

          CC_PC := #"30M4_1".DRV.CC,

          CC_NC := #"30M3_1".DRV.CC);

 

IF "E03 30M3 LB3_1" AND NOT #Support."30M3_1_REg_MovBLK" THEN

    "FC BLK MOV DEL"(SOURCE_BLK := "DI MAIN P03".SEQ1.Box_Data_30M4,

                     TARGET_BLK := "DI MAIN P03".SEQ1.Box_Data_30M3,

                     FAULT := #dummy);

END_IF;

#Support."30M3_1_REg_MovBLK" := "E03 30M3 LB3_1";

 

 

 

Netzwerk 9: 30M3_1 > 30M2_1

 

#tmp_enbl_LB := "E03 30M3 LB3_1" OR NOT #HBS_1.RdyToTakOver_FrmNC;

#"30M3_1"(STA_IMP := "E03 GapCntrl HBS1" AND "M00 TrnsSysRun Imp",

          LB := #tmp_enbl_LB AND "M00 AutoCmpltMa run" OR "M00 ManuCmpltMa run" AND "E03 30M3 LB3_1",

          HALT_10 := "HMI KEY".P03."30M3".F12_Enable_WP,

          DELAY_ON := 6,

          MOT => #"30M3_1".DRV.Bit_7,

          CC_PC := #"30M3_1".DRV.CC,

          CC_NC := #"30M2_1".DRV.CC);

 

IF "E03 30M2 LB2_1" AND NOT #Support."30M2_1_REg_MovBLK" THEN

    "FC BLK MOV DEL"(SOURCE_BLK := "DI MAIN P03".SEQ1.Box_Data_30M3,

                     TARGET_BLK := "DI MAIN P03".SEQ1.Box_Data_30M2,

                     FAULT := #dummy);

END_IF;

#Support."30M2_1_REg_MovBLK" := "E03 30M2 LB2_1";

 

 

 

Netzwerk 10: 30M2_1 > HBS1

 

#tmp_enbl_LB := "E03 30M2 LB2_1" OR NOT #HBS_1.RdyToTakOver_FrmNC;

#"30M2_1"(STA_IMP := "E03 GapCntrl HBS1" AND "M00 TrnsSysRun Imp",

          LB := #tmp_enbl_LB AND "M00 AutoCmpltMa run" OR "M00 ManuCmpltMa run" AND "E03 30M2 LB2_1",

          HALT_10 := "HMI KEY".P03."30M2".F12_Enable_WP,

          DELAY_ON := 5,

          MOT => #"30M2_1".DRV.Bit_7,

          CC_PC := #"30M2_1".DRV.CC,

          CC_NC := #HBS_1);

 

// Box give over control HBS1

IF #Support."1st_Detection_BGC1" AND #Support.#"2ed_Detection_BGC1" AND NOT "E03 BoxGapCntrl HBS1" THEN

    #Support."1st_Detection_BGC1" := #Support."2ed_Detection_BGC1" := FALSE;

ELSIF NOT "E03 BoxGapCntrl HBS1" AND "E03 30M2 LB2_1" THEN

    #Support."1st_Detection_BGC1" := TRUE;

ELSIF #Support."1st_Detection_BGC1" AND NOT "E03 30M2 LB2_1" AND "E03 BoxGapCntrl HBS1" THEN

    #Support."2ed_Detection_BGC1" := TRUE;

END_IF;

#tmp_FEg_BGC := #Support."1st_Detection_BGC1" AND #Support."2ed_Detection_BGC1";

IF NOT #tmp_FEg_BGC AND #Support."30M2_1_FEg_HBS1" THEN

    "FC BLK MOV DEL"(SOURCE_BLK := "DI MAIN P03".SEQ1.Box_Data_30M2,

                     TARGET_BLK := "DI MAIN P03".SEQ1.Box_Data_HBS1,

                     FAULT := #dummy);

END_IF;

#Support."30M2_1_FEg_HBS1" := #tmp_FEg_BGC;

 

 

 

Netzwerk 11: 30M2 Command on off  ***

 

#"30M2"(CMD_ONOFF_CW := #"30M2_2".DRV.LampWP,

        CMD_ONOFF_ACW := #"30M2_1".DRV.LampWP,

        HALT_10 := #tmp_30M2_halt,

        ACK_FLT := "M00 ACK Imp",

        IO_ADDRESS := 60);

 

 

 

Netzwerk 12: 30M3 Command on off

 

#"30M3"(CMD_ONOFF_CW := #"30M3_2".DRV.LampWP,

        CMD_ONOFF_ACW := #"30M3_1".DRV.LampWP,

        HALT_10 := #tmp_30M3_halt,

        ACK_FLT := "M00 ACK Imp",

        IO_ADDRESS := 62);

 

 

 

Netzwerk 13: 30M4 Command on off

 

#"30M4"(CMD_ONOFF_CW := #"30M4_2".DRV.LampWP,

        CMD_ONOFF_ACW := #"30M4_1".DRV.LampWP,

        HALT_10 := #tmp_30M4_halt,

        ACK_FLT := "M00 ACK Imp",

        IO_ADDRESS := 64);

 

 

 

Netzwerk 14: 30M5 Command on off

 

#"30M5"(CMD_ONOFF_CW := #"30M5_2".DRV.LampWP,

        CMD_ONOFF_ACW := #"30M5_1".DRV.LampWP,

        HALT_10 := #tmp_30M5_halt,

        ACK_FLT := "M00 ACK Imp",

        IO_ADDRESS := 66);

 

 

 

Netzwerk 15: 31N1_X axis stacker crane HBS

 

// Execute output stage

#"31N1_X".DRV.MC_Home.Execute := "E03 33N1_Z MiddleCntrl" AND "HMI KEY".P03."31N1_X".F5_Set_Ref_Point AND "M00 ManuCmpltMa run";

#"31N1_X".DRV.MC_Power.StartMode := #"31N1_X".DRV.MC_MoveAbsolute.Direction := 1;

#"31N1_X".DRV.MC_MoveJog.PosCntrl := TRUE;

// Halt axis

#tmp_enable_axis := "HMI KEY".P03."31N1_X".F11_Enable_HP AND "HMI KEY".P03."31N1_X".F12_Enable_WP;

#Support."31N1_X_FEg_Halt_Imp" := #Support."31N1_X_FEg_Halt" AND NOT #tmp_enable_axis;

#Support."31N1_X_FEg_Halt" := #tmp_enable_axis;

 

#"31N1_X"(ENABLE := "A00 31N1_X Enbl",

          HALT_01 := "HMI KEY".P03."31N1_X".F21_HALT_GoToPos OR "DI MAIN GLB".TOF_ManuOff_Pulse.Q OR #Support."31N1_X_FEg_Halt_Imp",

          MCB := "E00 31N1_X MCB",

          START_ABSO := #tmp_enable_axis AND ("M03 XY-GoToPosAbso" AND ("M00 AutoCmpltMa run" OR "M03 RunHomPos" OR "DI MAIN P03".SEQ1.SSM1.S.stepin) OR "HMI KEY".P03."31N1_X".F17_GoToAbsoPos),

          START_RELA := #tmp_enable_axis AND ("M03 31N1_X GoToPosRela" OR "HMI KEY".P03."31N1_X".F18_GoToRelaPos),

          JOG_WP := #MANUAL."31N1_X".CmdExe_slow_fast_WP,

          JOG_HP := #MANUAL."31N1_X".CmdExe_slow_fast_HP,

          ACK_FLT := "M00 ACK FP",

          HOM_MODE := 3,

          AXIS := "+3-31N1_X");

 

 

 

Netzwerk 16: 32N1_Y axis stacker crane HBS

 

// Execute output stage

#"32N1_Y".DRV.MC_Home.Execute := "E03 33N1_Z MiddleCntrl" AND "HMI KEY".P03."32N1_Y".F5_Set_Ref_Point AND "M00 ManuCmpltMa run";

#"32N1_Y".DRV.MC_Power.StartMode := #"32N1_Y".DRV.MC_MoveAbsolute.Direction := 1;

#"32N1_Y".DRV.MC_MoveJog.PosCntrl := TRUE;

// Halt axis

#tmp_enable_axis := "HMI KEY".P03."32N1_Y".F11_Enable_HP AND "HMI KEY".P03."32N1_Y".F12_Enable_WP;

#Support."32N1_Y_FEg_Halt_Imp" := #Support."32N1_Y_FEg_Halt" AND NOT #tmp_enable_axis;

#Support."32N1_Y_FEg_Halt" := #tmp_enable_axis;

 

#"32N1_Y"(ENABLE := "A00 32N1_Y Enbl",

          HALT_01 := "HMI KEY".P03."32N1_Y".F21_HALT_GoToPos OR "DI MAIN GLB".TOF_ManuOff_Pulse.Q OR #Support."31N1_X_FEg_Halt_Imp",

          MCB := "E00 32N1_Y MCB",

          START_ABSO := #tmp_enable_axis AND ("M03 XY-GoToPosAbso" AND ("M00 AutoCmpltMa run" OR "M03 RunHomPos" OR "DI MAIN P03".SEQ1.SSM1.S.stepin) OR "HMI KEY".P03."32N1_Y".F17_GoToAbsoPos),

          START_RELA := #tmp_enable_axis AND ("M03 32N1_Y GoToPosRela" OR "HMI KEY".P03."32N1_Y".F18_GoToRelaPos),

          JOG_WP := #MANUAL."32N1_Y".CmdExe_slow_fast_WP,

          JOG_HP := #MANUAL."32N1_Y".CmdExe_slow_fast_HP,

          ACK_FLT := "M00 ACK FP",

          HOM_MODE := 3,

          AXIS := "+3-32N1_Y");

 

 

 

Netzwerk 17: 33N1_Z axis towing arm stacker crane HBS

 

// Execute output stage

#"33N1_Z".DRV.MC_Home.Execute := "HMI KEY".P03."33N1_Z".F5_Set_Ref_Point AND "M00 ManuCmpltMa run";

#"33N1_Z".DRV.MC_Power.StartMode := #"33N1_Z".DRV.MC_MoveAbsolute.Direction := 1;

#"33N1_Z".DRV.MC_MoveJog.PosCntrl := TRUE;

// Halt axis

#tmp_enable_axis := "HMI KEY".P03."33N1_Z".F11_Enable_HP AND "HMI KEY".P03."33N1_Z".F12_Enable_WP;

#Support."33N1_Z_FEg_Halt_Imp" := #Support."33N1_Z_FEg_Halt" AND NOT #tmp_enable_axis;

#Support."33N1_Z_FEg_Halt" := #tmp_enable_axis;

 

#"33N1_Z"(ENABLE := "A00 33N1_Z Enbl",

          HALT_01 := "HMI KEY".P03."33N1_Z".F21_HALT_GoToPos OR "DI MAIN GLB".TOF_ManuOff_Pulse.Q OR #Support."33N1_Z_FEg_Halt_Imp",

          MCB := "E00 33N1_Z MCB",

          START_ABSO := #tmp_enable_axis AND ("M03 33N1_Z GoToPosAbso" AND ("M00 AutoCmpltMa run" OR "M03 RunHomPos" OR "DI MAIN P03".SEQ1.SSM1.S.stepin) OR "HMI KEY".P03."33N1_Z".F17_GoToAbsoPos),

          START_RELA := #tmp_enable_axis AND ("M03 33N1_Z GoToPosRela" OR "HMI KEY".P03."33N1_Z".F18_GoToRelaPos),

          JOG_WP := #MANUAL."33N1_Z".CmdExe_slow_fast_WP,

          JOG_HP := #MANUAL."33N1_Z".CmdExe_slow_fast_HP,

          ACK_FLT := "M00 ACK FP",

          HOM_MODE := 0,

          AXIS := "+3-33N1_Z");