SEQ336 P01 : Programme Choice 2 process pallet sector 3 |
|
|
|
Network 1: Call actual SSM #SSM(STEP_PLS := "HMI KEY".P01.GLB.F17_StepPls, STEP_MNS := "HMI KEY".P01.GLB.F18_StepMns, GOTO_STEP := FALSE, GOTO_STEP_NO := 0, LAST_STEP := 13); IF "DI MAIN GLB".M00.CmpltMaOFF_Imp THEN #SSM.S.stepin := FALSE; END_IF; "DI MAIN P01".SEQ1.SSM.S.stepin := #SSM.S.stepin; |
|
|
|
Network 2: Pre-Setting "DI MAIN P01".SEQ1.Support.stepd := #SSM.S.stepd; |
|
|
|
Network 3: CASE-Function corresponds to actual SSM CASE #SSM.S.stepact OF 0: // Waiting for SEQ to start "DI MAIN P01".to_P02_Pallet.Request := #SSM.S.stepa AND NOT #Done; #SSM.S.stepd := #SSM.S.steps AND "DI MAIN P02".to_P01_Pallet.ReadyToGo AND "DI MAIN P01".to_P02_Pallet.Request;
1: // V90_A/V90_B MovAbso towards start position, V23Y6/V23Y7 suction valve WP, V28Y12/V28Y34 drive cylinder WP IF #SSM.S.stepfc THEN "DI MAIN P01".MoDA.RunTimeCntr_seq1 := 0; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveCircularRelative.EndPoint[2] := 0.0; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveCircularRelative.CirclePlane := 2; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveCircularRelative.DynamicAdaption := "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.DynamicAdaption := 0; IF "DI OUT P02".M32_Pallet_Data.Workpiece_3.NumOfWorkPieces = 0 THEN "DI MAIN P01".to_P02_Pallet.Done := TRUE; "DI MAIN P01".to_P02_Pallet.Request := FALSE; #SSM.S.stepnew := 13; #SSM.S.stepd := TRUE; RETURN; END_IF; #MaxParts := "DI OUT P02".M32_Pallet_Data.WorkPiece_1.NumOfWorkPieces + "DI OUT P02".M32_Pallet_Data.Workpiece_2.NumOfWorkPieces + "DI OUT P02".M32_Pallet_Data.Workpiece_3.NumOfWorkPieces; #Ref_StartPos.X := "DI OUT P02".M32_Pallet_Data.Pallet_Ref_Pos_X; #Ref_StartPos.Y := "DI OUT P02".M32_Pallet_Data.Pallet_Ref_Pos_Y; "HMI KEY".Message.Index_Position := "HMI KEY".Message.Index_Position + 1; #ExecuteCoodinate(INDEX_POS := "HMI KEY".Message.Index_Position, REF_POS := #Ref_StartPos, PLACES_ON_X := "DI OUT P02".M32_Pallet_Data.Workpiece_3.PalletPlaceOn_X, PLACES_ON_Y := "DI OUT P02".M32_Pallet_Data.Workpiece_3.PalletPlaceOn_Y, GAP_FACTOR_X := "DI OUT P02".M32_Pallet_Data.Workpiece_3.Gap_X, GAP_FACTOR_Y := "DI OUT P02".M32_Pallet_Data.Workpiece_3.Gap_Y, TARGET_POS := #TrgtPos); "DI OUT P01".S210_Z.DRV.Support.SetVelo := "DI OUT P02".M32_Pallet_Data.Workpiece_3.RapidVelo_Z; // mm/s "DI OUT P01".S210_Z.DRV.MC_MoveAbsolute.Position := 200.0; "DI OUT P01".V90_A.DRV.Support.SetVelo := "HMI KEY".SetPointComp_A[0].RapidVelo; "DI OUT P01".V90_A.DRV.MC_MoveAbsolute.Position := "HMI KEY".SetPointComp_A[0].Position; "DI OUT P01".V90_B.DRV.Support.SetVelo := "HMI KEY".SetPointComp_B[0].RapidVelo; // mm/s "DI OUT P01".V90_B.DRV.MC_MoveAbsolute.Position := "HMI KEY".SetPointComp_B[0].Position; "DI OUT P01".V28Y12.VLV_OC.CmdExe_HP := "DI OUT P01".V28Y34.VLV_OC.CmdExe_HP := FALSE; ELSE #tmp_V90_A_inpos := "DI OUT P01".V90_A.DRV.Support.InPos AND NOT #SSM.S.steplo; #tmp_V90_B_inpos := "DI OUT P01".V90_B.DRV.Support.InPos AND NOT #SSM.S.steplo; "DI OUT P01".V23Y6.CmdExe_WP := "HMI KEY".P01.V23Y6.F12_Enable_WP AND NOT #tmp_V90_A_inpos AND #SSM.S.stepa; "DI OUT P01".V23Y7.CmdExe_WP := "HMI KEY".P01.V23Y7.F12_Enable_WP AND NOT #tmp_V90_B_inpos AND #SSM.S.stepa; "DI OUT P01".V28Y12.VLV_OC.CmdExe_WP := "HMI KEY".P01.V28Y12.F12_Enable_WP AND "DI OUT P01".V90_A.DRV.MC_MoveAbsolute.Busy AND #SSM.S.stepa; "DI OUT P01".V28Y34.VLV_OC.CmdExe_WP := "HMI KEY".P01.V28Y34.F12_Enable_WP AND "DI OUT P01".V90_B.DRV.MC_MoveAbsolute.Busy AND #SSM.S.stepa; #SSM.S.stepd := #tmp_V90_A_inpos AND #tmp_V90_B_inpos; "DI OUT P01".V90_A.DRV.Support.Cmd_MoveAbso := "DI OUT P01".V90_A.DRV.Support.Epos_Enabled AND NOT #tmp_V90_A_inpos AND #SSM.S.stepa; "DI OUT P01".V90_B.DRV.Support.Cmd_MoveAbso := "DI OUT P01".V90_B.DRV.Support.Epos_Enabled AND NOT #tmp_V90_B_inpos AND #SSM.S.stepa; "FC POS REACHED"(START := #SSM.S.steplo OR NOT #SSM.S.stepa, TARGET_POS := #TrgtPos, VELO_X := "DI OUT P02".M32_Pallet_Data.Workpiece_3.RapidVelo_X, VELO_Y := "DI OUT P02".M32_Pallet_Data.Workpiece_3.RapidVelo_Y, ENABLE_X := "DI OUT P01".S120_X.DRV.Support.Epos_Enabled, ENABLE_Y := "DI OUT P01".S120_Y.DRV.Support.Epos_Enabled, WINDOW_RANGE := 0.1, MOV_TO_POS_X => "DI OUT P01".S120_X.DRV.Support.Cmd_MoveAbso, MOV_TO_POS_Y => "DI OUT P01".S120_Y.DRV.Support.Cmd_MoveAbso, TARGET_REACHED => #SSM.S.c1.start); #SSM.S.stepd := #SSM.S.c1.done AND "DI OUT P01".S210_Z.DRV.Support.InPos; "DI OUT P01".S210_Z.DRV.Support.Cmd_MoveAbso := "DI OUT P01".S210_Z.DRV.Support.Epos_Enabled AND NOT #SSM.S.stepd AND #SSM.S.stepa; END_IF;
2: // S210_Z MovAbso towards WP (downward) IF #SSM.S.stepfc THEN "DI OUT P01".S210_Z.DRV.Support.SetVelo := "DI OUT P02".M32_Pallet_Data.Workpiece_3.WorkVelo_Z; // mm/s "DI OUT P01".S210_Z.DRV.MC_MoveAbsolute.Position := "DI OUT P02".M32_Pallet_Data.Workpiece_3.WorkPos_Z; ELSE #SSM.S.stepd := "DI OUT P01".S210_Z.DRV.Support.InPos AND NOT #SSM.S.steplo; "DI OUT P01".S210_Z.DRV.Support.Cmd_MoveAbso := "DI OUT P01".S210_Z.DRV.Support.Epos_Enabled AND NOT #SSM.S.stepd AND #SSM.S.stepa; END_IF;
3: // CARTESIAN_3D MoveLinearRelative distance "01_MovRela_ab" y(-11.53) IF #SSM.S.stepfc THEN "DI OUT P01".V28Y12.VLV_OC.CmdExe_WP := "DI OUT P01".V28Y34.VLV_OC.CmdExe_WP := FALSE; "DI OUT P01".V90_A.DRV.Support.SetVelo := "HMI KEY".SetPointComp_A[0].WorkVelo; "DI OUT P01".V90_B.DRV.Support.SetVelo := "HMI KEY".SetPointComp_B[0].WorkVelo * "HMI KEY".SetPointComp_B[0].MixingRatio / "HMI KEY".SetPointComp_A[0].MixingRatio; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Velocity := "DI OUT P02".M32_Pallet_Data.Workpiece_3.Velocity_3D; // mm/s "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Distance[1] := 0.0; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Distance[2] := "DI OUT P02".M32_Pallet_Data.Workpiece_3."01_MovRela_ab".Y; ELSE #SSM.S.stepd := "DI OUT P01".CARTESIAN_3D.DRV.Support.InPos AND NOT #SSM.S.steplo; "DI OUT P01".CARTESIAN_3D.DRV.Support.Cmd_MoveLinearRelative := "DI OUT P01".CARTESIAN_3D.DRV.Support.KINpos_Enabled AND NOT #SSM.S.stepd AND #SSM.S.stepa; // (gasketing on) "DI OUT P01".V90_A.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90_A.F12_Enable_WP AND "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Active AND #SSM.S.stepa; "DI OUT P01".V90_B.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90_B.F12_Enable_WP AND "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Active AND #SSM.S.stepa; "DI OUT P01".V23Y4.CmdExe_WP := "HMI KEY".P01.V23Y4.F12_Enable_WP AND "DI OUT P01".V90_A.DRV.Support.Cmd_MoveJogWP; "DI OUT P01".V23Y5.CmdExe_WP := "HMI KEY".P01.V23Y5.F12_Enable_WP AND "DI OUT P01".V90_B.DRV.Support.Cmd_MoveJogWP; "DI OUT P01".V28Y12.VLV_OC.CmdExe_HP := "HMI KEY".P01.V28Y12.F11_Enable_HP AND #SSM.S.stepa; "DI OUT P01".V28Y34.VLV_OC.CmdExe_HP := "HMI KEY".P01.V28Y34.F11_Enable_HP AND #SSM.S.stepa; END_IF;
4: // CARTESIAN_3D MoveLinearRelative distance "02_MovRela_bc" xy(21.28 7.98) IF #SSM.S.stepfc THEN "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Velocity := "DI OUT P02".M32_Pallet_Data.Workpiece_3.Velocity_3D; // mm/s "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Distance[1] := "DI OUT P02".M32_Pallet_Data.Workpiece_3."02_MovRela_bc".X; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Distance[2] := "DI OUT P02".M32_Pallet_Data.Workpiece_3."02_MovRela_bc".Y; ELSE #SSM.S.stepd := "DI OUT P01".CARTESIAN_3D.DRV.Support.InPos AND NOT #SSM.S.steplo; "DI OUT P01".CARTESIAN_3D.DRV.Support.Cmd_MoveLinearRelative := "DI OUT P01".CARTESIAN_3D.DRV.Support.KINpos_Enabled AND NOT #SSM.S.stepd AND #SSM.S.stepa; // (gasketing on) "DI OUT P01".V90_A.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90_A.F12_Enable_WP AND "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Active AND #SSM.S.stepa; "DI OUT P01".V90_B.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90_B.F12_Enable_WP AND "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Active AND #SSM.S.stepa; "DI OUT P01".V23Y4.CmdExe_WP := "HMI KEY".P01.V23Y4.F12_Enable_WP AND "DI OUT P01".V90_A.DRV.Support.Cmd_MoveJogWP; "DI OUT P01".V23Y5.CmdExe_WP := "HMI KEY".P01.V23Y5.F12_Enable_WP AND "DI OUT P01".V90_B.DRV.Support.Cmd_MoveJogWP; "DI OUT P01".V28Y12.VLV_OC.CmdExe_HP := "HMI KEY".P01.V28Y12.F11_Enable_HP AND #SSM.S.stepa; "DI OUT P01".V28Y34.VLV_OC.CmdExe_HP := "HMI KEY".P01.V28Y34.F11_Enable_HP AND #SSM.S.stepa; END_IF;
5: // CARTECIAN_3D MoveCircularRelative EndPoint "03_MovRela_cd" Xr(28.97 17.73)CirkMode_2=EndPoint+r IF #SSM.S.stepfc THEN "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveCircularRelative.Velocity := "DI OUT P02".M32_Pallet_Data.Workpiece_3.Velocity_3D; // mm/s "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveCircularRelative.EndPoint[1] := "DI OUT P02".M32_Pallet_Data.Workpiece_3."03_MovRela_cd".X; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveCircularRelative.Radius := "DI OUT P02".M32_Pallet_Data.Workpiece_3."03_MovRela_cd".Radius; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveCircularRelative.CircMode := "DI OUT P02".M32_Pallet_Data.Workpiece_3."03_MovRela_cd".CircMode; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveCircularRelative.PathChoice := "DI OUT P02".M32_Pallet_Data.Workpiece_3."03_MovRela_cd".PathChoice; ELSE #SSM.S.stepd := "DI OUT P01".CARTESIAN_3D.DRV.Support.InPos AND NOT #SSM.S.steplo; "DI OUT P01".CARTESIAN_3D.DRV.Support.Cmd_MoveCircularRelative := "DI OUT P01".CARTESIAN_3D.DRV.Support.KINpos_Enabled AND NOT #SSM.S.stepd AND #SSM.S.stepa; // (gasketing on) "DI OUT P01".V90_A.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90_A.F12_Enable_WP AND "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveCircularRelative.Active AND #SSM.S.stepa; "DI OUT P01".V90_B.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90_B.F12_Enable_WP AND "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveCircularRelative.Active AND #SSM.S.stepa; "DI OUT P01".V23Y4.CmdExe_WP := "HMI KEY".P01.V23Y4.F12_Enable_WP AND "DI OUT P01".V90_A.DRV.Support.Cmd_MoveJogWP; "DI OUT P01".V23Y5.CmdExe_WP := "HMI KEY".P01.V23Y5.F12_Enable_WP AND "DI OUT P01".V90_B.DRV.Support.Cmd_MoveJogWP; "DI OUT P01".V28Y12.VLV_OC.CmdExe_HP := "HMI KEY".P01.V28Y12.F11_Enable_HP AND #SSM.S.stepa; "DI OUT P01".V28Y34.VLV_OC.CmdExe_HP := "HMI KEY".P01.V28Y34.F11_Enable_HP AND #SSM.S.stepa; END_IF;
6: // CARTECIAN_3D MoveLinearRelative distance "04_MovRela_de" xy(21.28 -7.98) IF #SSM.S.stepfc THEN "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Velocity := "DI OUT P02".M32_Pallet_Data.Workpiece_3.Velocity_3D; // mm/s "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Distance[1] := "DI OUT P02".M32_Pallet_Data.Workpiece_3."04_MovRela_de".X; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Distance[2] := "DI OUT P02".M32_Pallet_Data.Workpiece_3."04_MovRela_de".Y; ELSE #SSM.S.stepd := "DI OUT P01".CARTESIAN_3D.DRV.Support.InPos AND NOT #SSM.S.steplo; "DI OUT P01".CARTESIAN_3D.DRV.Support.Cmd_MoveLinearRelative := "DI OUT P01".CARTESIAN_3D.DRV.Support.KINpos_Enabled AND NOT #SSM.S.stepd AND #SSM.S.stepa; // (gasketing on) "DI OUT P01".V90_A.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90_A.F12_Enable_WP AND "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Active AND #SSM.S.stepa; "DI OUT P01".V90_B.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90_B.F12_Enable_WP AND "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Active AND #SSM.S.stepa; "DI OUT P01".V23Y4.CmdExe_WP := "HMI KEY".P01.V23Y4.F12_Enable_WP AND "DI OUT P01".V90_A.DRV.Support.Cmd_MoveJogWP; "DI OUT P01".V23Y5.CmdExe_WP := "HMI KEY".P01.V23Y5.F12_Enable_WP AND "DI OUT P01".V90_B.DRV.Support.Cmd_MoveJogWP; "DI OUT P01".V28Y12.VLV_OC.CmdExe_HP := "HMI KEY".P01.V28Y12.F11_Enable_HP AND #SSM.S.stepa; "DI OUT P01".V28Y34.VLV_OC.CmdExe_HP := "HMI KEY".P01.V28Y34.F11_Enable_HP AND #SSM.S.stepa; END_IF;
7: // CARTECIAN_3D MoveLinearRelative distance "05_MovRela_ef" y(70.35) IF #SSM.S.stepfc THEN "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Velocity := "DI OUT P02".M32_Pallet_Data.Workpiece_3.Velocity_3D; // mm/s "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Distance[1] := 0.0; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Distance[2] := "DI OUT P02".M32_Pallet_Data.Workpiece_3."05_MovRela_ef".Y; ELSE #SSM.S.stepd := "DI OUT P01".CARTESIAN_3D.DRV.Support.InPos AND NOT #SSM.S.steplo; "DI OUT P01".CARTESIAN_3D.DRV.Support.Cmd_MoveLinearRelative := "DI OUT P01".CARTESIAN_3D.DRV.Support.KINpos_Enabled AND NOT #SSM.S.stepd AND #SSM.S.stepa; // (gasketing on) "DI OUT P01".V90_A.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90_A.F12_Enable_WP AND "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Active AND #SSM.S.stepa; "DI OUT P01".V90_B.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90_B.F12_Enable_WP AND "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Active AND #SSM.S.stepa; "DI OUT P01".V23Y4.CmdExe_WP := "HMI KEY".P01.V23Y4.F12_Enable_WP AND "DI OUT P01".V90_A.DRV.Support.Cmd_MoveJogWP; "DI OUT P01".V23Y5.CmdExe_WP := "HMI KEY".P01.V23Y5.F12_Enable_WP AND "DI OUT P01".V90_B.DRV.Support.Cmd_MoveJogWP; "DI OUT P01".V28Y12.VLV_OC.CmdExe_HP := "HMI KEY".P01.V28Y12.F11_Enable_HP AND #SSM.S.stepa; "DI OUT P01".V28Y34.VLV_OC.CmdExe_HP := "HMI KEY".P01.V28Y34.F11_Enable_HP AND #SSM.S.stepa; END_IF;
8: // CARTECIAN_3D MoveLinearRelative distance "06_MovRela_fg" xy(-21.28 -7.98) IF #SSM.S.stepfc THEN "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Velocity := "DI OUT P02".M32_Pallet_Data.Workpiece_3.Velocity_3D; // mm/s "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Distance[1] := "DI OUT P02".M32_Pallet_Data.Workpiece_3."06_MovRela_fg".X; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Distance[2] := "DI OUT P02".M32_Pallet_Data.Workpiece_3."06_MovRela_fg".Y; ELSE #SSM.S.stepd := "DI OUT P01".CARTESIAN_3D.DRV.Support.InPos AND NOT #SSM.S.steplo; "DI OUT P01".CARTESIAN_3D.DRV.Support.Cmd_MoveLinearRelative := "DI OUT P01".CARTESIAN_3D.DRV.Support.KINpos_Enabled AND NOT #SSM.S.stepd AND #SSM.S.stepa; // (gasketing on) "DI OUT P01".V90_A.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90_A.F12_Enable_WP AND "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Active AND #SSM.S.stepa; "DI OUT P01".V90_B.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90_B.F12_Enable_WP AND "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Active AND #SSM.S.stepa; "DI OUT P01".V23Y4.CmdExe_WP := "HMI KEY".P01.V23Y4.F12_Enable_WP AND "DI OUT P01".V90_A.DRV.Support.Cmd_MoveJogWP; "DI OUT P01".V23Y5.CmdExe_WP := "HMI KEY".P01.V23Y5.F12_Enable_WP AND "DI OUT P01".V90_B.DRV.Support.Cmd_MoveJogWP; "DI OUT P01".V28Y12.VLV_OC.CmdExe_HP := "HMI KEY".P01.V28Y12.F11_Enable_HP AND #SSM.S.stepa; "DI OUT P01".V28Y34.VLV_OC.CmdExe_HP := "HMI KEY".P01.V28Y34.F11_Enable_HP AND #SSM.S.stepa; END_IF;
9: // CARTECIAN_3D MoveCircularRelative EndPoint "07_MovRela_gh" Xr(-28.97 17.73) CirMod_2=EndPoint+r IF #SSM.S.stepfc THEN "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveCircularRelative.Velocity := "DI OUT P02".M32_Pallet_Data.Workpiece_3.Velocity_3D; // mm/s "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveCircularRelative.EndPoint[1] := "DI OUT P02".M32_Pallet_Data.Workpiece_3."07_MovRela_gh".X; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveCircularRelative.Radius := "DI OUT P02".M32_Pallet_Data.Workpiece_3."07_MovRela_gh".Radius; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveCircularRelative.CircMode := "DI OUT P02".M32_Pallet_Data.Workpiece_3."07_MovRela_gh".CircMode; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveCircularRelative.PathChoice := "DI OUT P02".M32_Pallet_Data.Workpiece_3."07_MovRela_gh".PathChoice; ELSE #SSM.S.stepd := "DI OUT P01".CARTESIAN_3D.DRV.Support.InPos AND NOT #SSM.S.steplo; "DI OUT P01".CARTESIAN_3D.DRV.Support.Cmd_MoveCircularRelative := "DI OUT P01".CARTESIAN_3D.DRV.Support.KINpos_Enabled AND NOT #SSM.S.stepd AND #SSM.S.stepa; // (gasketing on) "DI OUT P01".V90_A.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90_A.F12_Enable_WP AND "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveCircularRelative.Active AND #SSM.S.stepa; "DI OUT P01".V90_B.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90_B.F12_Enable_WP AND "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveCircularRelative.Active AND #SSM.S.stepa; "DI OUT P01".V23Y4.CmdExe_WP := "HMI KEY".P01.V23Y4.F12_Enable_WP AND "DI OUT P01".V90_A.DRV.Support.Cmd_MoveJogWP; "DI OUT P01".V23Y5.CmdExe_WP := "HMI KEY".P01.V23Y5.F12_Enable_WP AND "DI OUT P01".V90_B.DRV.Support.Cmd_MoveJogWP; "DI OUT P01".V28Y12.VLV_OC.CmdExe_HP := "HMI KEY".P01.V28Y12.F11_Enable_HP AND #SSM.S.stepa; "DI OUT P01".V28Y34.VLV_OC.CmdExe_HP := "HMI KEY".P01.V28Y34.F11_Enable_HP AND #SSM.S.stepa; END_IF;
10: // CARTECIAN_3D MoveLinearRelative distance "08_MovRela_hi" xy(-21.28 7.95) IF #SSM.S.stepfc THEN "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Velocity := "DI OUT P02".M32_Pallet_Data.Workpiece_3.Velocity_3D; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Distance[1] := "DI OUT P02".M32_Pallet_Data.Workpiece_3."08_MovRela_hi".X; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Distance[2] := "DI OUT P02".M32_Pallet_Data.Workpiece_3."08_MovRela_hi".Y; ELSE #SSM.S.stepd := "DI OUT P01".CARTESIAN_3D.DRV.Support.InPos AND NOT #SSM.S.steplo; "DI OUT P01".CARTESIAN_3D.DRV.Support.Cmd_MoveLinearRelative := "DI OUT P01".CARTESIAN_3D.DRV.Support.KINpos_Enabled AND NOT #SSM.S.stepd AND #SSM.S.stepa; // (gasketing on) "DI OUT P01".V90_A.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90_A.F12_Enable_WP AND "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Active AND #SSM.S.stepa; "DI OUT P01".V90_B.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90_B.F12_Enable_WP AND "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Active AND #SSM.S.stepa; "DI OUT P01".V23Y4.CmdExe_WP := "HMI KEY".P01.V23Y4.F12_Enable_WP AND "DI OUT P01".V90_A.DRV.Support.Cmd_MoveJogWP; "DI OUT P01".V23Y5.CmdExe_WP := "HMI KEY".P01.V23Y5.F12_Enable_WP AND "DI OUT P01".V90_B.DRV.Support.Cmd_MoveJogWP; "DI OUT P01".V28Y12.VLV_OC.CmdExe_HP := "HMI KEY".P01.V28Y12.F11_Enable_HP AND #SSM.S.stepa; "DI OUT P01".V28Y34.VLV_OC.CmdExe_HP := "HMI KEY".P01.V28Y34.F11_Enable_HP AND #SSM.S.stepa; END_IF;
11: // CARTECIAN_3D MoveLinearRelative distance "14_MovRela_a" y(-58.23) IF #SSM.S.stepfc THEN "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Velocity := "DI OUT P02".M32_Pallet_Data.Workpiece_3.Velocity_3D; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Distance[1] := 0.0; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Distance[2] := "DI OUT P02".M32_Pallet_Data.Workpiece_3."14_MovRela_a".Y; ELSE #SSM.S.stepd := "DI OUT P01".CARTESIAN_3D.DRV.Support.InPos AND NOT #SSM.S.steplo; "DI OUT P01".CARTESIAN_3D.DRV.Support.Cmd_MoveLinearRelative := "DI OUT P01".CARTESIAN_3D.DRV.Support.KINpos_Enabled AND NOT #SSM.S.stepd AND #SSM.S.stepa; // (gasketing on) "DI OUT P01".V90_A.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90_A.F12_Enable_WP AND "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Active AND #SSM.S.stepa; "DI OUT P01".V90_B.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90_B.F12_Enable_WP AND "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Active AND #SSM.S.stepa; "DI OUT P01".V23Y4.CmdExe_WP := "HMI KEY".P01.V23Y4.F12_Enable_WP AND "DI OUT P01".V90_A.DRV.Support.Cmd_MoveJogWP; "DI OUT P01".V23Y5.CmdExe_WP := "HMI KEY".P01.V23Y5.F12_Enable_WP AND "DI OUT P01".V90_B.DRV.Support.Cmd_MoveJogWP; "DI OUT P01".V28Y12.VLV_OC.CmdExe_HP := "HMI KEY".P01.V28Y12.F11_Enable_HP AND #SSM.S.stepa; "DI OUT P01".V28Y34.VLV_OC.CmdExe_HP := "HMI KEY".P01.V28Y34.F11_Enable_HP AND #SSM.S.stepa; END_IF;
12: // Query ending sector 3 if necessary IF #SSM.S.stepfc THEN "DI MAIN P01".M00.ProductCounter.GoodProducts := "DI MAIN P01".M00.ProductCounter.GoodProducts + 1; ELSIF "HMI KEY".Message.Index_Position < #MaxParts THEN #SSM.S.stepnew := 1; ELSE "DI MAIN P01".to_P02_Pallet.Done := TRUE; "DI MAIN P01".to_P02_Pallet.Request := FALSE; END_IF; #SSM.S.stepd := NOT #SSM.S.steplo;
13: // Waiting for P02 to P01 pallet doneACK IF #SSM.S.stepfc THEN "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearAbsolute.Velocity := -1.0; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearAbsolute.Position[1] := #Ref_StartPos.X; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearAbsolute.Position[2] := #Ref_StartPos.Y; "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearAbsolute.Position[3] := 290.0; ELSIF "DI MAIN P02".to_P01_Pallet.DoneACK THEN #SSM.S.c1.start := "DI OUT P01".CARTESIAN_3D.DRV.Support.InPos AND NOT #SSM.S.steplo; "DI MAIN P01".to_P02_Pallet.Done := #Done := #SSM.S.c1.done; "DI OUT P01".CARTESIAN_3D.DRV.Support.Cmd_MoveLinearAbsolute := "DI OUT P01".CARTESIAN_3D.DRV.Support.KINpos_Enabled AND NOT #Done AND #SSM.S.stepa; END_IF; END_CASE; |
|