FB58 MANU P03 : Manual mode

 

The Stacker Crane unit (STC) consist of, STC x-axis 31N1_X, STC y-axis 32N1_Y, STC tow arm z-axis 33N1_Z-axis, 4 conveyors system 30M2, 30M3, 30M4, 30M5, and 2 High-Bay Storage warehouse. Each conveyor has two light barrier one towards High-Bay Storage 1, and one towards High-Bay Storage 2.

 

Netzwerk 1: 31N1_X axis stacker crane enable

 

IF #ST_MANU AND NOT #SUPPORT_SEQ THEN

// 31N1_X In-Press axis

IF #"31N1_X".ManuVelocity_2 > 100 THEN

#"31N1_X".ManuVelocity_2 := 100;

END_IF;

"DI OUT P03"."31N1_X".DRV.Support.SetVelo := LINT_TO_LREAL(IN := #"31N1_X".ManuVelocity_2)*3.0;

// Jog slow HP (button function)

#"31N1_X".CmdExe_slow_HP := "HMI KEY".P03."31N1_X".F4_Jog_slow_HP;

// Jog slow WP (button function)

#"31N1_X".CmdExe_slow_WP := "HMI KEY".P03."31N1_X".F3_Jog_slow_WP;

END_IF;

// 31N1_X Enabling HP

"HMI KEY".P03."31N1_X".F11_Enable_HP :=

"E03 33N1_Z MiddleCntrl"

AND "DI OUT P03"."31N1_X".DRV.Support.SetVelo > 0.0

AND "DI OUT P03"."31N1_X".DRV.Support.InOperation

AND "DI OUT P03"."31N1_X".DRV.Support.ActPos >= "DI OUT P03"."31N1_X".DRV.Support.SW_EndLim_MinPos

AND NOT "DI OUT P03"."31N1_X".DRV.Support.SW_EndLim_Min AND NOT "DI OUT P03"."31N1_X".drv_com_flt;

// 31N1_X Enabling WP

"HMI KEY".P03."31N1_X".F12_Enable_WP :=

"E03 33N1_Z MiddleCntrl"

AND "DI OUT P03"."31N1_X".DRV.Support.SetVelo > 0.0

AND "DI OUT P03"."31N1_X".DRV.Support.InOperation

AND "DI OUT P03"."31N1_X".DRV.Support.ActPos <= "DI OUT P03"."31N1_X".DRV.Support.SW_EndLim_MaxPos

AND NOT "DI OUT P03"."31N1_X".DRV.Support.SW_EndLim_Max AND NOT "DI OUT P03"."31N1_X".drv_com_flt;

 

 

 

Netzwerk 2: 32N1_Y axis stacker crane enable

 

IF #ST_MANU AND NOT #SUPPORT_SEQ THEN

// 32N1_Y In-Press axis

IF #"32N1_Y".ManuVelocity_2 > 100 THEN

#"32N1_Y".ManuVelocity_2 := 100;

END_IF;

"DI OUT P03"."32N1_Y".DRV.Support.SetVelo := LINT_TO_LREAL(IN := #"32N1_Y".ManuVelocity_2) * 3.0;

// Jog slow HP (button function)

#"32N1_Y".CmdExe_slow_HP := "HMI KEY".P03."32N1_Y".F4_Jog_slow_HP;

// Jog slow WP (button function)

#"32N1_Y".CmdExe_slow_WP := "HMI KEY".P03."32N1_Y".F3_Jog_slow_WP;

END_IF;

// 32N1_Y Enabling HP

"HMI KEY".P03."32N1_Y".F11_Enable_HP :=

"E03 33N1_Z MiddleCntrl"

AND "DI OUT P03"."32N1_Y".DRV.Support.SetVelo > 0.0

AND "DI OUT P03"."32N1_Y".DRV.Support.InOperation

AND "DI OUT P03"."32N1_Y".DRV.Support.ActPos >= "DI OUT P03"."32N1_Y".DRV.Support.SW_EndLim_MinPos

AND NOT "DI OUT P03"."32N1_Y".DRV.Support.SW_EndLim_Min AND NOT "DI OUT P03"."32N1_Y".drv_com_flt;

// 32N1_Y Enabling WP

"HMI KEY".P03."32N1_Y".F12_Enable_WP :=

"E03 33N1_Z MiddleCntrl"

AND "DI OUT P03"."32N1_Y".DRV.Support.SetVelo > 0.0

AND "DI OUT P03"."32N1_Y".DRV.Support.InOperation

AND "DI OUT P03"."32N1_Y".DRV.Support.ActPos <= "DI OUT P03"."32N1_Y".DRV.Support.SW_EndLim_MaxPos

AND NOT "DI OUT P03"."32N1_Y".DRV.Support.SW_EndLim_Max AND NOT "DI OUT P03"."32N1_Y".drv_com_flt;

 

 

 

Netzwerk 3: 33N1_Z axis stacker crane enable

 

IF #ST_MANU AND NOT #SUPPORT_SEQ THEN

// 33N1_Z In-Press axis

IF #"33N1_Z".ManuVelocity_2 > 100 THEN

#"33N1_Z".ManuVelocity_2 := 100;

END_IF;

"DI OUT P03"."33N1_Z".DRV.Support.SetVelo := LINT_TO_LREAL(IN := #"33N1_Z".ManuVelocity_2);

// Jog slow HP (button function)

#"33N1_Z".CmdExe_slow_HP := "HMI KEY".P03."33N1_Z".F4_Jog_slow_HP;

// Jog slow WP (button function)

#"33N1_Z".CmdExe_slow_WP := "HMI KEY".P03."33N1_Z".F3_Jog_slow_WP;

END_IF;

// 33N1_Z Enabling HP

"HMI KEY".P03."33N1_Z".F11_Enable_HP :=

"DI OUT P03"."33N1_Z".DRV.Support.SetVelo <> 0.0

AND "DI OUT P03"."33N1_Z".DRV.Support.InOperation

AND "DI OUT P03"."33N1_Z".DRV.Support.ActPos >= "DI OUT P03"."33N1_Z".DRV.Support.SW_EndLim_MinPos

AND NOT "DI OUT P03"."33N1_Z".DRV.Support.SW_EndLim_Min AND NOT "DI OUT P03"."33N1_Z".drv_com_flt;

// 33N1_Z Enabling WP

"HMI KEY".P03."33N1_Z".F12_Enable_WP :=

"DI OUT P03"."33N1_Z".DRV.Support.SetVelo <> 0.0

AND "DI OUT P03"."33N1_Z".DRV.Support.InOperation

AND "DI OUT P03"."33N1_Z".DRV.Support.ActPos <= "DI OUT P03"."33N1_Z".DRV.Support.SW_EndLim_MaxPos

AND NOT "DI OUT P03"."33N1_Z".DRV.Support.SW_EndLim_Max AND NOT "DI OUT P03"."33N1_Z".drv_com_flt;

// 33N1_Z is moving towards WP

"HMI KEY".P03."33N1_Z".F16_Actor_isMoving_WP := "DI OUT P03".HBS_1.RdyToTakOver_FrmNC AND "DI OUT P03"."33N1_Z".DRV.Support.ActPos > 0.0;

// 30N1_Z is moving towards HP

"HMI KEY".P03."33N1_Z".F15_Actor_isMoving_HP := "DI OUT P03".HBS_2.RdyToTakOver_FrmNC AND "DI OUT P03"."33N1_Z".DRV.Support.ActPos < 0.0;

 

 

 

Netzwerk 4: 30M2 Lift track conveyor enable

 

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

("M00 ManuCmpltMa run" OR "M00 AutoCmpltMa run" AND "E03 GapCntrl HBS2")

AND "M00 EStp ok" AND "E03 30M2 Rdy" AND NOT "DI OUT P03"."30M2".drv_com_flt;

 

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

("M00 ManuCmpltMa run" OR "M00 AutoCmpltMa run" AND "E03 GapCntrl HBS1")

AND "M00 EStp ok" AND "E03 30M2 Rdy" AND NOT "DI OUT P03"."30M2".drv_com_flt;

// Stop moving towards HP

IF NOT "HMI KEY".P03."30M2".F11_Enable_HP THEN

"DI OUT P03"."30M2".DRV.CmdExe_HP := FALSE;

END_IF;

// Stop moving toward WP

IF NOT "HMI KEY".P03."30M2".F12_Enable_WP THEN

"DI OUT P03"."30M2".DRV.CmdExe_WP := FALSE;

END_IF;

// Show actor moving HP on HMI

"HMI KEY".P03."30M2".F15_Actor_isMoving_HP :=

NOT "DI OUT P03"."30M2".DRV.CmdExe_HP

AND "DI OUT P03"."30M2".DRV.LampHP;

// Show actor moving WP on HMI

"HMI KEY".P03."30M2".F16_Actor_isMoving_WP :=

NOT "DI OUT P03"."30M2".DRV.CmdExe_WP

AND "DI OUT P03"."30M2".DRV.LampWP;

 

 

 

Netzwerk 5: 30M3 Lift track conveyor enable

 

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

("M00 ManuCmpltMa run" OR "M00 AutoCmpltMa run" AND "E03 GapCntrl HBS2")

AND "M00 EStp ok" AND "E03 30M3 Rdy" AND NOT "DI OUT P03"."30M3".drv_com_flt;

 

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

("M00 ManuCmpltMa run" OR "M00 AutoCmpltMa run" AND "E03 GapCntrl HBS1")

AND "M00 EStp ok" AND "E03 30M3 Rdy" AND NOT "DI OUT P03"."30M3".drv_com_flt;

// Stop moving towards HP

IF NOT "HMI KEY".P03."30M3".F11_Enable_HP THEN

"DI OUT P03"."30M3".DRV.CmdExe_HP := FALSE;

END_IF;

// Stop moving toward WP

IF NOT "HMI KEY".P03."30M3".F12_Enable_WP THEN

"DI OUT P03"."30M3".DRV.CmdExe_WP := FALSE;

END_IF;

// Show actor moving HP on HMI

"HMI KEY".P03."30M3".F15_Actor_isMoving_HP :=

NOT "DI OUT P03"."30M3".DRV.CmdExe_HP

AND "DI OUT P03"."30M3".DRV.LampHP;

// Show actor moving WP on HMI

"HMI KEY".P03."30M3".F16_Actor_isMoving_WP :=

NOT "DI OUT P03"."30M3".DRV.CmdExe_WP

AND "DI OUT P03"."30M3".DRV.LampWP;

 

 

 

Netzwerk 6: 30M4 Lift track conveyor enable

 

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

("M00 ManuCmpltMa run" OR "M00 AutoCmpltMa run" AND "E03 GapCntrl HBS2")

AND "M00 EStp ok" AND "E03 30M4 Rdy" AND NOT "DI OUT P03"."30M4".drv_com_flt;

 

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

("M00 ManuCmpltMa run" OR "M00 AutoCmpltMa run" AND "E03 GapCntrl HBS1")

AND "M00 EStp ok" AND "E03 30M4 Rdy" AND NOT "DI OUT P03"."30M4".drv_com_flt;

// Stop moving towards HP

IF NOT "HMI KEY".P03."30M4".F11_Enable_HP THEN

"DI OUT P03"."30M4".DRV.CmdExe_HP := FALSE;

END_IF;

// Stop moving toward WP

IF NOT "HMI KEY".P03."30M4".F12_Enable_WP THEN

"DI OUT P03"."30M4".DRV.CmdExe_WP := FALSE;

END_IF;

// Show actor moving HP on HMI

"HMI KEY".P03."30M4".F15_Actor_isMoving_HP :=

NOT "DI OUT P03"."30M4".DRV.CmdExe_HP

AND "DI OUT P03"."30M4".DRV.LampHP;

// Show actor moving WP on HMI

"HMI KEY".P03."30M4".F16_Actor_isMoving_WP :=

NOT "DI OUT P03"."30M4".DRV.CmdExe_WP

AND "DI OUT P03"."30M4".DRV.LampWP;

 

 

 

Netzwerk 7: 30M5 Lift track conveyor enable

 

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

("M00 ManuCmpltMa run" OR "M00 AutoCmpltMa run" AND "E03 GapCntrl HBS2")

AND "M00 EStp ok" AND "E03 30M5 Rdy" AND NOT "DI OUT P03"."30M5".drv_com_flt;

 

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

("M00 ManuCmpltMa run" OR "M00 AutoCmpltMa run" AND "E03 GapCntrl HBS1")

AND "M00 EStp ok" AND "E03 30M5 Rdy" AND NOT "DI OUT P03"."30M5".drv_com_flt;

// Stop moving towards HP

IF NOT "HMI KEY".P03."30M5".F11_Enable_HP THEN

"DI OUT P03"."30M5".DRV.CmdExe_HP := FALSE;

END_IF;

// Stop moving toward WP

IF NOT "HMI KEY".P03."30M5".F12_Enable_WP THEN

"DI OUT P03"."30M5".DRV.CmdExe_WP := FALSE;

END_IF;

// Show actor moving HP on HMI

"HMI KEY".P03."30M5".F15_Actor_isMoving_HP :=

NOT "DI OUT P03"."30M5".DRV.CmdExe_HP

AND "DI OUT P03"."30M5".DRV.LampHP;

// Show actor moving WP on HMI

"HMI KEY".P03."30M5".F16_Actor_isMoving_WP :=

NOT "DI OUT P03"."30M5".DRV.CmdExe_WP

AND "DI OUT P03"."30M5".DRV.LampWP;

 

 

 

Netzwerk 8: Monitoring manual operation ***

 

IF NOT #ST_MANU THEN

RETURN;

ELSIF #MODULE_HP AND NOT #GLB.HomPos_REg THEN

"M03 Init" := TRUE;

END_IF;

#GLB.HomPos_REg := #MODULE_HP;

IF #SUPPORT_SEQ THEN

RETURN;

END_IF;

 

 

 

Netzwerk 9: 32N1_X axis stacker crane execute

 

#"31N1_X".CmdExe_slow_fast_WP :=

"HMI KEY".P03."31N1_X".F12_Enable_WP

AND #"31N1_X".CmdExe_slow_WP

AND NOT "HMI KEY".P03."31N1_X".F21_HALT_GoToPos;

 

#"31N1_X".CmdExe_slow_fast_HP :=

"HMI KEY".P03."31N1_X".F11_Enable_HP

AND #"31N1_X".CmdExe_slow_HP

AND NOT "HMI KEY".P03."31N1_X".F21_HALT_GoToPos;

 

 

 

Netzwerk 10: 32N1_Y axis stacker crane execute

 

#"32N1_Y".CmdExe_slow_fast_WP :=

"HMI KEY".P03."32N1_Y".F12_Enable_WP

AND #"32N1_Y".CmdExe_slow_WP

AND NOT "HMI KEY".P03."32N1_Y".F21_HALT_GoToPos;

 

#"32N1_Y".CmdExe_slow_fast_HP :=

"HMI KEY".P03."32N1_Y".F11_Enable_HP

AND #"32N1_Y".CmdExe_slow_HP

AND NOT "HMI KEY".P03."32N1_Y".F21_HALT_GoToPos;

 

 

 

Netzwerk 11: 33N1_Z axis stacker crane execute

 

#"33N1_Z".CmdExe_slow_fast_WP :=

"HMI KEY".P03."33N1_Z".F12_Enable_WP

AND #"33N1_Z".CmdExe_slow_WP

AND NOT "HMI KEY".P03."33N1_Z".F21_HALT_GoToPos;

 

#"33N1_Z".CmdExe_slow_fast_HP :=

"HMI KEY".P03."33N1_Z".F11_Enable_HP

AND #"33N1_Z".CmdExe_slow_HP

AND NOT "HMI KEY".P03."33N1_Z".F21_HALT_GoToPos;

 

 

 

Netzwerk 12: 30M2 Lift track conveyor execute

 

IF "HMI KEY".P03."30M2".F1_HP AND NOT #GLB."30M2_F1_HP_REg" THEN

"DI OUT P03"."30M2".DRV.CmdExe_WP := FALSE;

"DI OUT P03"."30M2".DRV.CmdExe_HP := NOT "DI OUT P03"."30M2".DRV.CmdExe_HP;

END_IF;

#GLB."30M2_F1_HP_REg" := "HMI KEY".P03."30M2".F1_HP;

 

IF "HMI KEY".P03."30M2".F2_WP AND NOT #GLB."30M2_F2_WP_REg" THEN

"DI OUT P03"."30M2".DRV.CmdExe_HP := FALSE;

"DI OUT P03"."30M2".DRV.CmdExe_WP := NOT "DI OUT P03"."30M2".DRV.CmdExe_WP;

END_IF;

#GLB."30M2_F2_WP_REg" := "HMI KEY".P03."30M2".F2_WP;

 

 

 

Netzwerk 13: 30M3 Lift track conveyor execute

 

IF "HMI KEY".P03."30M3".F1_HP AND NOT #GLB."30M3_F1_HP_REg" THEN

"DI OUT P03"."30M3".DRV.CmdExe_WP := FALSE;

"DI OUT P03"."30M3".DRV.CmdExe_HP := NOT "DI OUT P03"."30M3".DRV.CmdExe_HP;

END_IF;

#GLB."30M3_F1_HP_REg" := "HMI KEY".P03."30M3".F1_HP;

 

IF "HMI KEY".P03."30M3".F2_WP AND NOT #GLB."30M3_F2_WP_REg" THEN

"DI OUT P03"."30M3".DRV.CmdExe_HP := FALSE;

"DI OUT P03"."30M3".DRV.CmdExe_WP := NOT "DI OUT P03"."30M3".DRV.CmdExe_WP;

END_IF;

#GLB."30M3_F2_WP_REg" := "HMI KEY".P03."30M3".F2_WP;

 

 

 

Netzwerk 14: 30M4 Lift track conveyor execute

 

IF "HMI KEY".P03."30M4".F1_HP AND NOT #GLB."30M4_F1_HP_REg" THEN

"DI OUT P03"."30M4".DRV.CmdExe_WP := FALSE;

"DI OUT P03"."30M4".DRV.CmdExe_HP := NOT "DI OUT P03"."30M4".DRV.CmdExe_HP;

IF NOT "HMI KEY".P03."30M4".F11_Enable_HP THEN

"DI OUT P03"."30M4".DRV.CmdExe_HP := FALSE;

END_IF;

END_IF;

#GLB."30M4_F1_HP_REg" := "HMI KEY".P03."30M4".F1_HP;

 

IF "HMI KEY".P03."30M4".F2_WP AND NOT #GLB."30M4_F2_WP_REg" THEN

"DI OUT P03"."30M4".DRV.CmdExe_HP := FALSE;

"DI OUT P03"."30M4".DRV.CmdExe_WP := NOT "DI OUT P03"."30M4".DRV.CmdExe_WP;

END_IF;

#GLB."30M4_F2_WP_REg" := "HMI KEY".P03."30M4".F2_WP;

 

 

 

Netzwerk 15: 30M5 Lift track conveyor execute

 

IF "HMI KEY".P03."30M5".F1_HP AND NOT #GLB."30M5_F1_HP_REg" THEN

"DI OUT P03"."30M5".DRV.CmdExe_WP := FALSE;

"DI OUT P03"."30M5".DRV.CmdExe_HP := NOT "DI OUT P03"."30M5".DRV.CmdExe_HP;

END_IF;

#GLB."30M5_F1_HP_REg" := "HMI KEY".P03."30M5".F1_HP;

 

IF "HMI KEY".P03."30M5".F2_WP AND NOT #GLB."30M5_F2_WP_REg" THEN

"DI OUT P03"."30M5".DRV.CmdExe_HP := FALSE;

"DI OUT P03"."30M5".DRV.CmdExe_WP := NOT "DI OUT P03"."30M5".DRV.CmdExe_WP;

END_IF;

#GLB."30M5_F2_WP_REg" := "HMI KEY".P03."30M5".F2_WP;

 

CEA Software Development

A Zero-Pressure-Conveying is here implicated between 30M4, and 30M5. The bits present the communication interface of all conveyors. Each conveyor has 8-bits going towards HBS1, and 8-bits towards HBS2.

*) info for Zero-Pressure-Conveying

see: FB59 OUT P03

 

Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO