FB SAFE GLB |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
P02 manual mode |
The light blue frame is hidden since manual mode is active. See e.g. P02 automatic or manual mode |
FB31 SET P01 : SET sequencer P01 |
|
|
|
Network 1: Query home position P01 #"M01 HomPosIS" := "DI OUT P01".Y200.FB_HP AND NOT "E01 S201 VacuOk" AND "DI OUT P01".Y206.FB_HP AND "DI OUT P01".Y212.FB_HP AND "DI OUT P01".C214.FB_HP AND "E01 S120_X SaftyPlace" AND "E01 S120_Y SaftyPlace" AND "E01 S120_Z SaftyPlace" AND "DI OUT P01".MD_R.DRV.Support.InPos AND "DI OUT P01".MD_S.DRV.Support.InPos; |
|
|
|
Network 2: Step Switching Mechanism (SSM) "#SSM(LAST_STEP := 10); |
|
|
|
Network 3: Sequencer case CASE #SSM.S.stepact OF 0: // Waiting for SET start #SSM.S.stepd := #SSM.S.steps;
1: // Query S120_X axis home HomDone "HMI KEY".P01.S120_X.F5_Set_Ref_Point := NOT "DI OUT P01".S120_X.DRV.Support.HomeDone; #SSM.S.stepd := "DI OUT P01".S120_X.DRV.Support.HomeDone AND NOT #SSM.S.DlyOff.Q;
2: // Query S120_Y axis home HomDone "HMI KEY".P01.S120_Y.F5_Set_Ref_Point := NOT "DI OUT P01".S120_Y.DRV.Support.HomeDone; #SSM.S.stepd := "DI OUT P01".S120_Y.DRV.Support.HomeDone AND NOT #SSM.S.DlyOff.Q;
3: // Query S120_Z axis home HomDone "HMI KEY".P01.S120_Z.F5_Set_Ref_Point := NOT "DI OUT P01".S120_Z.DRV.Support.HomeDone; #SSM.S.stepd := "DI OUT P01".S120_Z.DRV.Support.HomeDone AND NOT #SSM.S.DlyOff.Q;
4: // Query MD_R gripper rotary axis home HomDone "HMI KEY".P01.MD_R.F5_Set_Ref_Point := NOT "DI OUT P01".MD_R.DRV.Support.HomeDone; #SSM.S.stepd := "DI OUT P01".MD_R.DRV.Support.HomeDone AND NOT #SSM.S.DlyOff.Q;
5: // Query MD_S gripper swing axis home HomDone "HMI KEY".P01.MD_S.F5_Set_Ref_Point := NOT "DI OUT P01".MD_S.DRV.Support.HomeDone; #SSM.S.stepd := "DI OUT P01".MD_S.DRV.Support.HomeDone AND NOT #SSM.S.DlyOff.Q;
6: // Off switching WPC transport "DI OUT P01"."30M1".DRV.CmdExe_WP := "DI OUT P01"."30M2".DRV.CmdExe_WP := FALSE; #SSM.S.stepd := "DI OUT P01"."30M1".DRV.LampHP AND "DI OUT P01"."30M2".DRV.LampHP;
7: // S120_XYZG MovAbos towards SaftyPos 0 (up) "DI MAIN P01".SEQ1.IndexPos2 := "DI MAIN P01".SEQ1.IndexPos1 := "DI MAIN P01".SEQ1.PosPointer := 0; "FC POS REACHED"(START := #SSM.S.steplo, TARGET_POS := "DI OUT P01".MANUAL.XYZG_TrgtPos["DI MAIN P01".SEQ1.PosPointer], VELO_Z := "DI OUT P01".MANUAL.EposVelo_medium, VELO_XYG := "DI OUT P01".MANUAL.EposVelo_fast, ENABLE_X := NOT "DI OUT P01".S120_X.HALT_01 AND "DI OUT P01".S120_Z.DRV.Support.InPos, ENABLE_Y := NOT "DI OUT P01".S120_Y.HALT_01 AND "DI OUT P01".S120_Z.DRV.Support.InPos, ENABLE_Z := NOT "DI OUT P01".S120_Z.HALT_01, ENABLE_R := NOT "DI OUT P01".MD_R.HALT_01 AND "DI OUT P01".S120_Z.DRV.Support.InPos, ENABLE_S := NOT "DI OUT P01".MD_S.HALT_01 AND "DI OUT P01".S120_Z.DRV.Support.InPos, MOV_TO_POS_X => "DI OUT P01".S120_X.DRV.Support.Cmd_MovAbso, MOV_TO_POS_Y => "DI OUT P01".S120_Y.DRV.Support.Cmd_MovAbso, MOV_TO_POS_Z => "DI OUT P01".S120_Z.DRV.Support.Cmd_MovAbso, MOV_TO_POS_R => "DI OUT P01".MD_R.DRV.Support.Cmd_MovAbso, MOV_TO_POS_S => "DI OUT P01".MD_S.DRV.Support.Cmd_MovAbso, PRECISION := 0.1, TARGET_REACHED => #SSM.S.c1.start); #SSM.S.stepd := #SSM.S.c1.done;
8: // Y200 gripper vacuum HP Query Gripper PartPresent IF "E01 B200 PartPresent" THEN "M01 HomPosRun" := FALSE; #SSM.S."1_FAULT_00_15".%X0 := TRUE; ELSE "DI OUT P01".Y200.VLV_OC.CmdExe_WP := FALSE; "DI OUT P01".Y200.VLV_OC.CmdExe_HP := "HMI KEY".P01.Y200.F11_Enable_HP; #SSM.S.stepd := "DI OUT P01".Y200.FB_HP AND NOT "E01 S201 VacuOk"; END_IF;
9: // Demand puscher HP "DI OUT P01".C214.VLV_OC.CmdExe_WP := FALSE; "DI OUT P01".C214.VLV_OC.CmdExe_HP := "HMI KEY".P01.C214.F11_Enable_HP;
"DI OUT P01".Y204.VLV_O.CmdExe_WP := "DI OUT P01".Y206.VLV_O.CmdExe_WP := "DI OUT P01".Y210.VLV_O.CmdExe_WP := "DI OUT P01".Y212.VLV_O.CmdExe_WP := FALSE;
"DI OUT P01".Y204.VLV_O.CmdExe_HP := "HMI KEY".P01.Y204.F11_Enable_HP; "DI OUT P01".Y206.VLV_O.CmdExe_HP := "HMI KEY".P01.Y206.F11_Enable_HP; "DI OUT P01".Y210.VLV_O.CmdExe_HP := "HMI KEY".P01.Y210.F11_Enable_HP; "DI OUT P01".Y212.VLV_O.CmdExe_HP := "HMI KEY".P01.Y212.F11_Enable_HP; #SSM.S.stepd := "M01 HomPosIS";
10: // Query P01 home position "M01 HomPosRun" := NOT "M01 HomPosIS" OR #SSM.S.steplo; END_CASE; |
|
|
|
FB41 SET P02 : SET sequencer P02 |
|
|
|
Network 1: SET query home position "M01 HomPosIS" := "DI MAIN P01".SEQ1.PosPointer = 1 AND "DI OUT P01".V90_X.DRV.Support.InPos AND "DI OUT P01".V90_Y.DRV.Support.InPos AND "DI OUT P01".V90_Z.DRV.Support.InPos AND "DI OUT P01".MD_12.DRV.Support.InPos AND "DI OUT P01".MD_34.DRV.Support.InPos AND "DI OUT P01".C01.FB_HP; |
|
|
|
Network 2: Reset command move axis #SSM(LAST_STEP := 6); |
|
|
|
Network 3: Sequencer case CASE #SSM.S.stepact OF 0: // Waiting for SET start #SSM.S.stepd := #SSM.S.steps;
1: // Off switching Box Transport "DI OUT P02"."31M1".DRV.CmdExe_WP := "DI OUT P02"."31M2".DRV.CmdExe_WP := "DI OUT P02"."32M1".DRV.CmdExe_HP := "DI OUT P02"."32M1".DRV.CmdExe_WP := FALSE; #SSM.S.stepd := NOT ("DI OUT P02"."31M1".DRV.FdBack OR "DI OUT P02"."31M2".DRV.FdBack OR "DI OUT P02"."32M1".DRV.FdBack);
2: // Off switching all stoppers "DI OUT P02".Y404.VLV_O.CmdExe_WP := "DI OUT P02".Y406.VLV_O.CmdExe_WP := "DI OUT P02".Y410.VLV_O.CmdExe_WP := "DI OUT P02".Y412.VLV_O.CmdExe_WP := FALSE;
"DI OUT P02".Y404.VLV_O.CmdExe_HP := "HMI KEY".P02.Y404.F11_Enable_HP; "DI OUT P02".Y406.VLV_O.CmdExe_HP := "HMI KEY".P02.Y406.F11_Enable_HP; "DI OUT P02".Y410.VLV_O.CmdExe_HP := "HMI KEY".P02.Y410.F11_Enable_HP; "DI OUT P02".Y412.VLV_O.CmdExe_HP := "HMI KEY".P02.Y412.F11_Enable_HP; #SSM.S.stepd := "DI OUT P02".Y404.FB_HP AND "DI OUT P02".Y406.FB_HP AND "DI OUT P02".Y410.FB_HP AND "DI OUT P02".Y412.FB_HP;
3: // M10 Lift motor pick-up conveyor WP "DI OUT P02".M10.DRV.CmdExe_HP := FALSE; "DI OUT P02".M10.DRV.CmdExe_WP := "HMI KEY".P02.M10.F12_Enable_WP; #SSM.S.stepd := "E02 M10 WP";
4: // C400 Cylinder pick-up conveyor WP "DI OUT P02".C400.VLV_OC.CmdExe_HP := FALSE; "DI OUT P02".C400.VLV_OC.CmdExe_WP := "HMI KEY".P02.C400.F12_Enable_WP; #SSM.S.stepd := "DI OUT P02".C400.FB_WP;
5: // C402 Box fixing unit HP "DI OUT P02".C402.VLV_OC.CmdExe_WP := FALSE; "DI OUT P02".C402.VLV_OC.CmdExe_HP := "HMI KEY".P02.C402.F11_Enable_HP; #SSM.S.stepd := "DI OUT P02".C402.FB_HP;
6: // Query home position P02 "M02 HomPosRun" := NOT "M02 HomPosIS" OR #SSM.S.steplo; END_CASE; |
|