|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
To go to next HMI image use the touch buttons; some of them are interactive. |
FB21 SET GLB : GLB SET Home position |
|
|
|
Network 1: SET Pre-Setting Last step #SSM(LAST_STEP := 7); |
|
|
|
Network 2: SET jump distributor CASE #SSM.S.stepact OF 0: // Waiting for enable #SSM.S.stepd := #SSM.S.steps;
1: // Query V90_X axis home HomDone "HMI KEY".P01.V90_X.F5_Set_Ref_Point := NOT "DI OUT P01".V90_X.DRV.Support.HomeDone; #SSM.S.stepd := "DI OUT P01".V90_X.DRV.Support.HomeDone AND NOT #SSM.S.DlyOff.Q;
2: // Query V90_Y axis home HomDone "HMI KEY".P01.V90_Y.F5_Set_Ref_Point := NOT "DI OUT P01".V90_Y.DRV.Support.HomeDone; #SSM.S.stepd := "DI OUT P01".V90_Y.DRV.Support.HomeDone AND NOT #SSM.S.DlyOff.Q;
3: // Query V90_Z axis home HomDone "HMI KEY".P01.V90_Z.F5_Set_Ref_Point := NOT "DI OUT P01".V90_Z.DRV.Support.HomeDone; #SSM.S.stepd := "DI OUT P01".V90_Z.DRV.Support.HomeDone AND NOT #SSM.S.DlyOff.Q;
4: // Query MD_12 gripper axis home HomDone "HMI KEY".P01.MD_12.F5_Set_Ref_Point := NOT "DI OUT P01".MD_12.DRV.Support.HomeDone; #SSM.S.stepd := "DI OUT P01".MD_12.DRV.Support.HomeDone AND NOT #SSM.S.DlyOff.Q;
5: // Query MD_34 gripper axis home HomDone "HMI KEY".P01.MD_34.F5_Set_Ref_Point := NOT "DI OUT P01".MD_34.DRV.Support.HomeDone; #SSM.S.stepd := "DI OUT P01".MD_34.DRV.Support.HomeDone AND NOT #SSM.S.DlyOff.Q;
6: // Create puls all slave move to home position "M01 Init" := TRUE; #SSM.S.stepd := NOT #SSM.S.DlyOff.Q;
7: // End home position complet machine IF "DI OUT P01".V90_X.DRV.Support.HomeDone AND "DI OUT P01".V90_X.DRV.Support.HomeDone AND "DI OUT P01".V90_Y.DRV.Support.HomeDone AND "DI OUT P01".V90_Z.DRV.Support.HomeDone AND "DI OUT P01".MD_12.DRV.Support.HomeDone AND "DI OUT P01".MD_34.DRV.Support.HomeDone THEN "M00 OM HOME POS ON" := FALSE; END_IF; END_CASE; |
|
|
|
FB31 SET P01 : P01 SET sequence |
|
|
|
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 IF "DI MAIN P01".SET.SSM.S.stepfc OR "DI MAIN P01".SEQ1.SSM.S.stepfc THEN "DI OUT P01".V90_X.DRV.Support.Cmd_MovAbso := "DI OUT P01".V90_X.DRV.Support.Cmd_MovRela := "DI OUT P01".V90_X.DRV.Support.Cmd_MovJogHP := "DI OUT P01".V90_X.DRV.Support.Cmd_MovJogWP := "DI OUT P01".V90_Y.DRV.Support.Cmd_MovAbso := "DI OUT P01".V90_Y.DRV.Support.Cmd_MovRela := "DI OUT P01".V90_Y.DRV.Support.Cmd_MovJogHP := "DI OUT P01".V90_Y.DRV.Support.Cmd_MovJogWP := "DI OUT P01".V90_Z.DRV.Support.Cmd_MovAbso := "DI OUT P01".V90_Z.DRV.Support.Cmd_MovRela := "DI OUT P01".V90_Z.DRV.Support.Cmd_MovJogHP := "DI OUT P01".V90_Z.DRV.Support.Cmd_MovJogWP := "DI OUT P01".MD_12.DRV.Support.Cmd_MovAbso := "DI OUT P01".MD_12.DRV.Support.Cmd_MovRela := "DI OUT P01".MD_12.DRV.Support.Cmd_MovJogHP := "DI OUT P01".MD_12.DRV.Support.Cmd_MovJogWP := "DI OUT P01".MD_34.DRV.Support.Cmd_MovAbso := "DI OUT P01".MD_34.DRV.Support.Cmd_MovRela := "DI OUT P01".MD_34.DRV.Support.Cmd_MovJogHP := "DI OUT P01".MD_34.DRV.Support.Cmd_MovJogWP := FALSE; END_IF;
#SSM(LAST_STEP := 4); |
|
|
|
Network 3: Step Switching Mechanism (SSM) CASE #SSM.S.stepact OF 0: // Waiting for SSM enable #SSM.S.stepd := #SSM.S.steps;
1: // C01 Lifting gate WP "DI OUT P01".C01.VLV_O.CmdExe_WP := "HMI KEY".P01.C01.F12_Enable_WP; #SSM.S.stepd := "DI OUT P01".C01.FB_WP;
2: // XYZaxis MovAbso towards Pos.1 part control (up/closed) "DI MAIN P01".SEQ1.PosPointer := 1; #tmp_llo := "DI OUT P01".MD_12.NexDrv_DlyOn AND "DI OUT P01".MD_34.NexDrv_DlyOn; "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.XYZGaxisVelo_1, VELO_XYG := "DI OUT P01".MANUAL.XYZGaxisVelo_1, ENABLE_X := NOT "DI OUT P01".V90_X.HALT_01 AND "DI OUT P01".V90_Z.DRV.Support.InPos AND #tmp_llo, ENABLE_Y := NOT "DI OUT P01".V90_Y.HALT_01 AND "DI OUT P01".V90_Z.DRV.Support.InPos AND #tmp_llo, ENABLE_Z := NOT "DI OUT P01".V90_Z.HALT_01 AND #tmp_llo, MOV_TO_POS_X => "DI OUT P01".V90_X.DRV.Support.Cmd_MovAbso, MOV_TO_POS_Y => "DI OUT P01".V90_Y.DRV.Support.Cmd_MovAbso, MOV_TO_POS_Z => "DI OUT P01".V90_Z.DRV.Support.Cmd_MovAbso, PRECISION := 0.1, TARGET_REACHED => #SSM.S.stepd); "DI OUT P01".MD_12.DRV.Support.Cmd_MovAbso := NOT "DI OUT P01".MD_12.HALT_01; "DI OUT P01".MD_34.DRV.Support.Cmd_MovAbso := NOT "DI OUT P01".MD_34.HALT_01;
3: // C01 Lifting gate HP "DI OUT P01".C01.VLV_O.CmdExe_WP := FALSE; #SSM.S.stepd := "DI OUT P01".C01.FB_HP;
4: // Query P01 home position "M01 HomPosRun" := NOT "M01 HomPosIS"; END_CASE; |
|