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