FB58 MANU P03 Manual mode

 

The Stacker Crane unit (STC) consist of, STC x-axis G120C_X, STC y-axis G120C_Y, STC tow arm z-axis G120C_Z-axis, 4 conveyors system M302, M303, M304, M305, 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: G120C_X axis stacker crane - enable

IF #ST_MANU AND NOT #SUPPORT_SEQ THEN

    IF "DI MAIN GLB".M00.CmpltMaRun_Imp THEN

        #G120C_X.ManuVelocity_1 := "DI OUT P03".G120C_X.DRV.Support.SetVelo / 3.3; // mm/s

    ELSE

        // Adjust value velocity

        "DI OUT P03".G120C_X.DRV.Support.SetVelo := #G120C_X.ManuVelocity_1 * 3.3; // 100% -> 40 mm/s

        // Jog slow WP (button function)

        #G120C_X.CmdExe_slow_WP := "HMI KEY".P03.G120C_X.F3_Jog_slow_WP;

        // Jog slow HP (button function)

        #G120C_X.CmdExe_slow_HP := "HMI KEY".P03.G120C_X.F4_Jog_slow_HP;

    END_IF;

END_IF;

// Enabling HP

"HMI KEY".P03.G120C_X.F11_Enable_HP :=

"E03 G120C_Z MiddleCntrl"

AND "DI OUT P03".G120C_X.DRV.Support.InOperation

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

AND NOT ("DI OUT P03".G120C_X.DRV.Support.SW_EndLim_Min OR "DI OUT P03".G120C_X.Com_FLT);

// Enabling WP

"HMI KEY".P03.G120C_X.F12_Enable_WP :=

"E03 G120C_Z MiddleCntrl"

AND "DI OUT P03".G120C_X.DRV.Support.InOperation

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

AND NOT ("DI OUT P03".G120C_X.DRV.Support.SW_EndLim_Max OR "DI OUT P03".G120C_X.Com_FLT);

 

 

 

Netzwerk 2: G120C_Y axis stacker crane - enable

IF #ST_MANU AND NOT #SUPPORT_SEQ THEN

    IF "DI MAIN GLB".M00.CmpltMaRun_Imp THEN

        #G120C_Y.ManuVelocity_1 := "DI OUT P03".G120C_Y.DRV.Support.SetVelo / 3.3; // mm/s

    ELSE

        // Adjust value velocity

        "DI OUT P03".G120C_Y.DRV.Support.SetVelo := #G120C_Y.ManuVelocity_1 * 3.3; // 100% -> 40 mm/s

        // Jog slow WP (button function)

        #G120C_Y.CmdExe_slow_WP := "HMI KEY".P03.G120C_Y.F3_Jog_slow_WP;

        // Jog slow HP (button function)

        #G120C_Y.CmdExe_slow_HP := "HMI KEY".P03.G120C_Y.F4_Jog_slow_HP;

    END_IF;

END_IF;

// Enabling HP

"HMI KEY".P03.G120C_Y.F11_Enable_HP :=

"E03 G120C_Z MiddleCntrl"

AND "DI OUT P03".G120C_Y.DRV.Support.InOperation // ready

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

AND NOT ("DI OUT P03".G120C_Y.DRV.Support.SW_EndLim_Min OR "DI OUT P03".G120C_Y.Com_FLT);

// Enabling WP

"HMI KEY".P03.G120C_Y.F12_Enable_WP :=

"E03 G120C_Z MiddleCntrl"

AND "DI OUT P03".G120C_Y.DRV.Support.InOperation // ready

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

AND NOT ("DI OUT P03".G120C_Y.DRV.Support.SW_EndLim_Max OR "DI OUT P03".G120C_Y.Com_FLT);

 

 

 

Netzwerk 3: G120C_Z Stacker crane telescope - enable

