|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FB31 SET P01 : SET Move CAM_DISC towards home position |
|
|
|
Netzwerk 1: Query home position "DI MAIN P01".M00.HomPosIS := NOT ("E01 Part Available Income" OR "E01 Part Available Outcome") AND "DI OUT P01".V90S.DRV.MC_GearIn.InGear AND "DI OUT P01".V90.DRV.Support.LampOFF AND "DI OUT P01".V90M.DRV.Support.HomeDone AND "DI OUT P01".V90SM.DRV.Support.HomeDone AND "DI OUT P01".V90S.DRV.Support.HomeDone AND "E01 V90SM LiBa" AND "E01 V90S LiBa"; |
|
|
|
Netzwerk 2: Define last step #SSM(LAST_STEP := 9); |
|
|
|
Netzwerk 3: Step Switching Mechanism (SSM) CASE #SSM.S.stepact OF 0: // Waiting for SET to start #SSM.S.stepd := #SSM.S.steps;
1: // V90S stop GearIn IF #SSM.S.stepfc THEN "HMI KEY".P01.V90S.F21_HALT := TRUE; "DI OUT P01".V90S.DRV.MC_MoveJog.Velocity := "DI OUT P01".V90SM.DRV.Support.SetVelo := "DI OUT P01".V90M.DRV.Support.SetVelo := 100; // mm/s "DI OUT P01".CAM_DISC.CAM.Support.Cam.Current_Position := #tmp_del_pos; "DI OUT P01".CAM_DISC.CAM.Support.Write_Index := "DI OUT P01".CAM_DISC.CAM.Support.Read_Index := "DI OUT P01".CAM_DISC.CAM.Support.Output_Index := 0; ELSIF NOT ("DI OUT P01".V90S.DRV.MC_GearIn.Busy OR "DI OUT P01".V90S.DRV.MC_GearIn.InGear) THEN #SSM.S.stepd := TRUE; "HMI KEY".P01.V90S.F21_HALT := FALSE; END_IF;
2: // Query part available at notch area #SSM.S.stepd := NOT ("E01 Part Available Income" OR "E01 Part Available Outcome"); #tmp_llo := "HMI KEY".P01.V90M.F12_Enable_WP AND "HMI KEY".P01.V90SM.F12_Enable_WP AND "HMI KEY".P01.V90S.F11_Enable_HP; "DI OUT P01".V90M.DRV.Support.Cmd_MoveJogWP := "DI OUT P01".V90SM.DRV.Support.Cmd_MoveJogWP := "DI OUT P01".V90S.DRV.Support.Cmd_MoveJogHP := NOT #SSM.S.stepd AND #tmp_llo AND #SSM.S.stepa;
3: // Query V90M MC_PositioningAxis Master HomDone #SSM.S.c1.start := "HMI KEY".P01.V90M.F5_Set_Ref_Point := NOT "DI OUT P01".V90M.DRV.Support.HomeDone; #SSM.S.c1.set := 25; #SSM.S.stepd := "DI OUT P01".V90M.DRV.Support.HomeDone AND #SSM.S.c1.done OR "DI OUT P01".V90M.DRV.Support.HomeDone AND NOT (#SSM.S.steplo OR #SSM.S.c1.done);
4: // V90SM MC_PositioningAxis Salve+Master jog towards home position IF "DI OUT P01".V90SM.DRV.Support.ActPos <= 10.0 THEN "DI OUT P01".V90SM.DRV.Support.SetVelo := 0.1; "DI OUT P01".V90SM.DRV.Support.Cmd_MoveJogWP := FALSE; "DI OUT P01".V90SM.DRV.Support.Cmd_MoveJogHP := "HMI KEY".P01.V90SM.F11_Enable_HP AND #SSM.S.stepa; IF "DI OUT P01".V90SM.DRV.Support.ActPos < "DI OUT P01".V90SM.DRV.Support.WindowRange THEN "DI OUT P01".V90SM.DRV.Support.Cmd_MoveJogHP := "DI OUT P01".V90SM.DRV.Support.Cmd_MoveJogWP := FALSE; #SSM.S.stepd := "DI OUT P01".V90SM.DRV.Support.LampOFF AND "E01 V90SM LiBa"; END_IF; ELSIF "DI OUT P01".V90SM.DRV.Support.ActPos > 10.0 THEN "DI OUT P01".V90SM.DRV.Support.Cmd_MoveJogHP := FALSE; "DI OUT P01".V90SM.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90SM.F12_Enable_WP AND #SSM.S.stepa AND NOT #SSM.S.steplo; END_IF;
5: // Query V90SM V90SM MC_PositioningAxis Salve + Master #SSM.S.c1.set := 25; #SSM.S.stepd := "DI OUT P01".V90SM.DRV.Support.HomeDone AND #SSM.S.c1.done OR "DI OUT P01".V90SM.DRV.Support.HomeDone AND NOT (#SSM.S.steplo OR #SSM.S.c1.done); #SSM.S.c1.start := "HMI KEY".P01.V90SM.F5_Set_Ref_Point := NOT #SSM.S.stepd;
6: // V90S MC_SynchronousAxis Slave jog towards home position IF "DI OUT P01".V90S.DRV.Support.ActPos <= 10.0 THEN "DI OUT P01".V90S.DRV.MC_MoveJog.Velocity := 0.1; "DI OUT P01".V90S.DRV.Support.Cmd_MoveJogWP := FALSE; "DI OUT P01".V90S.DRV.Support.Cmd_MoveJogHP := "HMI KEY".P01.V90S.F11_Enable_HP AND #SSM.S.stepa; IF "DI OUT P01".V90S.DRV.Support.ActPos < "DI OUT P01".V90S.DRV.Support.WindowRange THEN "DI OUT P01".V90S.DRV.Support.Cmd_MoveJogHP := "DI OUT P01".V90S.DRV.Support.Cmd_MoveJogWP := FALSE; #SSM.S.stepd := "DI OUT P01".V90S.DRV.Support.LampOFF AND "E01 V90S LiBa"; END_IF; ELSIF "DI OUT P01".V90S.DRV.Support.ActPos > 10.0 THEN "DI OUT P01".V90S.DRV.Support.Cmd_MoveJogHP := FALSE; "DI OUT P01".V90S.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90S.F12_Enable_WP AND #SSM.S.stepa AND NOT #SSM.S.steplo; END_IF;
7: // Query V90S MC_SynchronousAxis Slave #SSM.S.c1.set := 25; #SSM.S.stepd := "DI OUT P01".V90S.DRV.Support.HomeDone AND #SSM.S.c1.done OR "DI OUT P01".V90S.DRV.Support.HomeDone AND NOT (#SSM.S.steplo OR #SSM.S.c1.done); #SSM.S.c1.start := "HMI KEY".P01.V90S.F5_Set_Ref_Point := NOT #SSM.S.stepd;
8: // Drive velocity pre-setting IF #SSM.S.stepfc THEN "DI OUT P01".V90S.DRV.MC_MoveJog.Velocity := "DI OUT P01".V90SM.DRV.Support.SetVelo := "DI OUT P01".V90M.DRV.Support.SetVelo := 0.0; // mm/s #SSM.S.stepd := TRUE; END_IF;
9: // Query P01 home at home position "HMI KEY".P01.V90S.F22_Start_Gearing := NOT "DI OUT P01".V90S.DRV.MC_GearIn.InGear; "DI MAIN P01".M00.HomPosRun := "HMI KEY".P01.V90S.F22_Start_Gearing := NOT "DI MAIN P01".M00.HomPosIS OR #SSM.S.steplo; END_CASE; |
|