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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|