IF #ST_MANU AND NOT #SUPPORT_SEQ THEN

    IF "DI MAIN GLB".M00.CmpltMaRun_Imp THEN

        #G120C_Z.ManuVelocity_1 := "DI OUT P03".G120C_Z.DRV.Support.SetVelo / 2.0; // mm/s

    ELSE

        // Adjust value velocity

        "DI OUT P03".G120C_Z.DRV.Support.SetVelo := #G120C_Z.ManuVelocity_1 * 2.0; // 100% -> 40 mm/s

        // Jog slow WP (button function)

        #G120C_Z.CmdExe_slow_WP := "HMI KEY".P03.G120C_Z.F3_Jog_slow_WP;

        // Jog slow HP (button function)

        #G120C_Z.CmdExe_slow_HP := "HMI KEY".P03.G120C_Z.F4_Jog_slow_HP;

    END_IF;

END_IF;

// Enabling HP

"HMI KEY".P03.G120C_Z.F11_Enable_HP :=

"DI OUT P03".G120C_Z.DRV.Support.InOperation // ready

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

AND NOT ("DI OUT P03".G120C_Z.DRV.Support.SW_EndLim_Min OR "DI OUT P03".G120C_Z.Com_FLT);

// Enabling WP

"HMI KEY".P03.G120C_Z.F12_Enable_WP :=

"DI OUT P03".G120C_Z.DRV.Support.InOperation // ready

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

AND NOT ("DI OUT P03".G120C_Z.DRV.Support.SW_EndLim_Max OR "DI OUT P03".G120C_Z.Com_FLT);

// G120C_Z is moving towards WP

"HMI KEY".P03.G120C_Z.F16_Actor_On_WP := "DI OUT P03".HBS1.RdyToTakeIn_FrmNC AND "DI OUT P03".G120C_Z.DRV.Support.ActPos > 0.0;

// 30N1_Z is moving towards HP

"HMI KEY".P03.G120C_Z.F15_Actor_On_HP := "DI OUT P03".HBS2.RdyToTakeIn_FrmNC AND "DI OUT P03".G120C_Z.DRV.Support.ActPos < 0.0;

 

 

 

Netzwerk 4: M302 Lift track conveyor - enable

#tmp_llo_hp := #tmp_llo_wp :=

"DI OUT P03".M302.Com_FLT OR "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q OR "DI MAIN P03".M00.TOF_ModuleOFF_Pulse.Q OR NOT ("E03 M302 Rdy" AND "DI MAIN GLB".M00.GLB_Estop);

 

"HMI KEY".P03.M302.F12_Enable_WP := NOT #tmp_llo_wp;

"HMI KEY".P03.M302.F11_Enable_HP := NOT #tmp_llo_hp;

 

// Motor off switching WP

IF NOT "HMI KEY".P03.M302.F12_Enable_WP OR "HMI KEY".P03.M302.F1_HP THEN

    "DI OUT P03".M302.DRV.ActorJog_WP := FALSE;

END_IF;

// Motor off switching HP

IF NOT "HMI KEY".P03.M302.F11_Enable_HP OR "HMI KEY".P03.M302.F2_WP THEN

    "DI OUT P03".M302.DRV.ActorJog_HP := FALSE;

END_IF;

// Show actor is moving towards HP

"HMI KEY".P03.M302.F15_Actor_On_HP := NOT "DI OUT P03".M302.DRV.ActorJog_HP AND "DI OUT P03".M302.DRV.LampHP;

// Show actor is moving towards WP

"HMI KEY".P03.M302.F16_Actor_On_WP := NOT "DI OUT P03".M302.DRV.ActorJog_WP AND "DI OUT P03".M302.DRV.LampWP;

 

 

 

Netzwerk 5: M303 Lift track conveyor - enable

#tmp_llo_hp := #tmp_llo_wp :=

"DI OUT P03".M303.Com_FLT OR "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q OR "DI MAIN P03".M00.TOF_ModuleOFF_Pulse.Q OR NOT ("E03 M303 Rdy" AND "DI MAIN GLB".M00.GLB_Estop);

 

"HMI KEY".P03.M303.F12_Enable_WP := NOT #tmp_llo_wp;

