|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
To go to next HMI image use the touch buttons; some of them are interactive. |
FB31 SET P01: Moving to home position |
|
|
|
Netzwerk 1: SET query home position
"M01 HomPosIS" := "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".V90_R.DRV.Support.InPos AND "DI OUT P01".V90_R.DRV.Support.HomeDone AND "DI OUT P01".C01.FB_HP AND "DI OUT P01".C02.FB_HP AND "DI OUT P01".C03.FB_HP; // Pre-Setting "M01 MW32 SEQ1" := "M01 MW38 SEQ1" := 0; |
|
|
|
Netzwerk 2: SET execute home position
#SSM(MAX_STEP := 5); |
|
|
|
Netzwerk 3: Step Switching Mechanism (SSM)
CASE #SSM.S.stepact OF 0: // Waiting for SSM enable #SSM.S.stepd := #SSM.S.steps;
1: // C01 Gripper jaws HP "DI OUT P01".C01.VLV_OC.CmdExe_WP := FALSE; "DI OUT P01".C01.VLV_OC.CmdExe_HP := "HMI KEY".P01.C01.F11_Enable_HP; "DI OUT P01".M01.DRV.CmdExe_WP := "DI OUT P01".M02.DRV.CmdExe_WP := "DI OUT P01".M03.DRV.CmdExe_WP := FALSE; #SSM.S.stepd := "DI OUT P01".C01.FB_HP AND "DI OUT P01".M01.DRV.LampHP AND "DI OUT P01".M02.DRV.LampHP AND "DI OUT P01".M03.DRV.LampHP;
2: // V90_Z MovJog towards TchInPos_0 "DI OUT P01".V90_Z.DRV.Support.SetVelo := "DI OUT P01".MANUAL.XYZRaxisVelo_0; #SSM.S.stepd := ABS_LREAL(IN := "DI OUT P01".V90_Z.DRV.Support.ActPos - "DI OUT P01".MANUAL.V90_Z.TchInPos_0) <= 3.0; IF "DI OUT P01".V90_Z.DRV.Support.ActPos < "DI OUT P01".MANUAL.V90_Z.TchInPos_0 THEN "M01 V90_Z MovJogWP" := NOT (#SSM.S.stepd OR "DI OUT P01".V90_Z.HALT_01); ELSE "M01 V90_Z MovJogHP" := NOT (#SSM.S.stepd OR "DI OUT P01".V90_Z.HALT_01); END_IF;
3: // V90_X MovJog and V90_Y MovJog towards TchInPos_0 "DI OUT P01".V90_X.DRV.Support.SetVelo := "DI OUT P01".V90_Y.DRV.Support.SetVelo := "DI OUT P01".MANUAL.XYZRaxisVelo_0; #tmp_llo_x_axis := ABS_LREAL(IN := "DI OUT P01".V90_X.DRV.Support.ActPos - "DI OUT P01".MANUAL.V90_X.TchInPos_0) <= 8.0; #tmp_llo_y_axis := ABS_LREAL(IN := "DI OUT P01".V90_Y.DRV.Support.ActPos - "DI OUT P01".MANUAL.V90_Y.TchInPos_0) <= 8.0; IF "DI OUT P01".V90_X.DRV.Support.ActPos < "DI OUT P01".MANUAL.V90_X.TchInPos_0 THEN "M01 V90_X MovJogWP" := NOT (#tmp_llo_x_axis OR "DI OUT P01".V90_X.HALT_01); ELSE "M01 V90_X MovJogHP" := NOT (#tmp_llo_x_axis OR "DI OUT P01".V90_X.HALT_01); END_IF; IF "DI OUT P01".V90_Y.DRV.Support.ActPos < "DI OUT P01".MANUAL.V90_Y.TchInPos_0 THEN "M01 V90_Y MovJogWP" := NOT (#tmp_llo_y_axis OR "DI OUT P01".V90_Y.HALT_01); ELSE "M01 V90_Y MovJogHP" := NOT (#tmp_llo_y_axis OR "DI OUT P01".V90_Y.HALT_01); END_IF; #SSM.S.stepd := #tmp_llo_x_axis AND #tmp_llo_y_axis;
4: // V90_R MovAbso towards TchInPos_0, C02 Pusher Nok HP, C03 Pusher HP IF #SSM.S.stepfc THEN "DI OUT P01".V90_R.DRV.Support.SetVelo := "DI OUT P01".MANUAL.XYZRaxisVelo_0; "DI OUT P01".V90_R.DRV.MC_MoveAbsolute.Position := "DI OUT P01".MANUAL.V90_R.TchInPos_0; ELSE "M01 V90_R MovAbso" := NOT "DI OUT P01".V90_R.HALT_01; "DI OUT P01".C02.VLV_OC.CmdExe_WP := "DI OUT P01".C03.VLV_OC.CmdExe_WP := FALSE; "DI OUT P01".C02.VLV_OC.CmdExe_HP := "HMI KEY".P01.C02.F11_Enable_HP; "DI OUT P01".C03.VLV_OC.CmdExe_HP := "HMI KEY".P01.C03.F11_Enable_HP; #SSM.S.stepd := "DI OUT P01".V90_R.DRV.Support.InPos AND "DI OUT P01".C02.FB_HP AND "DI OUT P01".C03.FB_HP; END_IF;
5: // Query P01 home position "M01 HomPosRun" := NOT "M01 HomPosIS"; END_CASE; |
|