|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FB32 SEQ1 P03 : P03 sequencer 1 (VMA) |
|
|
|
Netzwerk 1: Step Switching Mechanism (SSM) #STEP_PLS := "HMI KEY".P03.GLB.F17_StepPls; #STEP_MNS := "HMI KEY".P03.GLB.F18_StepMns; #GOTO_STEP := "HMI KEY".P03.GLB.F19_GoToStep; #GOTO_STEP_NO := "HMI KEY".P03.GLB.GoToStep; #LAST_STEP := 17; |
|
|
|
Netzwerk 2: Pre-Setting "M03 RdyToStart" := "M03 HomPosIS"; |
|
|
|
Netzwerk 3: Sequencer 1 active CASE "DI MAIN P03".SEQ1.S.stepact OF 0: // Waiting für SEQ1 enable "M03 SEQ1 Active" := FALSE; IF NOT "M03 RdyToStart" THEN "M00 AutoCmpltMa run" := "M00 InchCmpltMa run" := FALSE; RETURN; ELSE "DI MAIN P03".SEQ1.S.stepd := "DI MAIN P03".SEQ1.S.steps; END_IF;
1: // C01 VMA cylinder WP (close) "M03 SEQ1 Active" := TRUE; "DI OUT P03".C01.VLV_OC.CmdExe_HP := FALSE; "DI OUT P03".C01.VLV_OC.CmdExe_WP := "HMI KEY".P03.C01.F12_Enable_WP; "DI MAIN P03".SEQ1.S.c1.start := "DI OUT P03".C01.FB_WP; "DI MAIN P03".SEQ1.S.c1.set := 10; "DI MAIN P03".SEQ1.S.stepd := "DI MAIN P03".SEQ1.S.c1.done;
2: // S120_M MovAbso towards Pos.0 (90.0°) IF "DI MAIN P03".SEQ1.S.stepfc THEN "DI OUT P03".S120_M.DRV.Support.SetVelo := "DI OUT P03".Manual.S120_M.TchInVelo_3; "DI OUT P03".S120_M.DRV.MC_MoveAbsolute.Position := "DI OUT P03".Manual.S120_M.TchInPos_1; ELSE "DI OUT P03".S120_M.DRV.Support.Cmd_MovAbso := NOT "DI OUT P03".S120_M.HALT_01 AND "DI MAIN P03".SEQ1.S.stepa; "DI MAIN P03".SEQ1.S.stepd := "DI OUT P03".S120_M.DRV.Support.InPos AND NOT "DI MAIN P03".SEQ1.S.steplo; END_IF;
3: // C01 VMA cylinder HP (open) "DI OUT P03".C01.VLV_OC.CmdExe_WP := FALSE; "DI OUT P03".C01.VLV_OC.CmdExe_HP := "HMI KEY".P03.C01.F11_Enable_HP; "DI MAIN P03".SEQ1.S.c2.start := "DI OUT P03".C01.FB_HP; "DI MAIN P03".SEQ1.S.c2.set := 10; "DI MAIN P03".SEQ1.S.stepd := "DI MAIN P03".SEQ1.S.c2.done;
4: // S120_M MovAbso towards Pos.1 (180.0) IF "DI MAIN P03".SEQ1.S.stepfc THEN "DI OUT P03".S120_M.DRV.Support.SetVelo := "DI OUT P03".Manual.S120_M.TchInVelo_1; "DI OUT P03".S120_M.DRV.MC_MoveAbsolute.Position := "DI OUT P03".Manual.S120_M.TchInPos_2; ELSE "DI OUT P03".S120_M.DRV.Support.Cmd_MovAbso := NOT "DI OUT P03".S120_M.HALT_01 AND "DI MAIN P03".SEQ1.S.stepa; "DI MAIN P03".SEQ1.S.stepd := "DI OUT P03".S120_M.DRV.Support.InPos AND NOT "DI MAIN P03".SEQ1.S.steplo; END_IF;
5: // S120_M MovAbso towards Pos.3 (270.0) IF "DI MAIN P03".SEQ1.S.stepfc THEN "DI OUT P03".S120_M.DRV.Support.SetVelo := "DI OUT P03".Manual.S120_M.TchInVelo_1; "DI OUT P03".S120_M.DRV.MC_MoveAbsolute.Position := "DI OUT P03".Manual.S120_M.TchInPos_3; ELSE "DI OUT P03".S120_M.DRV.Support.Cmd_MovAbso := NOT "DI OUT P03".S120_M.HALT_01 AND "DI MAIN P03".SEQ1.S.stepa; "DI MAIN P03".SEQ1.S.stepd := "DI OUT P03".S120_M.DRV.Support.InPos AND NOT "DI MAIN P03".SEQ1.S.steplo; END_IF;
6: // S120_M MovAbso towards Pos.2 (180.0) IF "DI MAIN P03".SEQ1.S.stepfc THEN "DI OUT P03".S120_M.DRV.Support.SetVelo := "DI OUT P03".Manual.S120_M.TchInVelo_3; "DI OUT P03".S120_M.DRV.MC_MoveAbsolute.Position := "DI OUT P03".Manual.S120_M.TchInPos_2; ELSE "DI OUT P03".S120_M.DRV.Support.Cmd_MovAbso := NOT "DI OUT P03".S120_M.HALT_01 AND "DI MAIN P03".SEQ1.S.stepa; "DI MAIN P03".SEQ1.S.stepd := "DI OUT P03".S120_M.DRV.Support.InPos AND NOT "DI MAIN P03".SEQ1.S.steplo; END_IF;
7: // S120_M MovRela distance Pos.3 (180.0 - 270.0) IF "DI MAIN P03".SEQ1.S.stepfc THEN "DI OUT P03".S120_M.DRV.Support.SetVelo := "DI OUT P03".Manual.S120_M.TchInVelo_2; "DI OUT P03".S120_M.DRV.MC_MoveRelative.Distance := - "DI OUT P03".Manual.S120_M.TchInPos_3; "DI OUT P03".S120_M.DRV.Support.SavTrgtPos := "DI OUT P03".S120_M.DRV.Support.ActPos + "DI OUT P03".S120_M.DRV.MC_MoveRelative.Distance; ELSE "DI OUT P03".S120_M.DRV.Support.Cmd_MovRela := NOT "DI OUT P03".S120_M.HALT_01 AND "DI MAIN P03".SEQ1.S.stepa; "DI MAIN P03".SEQ1.S.stepd := "DI OUT P03".S120_M.DRV.Support.InPos AND NOT "DI MAIN P03".SEQ1.S.steplo; END_IF;
8: // C01 VMA cylinder WP (close) "DI OUT P03".C01.VLV_OC.CmdExe_HP := FALSE; "DI OUT P03".C01.VLV_OC.CmdExe_WP := "HMI KEY".P03.C01.F12_Enable_WP; "DI MAIN P03".SEQ1.S.stepd := "DI OUT P03".C01.FB_WP;
9: // S120_M MovRela distance Pos.0 (90.0 -/+ 30.0) IF "DI MAIN P03".SEQ1.S.stepfc THEN "DI OUT P03".S120_M.DRV.Support.SetVelo := "DI OUT P03".Manual.S120_M.TchInVelo_1; IF "DI OUT P03".S120_M.DRV.Support.ActPos >= "DI OUT P03".Manual.S120_M.TchInPos_2 THEN "DI OUT P03".S120_M.DRV.MC_MoveRelative.Distance := - "DI OUT P03".Manual.S120_M.TchInPos_0; ELSE "DI OUT P03".S120_M.DRV.MC_MoveRelative.Distance := "DI OUT P03".Manual.S120_M.TchInPos_0; END_IF; "DI OUT P03".S120_M.DRV.Support.SavTrgtPos := "DI OUT P03".S120_M.DRV.Support.ActPos + "DI OUT P03".S120_M.DRV.MC_MoveRelative.Distance; ELSE "DI OUT P03".S120_M.DRV.Support.Cmd_MovRela := NOT "DI OUT P03".S120_M.HALT_01 AND "DI MAIN P03".SEQ1.S.stepa; "DI MAIN P03".SEQ1.S.stepd := "DI OUT P03".S120_M.DRV.Support.InPos AND NOT "DI MAIN P03".SEQ1.S.steplo; END_IF;
10: // C01 VMA Cylinder HP (open) "DI OUT P03".C01.VLV_OC.CmdExe_WP := FALSE; "DI OUT P03".C01.VLV_OC.CmdExe_HP := "HMI KEY".P03.C01.F11_Enable_HP; "DI MAIN P03".SEQ1.S.stepd := "DI OUT P03".C01.FB_HP;
11: // S120_M MovAbso towards Pos.0 (30.0) IF "DI MAIN P03".SEQ1.S.stepfc THEN "DI OUT P03".S120_M.DRV.Support.SetVelo := "DI OUT P03".Manual.S120_M.TchInVelo_3; "DI OUT P03".S120_M.DRV.MC_MoveAbsolute.Position := "DI OUT P03".Manual.S120_M.TchInPos_0; ELSE "DI OUT P03".S120_M.DRV.Support.Cmd_MovAbso := NOT "DI OUT P03".S120_M.HALT_01 AND "DI MAIN P03".SEQ1.S.stepa; "DI MAIN P03".SEQ1.S.stepd := "DI OUT P03".S120_M.DRV.Support.InPos AND NOT "DI MAIN P03".SEQ1.S.steplo; END_IF;
12: // S120_M MovJogWP towards middle point rough (180.0) IF "DI MAIN P03".SEQ1.S.stepfc THEN "DI OUT P03".S120_M.DRV.Support.SetVelo := "DI OUT P03".Manual.S120_M.TchInVelo_3; "DI OUT P03".S120_M.DRV.Support.SavTrgtPos := "DI OUT P03".S120_M.DRV.Support.SW_EndLim_MaxPos / 2.0; ELSE "DI OUT P03".S120_M.DRV.Support.Cmd_MovJogWP := NOT "DI OUT P03".S120_M.HALT_01 AND "DI MAIN P03".SEQ1.S.stepa; "DI MAIN P03".SEQ1.S.stepd := "DI OUT P03".S120_M.DRV.Support.InPos AND NOT "DI MAIN P03".SEQ1.S.steplo; END_IF;
13: // C01 VMA cylinder WP (close) "DI OUT P03".C01.VLV_OC.CmdExe_HP := FALSE; "DI OUT P03".C01.VLV_OC.CmdExe_WP := "HMI KEY".P03.C01.F12_Enable_WP; "DI MAIN P03".SEQ1.S.stepd := "DI OUT P03".C01.FB_WP;
14: // S120_M MovRela distance Pos.0 (180.0 -/+ 30.0) IF "DI MAIN P03".SEQ1.S.stepfc THEN "DI OUT P03".S120_M.DRV.Support.SetVelo := "DI OUT P03".Manual.S120_M.TchInVelo_2; IF "DI OUT P03".S120_M.DRV.Support.ActPos >= "DI OUT P03".Manual.S120_M.TchInPos_0 THEN "DI OUT P03".S120_M.DRV.MC_MoveRelative.Distance := - "DI OUT P03".Manual.S120_M.TchInPos_0; ELSE "DI OUT P03".S120_M.DRV.MC_MoveRelative.Distance := "DI OUT P03".Manual.S120_M.TchInPos_0; END_IF; "DI OUT P03".S120_M.DRV.Support.SavTrgtPos := "DI OUT P03".S120_M.DRV.Support.ActPos + "DI OUT P03".S120_M.DRV.MC_MoveRelative.Distance; ELSE "DI OUT P03".S120_M.DRV.Support.Cmd_MovRela := NOT "DI OUT P03".S120_M.HALT_01 AND "DI MAIN P03".SEQ1.S.stepa; "DI MAIN P03".SEQ1.S.stepd := "DI OUT P03".S120_M.DRV.Support.InPos AND NOT "DI MAIN P03".SEQ1.S.steplo; END_IF;
15: // C01 VMA cylinder HP (open) "DI OUT P03".C01.VLV_OC.CmdExe_WP := FALSE; "DI OUT P03".C01.VLV_OC.CmdExe_HP := "HMI KEY".P03.C01.F11_Enable_HP; "DI MAIN P03".SEQ1.S.stepd := "DI OUT P03".C01.FB_HP;
16: // S120_M MovJogWP towards middle point exact (180.0) "DI OUT P03".S120_M.DRV.Support.SetVelo := "DI OUT P03".Manual.S120_M.TchInVelo_1; "DI OUT P03".S120_M.DRV.Support.SavTrgtPos := "DI OUT P03".S120_M.DRV.Support.SW_EndLim_MaxPos / 2.0; IF "DI OUT P03".S120_M.DRV.Support.InPos THEN "DI OUT P03".S120_M.DRV.Support.SetVelo := "DI OUT P03".Manual.S120_M.TchInVelo_0; END_IF; "DI OUT P03".S120_M.DRV.Support.Cmd_MovJogWP := NOT "DI OUT P03".S120_M.HALT_01 AND "DI MAIN P03".SEQ1.S.stepa; "DI MAIN P03".SEQ1.S.stepd := "DI OUT P03".S120_M.DRV.Support.ActPos >= "DI OUT P03".S120_M.DRV.Support.SavTrgtPos;
17: // S120_M MovRela distance Pos.1 (180.0 - 90.0) IF "DI MAIN P03".SEQ1.S.stepfc THEN "DI OUT P03".S120_M.DRV.Support.SetVelo := "DI OUT P03".Manual.S120_M.TchInVelo_2; "DI OUT P03".S120_M.DRV.MC_MoveRelative.Distance := "DI OUT P03".Manual.S120_M.TchInPos_1; "DI OUT P03".S120_M.DRV.Support.SavTrgtPos := "DI OUT P03".S120_M.DRV.Support.ActPos + "DI OUT P03".S120_M.DRV.MC_MoveRelative.Distance; ELSE "DI OUT P03".S120_M.DRV.Support.Cmd_MovRela := NOT "DI OUT P03".S120_M.HALT_01 AND "DI MAIN P03".SEQ1.S.stepa; "M03 SEQ1 Done" := "DI OUT P03".S120_M.DRV.Support.InPos AND NOT "DI MAIN P03".SEQ1.S.steplo; END_IF; END_CASE; |
|
To go to next HMI image use the touch buttons; some of them are interactive. |