"HMI KEY".P03.M303.F11_Enable_HP := NOT #tmp_llo_hp;

 

// Motor off switching

IF NOT "HMI KEY".P03.M303.F12_Enable_WP OR "HMI KEY".P03.M303.F1_HP THEN

    "DI OUT P03".M303.DRV.ActorJog_WP := FALSE;

END_IF;

IF NOT "HMI KEY".P03.M303.F11_Enable_HP OR "HMI KEY".P03.M303.F2_WP THEN

    "DI OUT P03".M303.DRV.ActorJog_HP := FALSE;

END_IF;

// Show actor moving towards HP

"HMI KEY".P03.M303.F15_Actor_On_HP := NOT "DI OUT P03".M303.DRV.ActorJog_HP AND "DI OUT P03".M303.DRV.LampHP;

// Show actor moving towards WP

"HMI KEY".P03.M303.F16_Actor_On_WP := NOT "DI OUT P03".M303.DRV.ActorJog_WP AND "DI OUT P03".M303.DRV.LampWP;

 

 

 

Netzwerk 6: M304 Lift track conveyor - enable

#tmp_llo_hp := #tmp_llo_wp :=

"DI OUT P03".M304.Com_FLT OR "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q OR "DI MAIN P03".M00.TOF_ModuleOFF_Pulse.Q OR NOT ("E03 M304 Rdy" AND "DI MAIN GLB".M00.GLB_Estop);

 

"HMI KEY".P03.M304.F12_Enable_WP := NOT #tmp_llo_wp;

"HMI KEY".P03.M304.F11_Enable_HP := NOT #tmp_llo_hp;

 

// Motor off switching

IF NOT "HMI KEY".P03.M304.F12_Enable_WP OR "HMI KEY".P03.M304.F1_HP THEN

    "DI OUT P03".M304.DRV.ActorJog_WP := FALSE;

END_IF;

IF NOT "HMI KEY".P03.M304.F11_Enable_HP OR "HMI KEY".P03.M304.F2_WP THEN

    "DI OUT P03".M304.DRV.ActorJog_HP := FALSE;

END_IF;

// Show actor moving towards HP

"HMI KEY".P03.M304.F15_Actor_On_HP := NOT "DI OUT P03".M304.DRV.ActorJog_HP AND "DI OUT P03".M304.DRV.LampHP;

// Show actor moving towards WP

"HMI KEY".P03.M304.F16_Actor_On_WP := NOT "DI OUT P03".M304.DRV.ActorJog_WP AND "DI OUT P03".M304.DRV.LampWP;

 

 

 

Netzwerk 7: M305 Lift track conveyor - enable

#tmp_llo_hp := #tmp_llo_wp :=

"DI OUT P03".M305.Com_FLT OR "DI MAIN GLB".M00.TOF_CmpltMaOFF_Pulse.Q OR "DI MAIN P03".M00.TOF_ModuleOFF_Pulse.Q OR NOT ("E03 M305 Rdy" AND "DI MAIN GLB".M00.GLB_Estop);

 

"HMI KEY".P03.M305.F12_Enable_WP := NOT #tmp_llo_wp;

"HMI KEY".P03.M305.F11_Enable_HP := NOT #tmp_llo_hp;

 

// Motor off switching

IF NOT "HMI KEY".P03.M305.F12_Enable_WP OR "HMI KEY".P03.M305.F1_HP (*OR "DI MAIN GLB".M00.CmpltMaOFF_Imp*) THEN

    "DI OUT P03".M305.DRV.ActorJog_WP := FALSE;

END_IF;

IF NOT "HMI KEY".P03.M305.F11_Enable_HP OR "HMI KEY".P03.M305.F2_WP (*OR "DI MAIN GLB".M00.CmpltMaOFF_Imp*) THEN

    "DI OUT P03".M305.DRV.ActorJog_HP := FALSE;

END_IF;

// Show actor is moving towards HP

"HMI KEY".P03.M305.F15_Actor_On_HP := NOT "DI OUT P03".M305.DRV.ActorJog_HP AND "DI OUT P03".M305.DRV.LampHP;

// Show actor is moving towards WP

"HMI KEY".P03.M305.F16_Actor_On_WP := NOT "DI OUT P03".M305.DRV.ActorJog_WP AND "DI OUT P03".M305.DRV.LampWP;

 

 

 

Netzwerk 8: Monitoring manual operation ***

IF NOT #ST_MANU THEN

    RETURN;

ELSIF #MODULE_HP AND NOT #Support.HomPos_REg THEN

    "DI MAIN P03".M00.Init := TRUE;

END_IF;

//#Support.HomPos_REg := #MODULE_HP;

"DI MAIN P03".M00.TOF_ModuleOFF_Pulse(IN:=NOT #SUPPORT_SEQ AND #Support.HomPos_REg,

                                      PT := t#500ms);

#Support.HomPos_REg := #MODULE_HP OR #SUPPORT_SEQ;

 

 

 

Netzwerk 9: G120C_X axis stacker crane - execute

#G120C_X.CmdExe_slow_fast_HP :=

"DI OUT P03".G120C_X.DRV.Support.SetVelo > 0 AND

"HMI KEY".P03.G120C_X.F11_Enable_HP AND NOT "HMI KEY".P03.G120C_X.F21_HALT AND #G120C_X.CmdExe_slow_HP;

 

#G120C_X.CmdExe_slow_fast_WP :=

"DI OUT P03".G120C_X.DRV.Support.SetVelo > 0 AND

"HMI KEY".P03.G120C_X.F12_Enable_WP AND NOT "HMI KEY".P03.G120C_X.F21_HALT AND #G120C_X.CmdExe_slow_WP;

 

 

 

Netzwerk 10: G120C_Y axis stacker crane - execute

#G120C_Y.CmdExe_slow_fast_HP :=

"DI OUT P03".G120C_Y.DRV.Support.SetVelo > 0 AND

"HMI KEY".P03.G120C_Y.F11_Enable_HP AND NOT "HMI KEY".P03.G120C_Y.F21_HALT AND #G120C_Y.CmdExe_slow_HP;

 

#G120C_Y.CmdExe_slow_fast_WP :=

"DI OUT P03".G120C_Y.DRV.Support.SetVelo > 0 AND

"HMI KEY".P03.G120C_Y.F12_Enable_WP AND NOT "HMI KEY".P03.G120C_Y.F21_HALT AND #G120C_Y.CmdExe_slow_WP;

 

 

 

Netzwerk 11: G120C_Z Stacker crane towing arm - execute

#G120C_Z.CmdExe_slow_fast_HP :=

"DI OUT P03".G120C_Z.DRV.Support.SetVelo > 0 AND

"HMI KEY".P03.G120C_Z.F11_Enable_HP AND NOT "HMI KEY".P03.G120C_Z.F21_HALT AND #G120C_Z.CmdExe_slow_HP;

 

#G120C_Z.CmdExe_slow_fast_WP :=

"DI OUT P03".G120C_Z.DRV.Support.SetVelo > 0 AND

"HMI KEY".P03.G120C_Z.F12_Enable_WP AND NOT "HMI KEY".P03.G120C_Z.F21_HALT AND #G120C_Z.CmdExe_slow_WP;

 

 

 

Netzwerk 12: M302 Lift track conveyor - execute

#tmp_llo_wp := "HMI KEY".P03.M302.F2_WP XOR "DI OUT P03".M302.DRV.ActorJog_HP;

#tmp_llo_hp := "HMI KEY".P03.M302.F1_HP XOR "DI OUT P03".M302.DRV.ActorJog_WP;

IF #tmp_llo_wp AND NOT #M302.Jog_fast_WP_REg THEN

    "DI OUT P03".M302.DRV.ActorJog_WP := NOT "DI OUT P03".M302.DRV.ActorJog_WP AND "HMI KEY".P03.M302.F12_Enable_WP;

ELSIF #tmp_llo_hp AND NOT #M302.Jog_fast_HP_REg THEN

    "DI OUT P03".M302.DRV.ActorJog_HP := NOT "DI OUT P03".M302.DRV.ActorJog_HP AND "HMI KEY".P03.M302.F11_Enable_HP;

END_IF;

#M302.Jog_fast_WP_REg := #tmp_llo_wp;

#M302.Jog_fast_HP_REg := #tmp_llo_hp;

 

 

 

Netzwerk 13: M303 Lift track conveyor - execute

#tmp_llo_wp := "HMI KEY".P03.M303.F2_WP XOR "DI OUT P03".M303.DRV.ActorJog_HP;

#tmp_llo_hp := "HMI KEY".P03.M303.F1_HP XOR "DI OUT P03".M303.DRV.ActorJog_WP;

IF #tmp_llo_wp AND NOT #M303.Jog_fast_WP_REg THEN

    "DI OUT P03".M303.DRV.ActorJog_WP := NOT "DI OUT P03".M303.DRV.ActorJog_WP AND "HMI KEY".P03.M303.F12_Enable_WP;

ELSIF #tmp_llo_hp AND NOT #M303.Jog_fast_HP_REg THEN

    "DI OUT P03".M303.DRV.ActorJog_HP := NOT "DI OUT P03".M303.DRV.ActorJog_HP AND "HMI KEY".P03.M303.F11_Enable_HP;

END_IF;

#M303.Jog_fast_WP_REg := #tmp_llo_wp;

#M303.Jog_fast_HP_REg := #tmp_llo_hp;

 

 

 

Netzwerk 14: M304 Lift track conveyor - execute

#tmp_llo_wp := "HMI KEY".P03.M304.F2_WP XOR "DI OUT P03".M304.DRV.ActorJog_HP;

#tmp_llo_hp := "HMI KEY".P03.M304.F1_HP XOR "DI OUT P03".M304.DRV.ActorJog_WP;

IF #tmp_llo_wp AND NOT #M304.Jog_fast_WP_REg THEN

    "DI OUT P03".M304.DRV.ActorJog_WP := NOT "DI OUT P03".M304.DRV.ActorJog_WP AND "HMI KEY".P03.M304.F12_Enable_WP;

ELSIF #tmp_llo_hp AND NOT #M304.Jog_fast_HP_REg THEN

    "DI OUT P03".M304.DRV.ActorJog_HP := NOT "DI OUT P03".M304.DRV.ActorJog_HP AND "HMI KEY".P03.M304.F11_Enable_HP;

END_IF;

#M304.Jog_fast_WP_REg := #tmp_llo_wp;

#M304.Jog_fast_HP_REg := #tmp_llo_hp;

 

 

 

Netzwerk 15: M305 Lift track conveyor - execute

#tmp_llo_wp := "HMI KEY".P03.M305.F2_WP XOR "DI OUT P03".M305.DRV.ActorJog_HP;

#tmp_llo_hp := "HMI KEY".P03.M305.F1_HP XOR "DI OUT P03".M305.DRV.ActorJog_WP;

IF #tmp_llo_wp AND NOT #M305.Jog_fast_WP_REg THEN

    "DI OUT P03".M305.DRV.ActorJog_WP := NOT "DI OUT P03".M305.DRV.ActorJog_WP AND "HMI KEY".P03.M305.F12_Enable_WP;

ELSIF #tmp_llo_hp AND NOT #M305.Jog_fast_HP_REg THEN

    "DI OUT P03".M305.DRV.ActorJog_HP := NOT "DI OUT P03".M305.DRV.ActorJog_HP AND "HMI KEY".P03.M305.F11_Enable_HP;

END_IF;

#M305.Jog_fast_WP_REg := #tmp_llo_wp;

#M305.Jog_fast_HP_REg := #tmp_llo_hp;

 

CEA Software Development

A Zero-Pressure-Conveying is here implicated between M304, and M305. 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