using Rs.Framework; using Rs.Motion; using Rs.Motion.Base; using Rs.MotionPlat.Commom; using Rs.MotionPlat.Flow; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Rs.MotionPlat { public partial class DebugMove : BaseFormHeader { private static DebugMove instance; public static DebugMove Instance { get { if (instance == null) instance = new DebugMove(null); return instance; } } public event Action FormCloseEven; public DebugMove(Action act) { InitializeComponent(); FormCloseEven=act; } private void DebugMove_Load(object sender, EventArgs e) { //获取屏幕的宽度 int tWidth = Screen.PrimaryScreen.WorkingArea.Width; int tHeight = Screen.PrimaryScreen.WorkingArea.Height; this.Opacity = 1; this.Location = new Point(tWidth - Width, tHeight - Height); timer1.Enabled = true; HeaderBackgroundColor = Color.FromArgb(192, 0, 192); } private void Move_MouseDown(object sender, MouseEventArgs e) { Button btn = (Button)sender; if (e.Button == MouseButtons.Left) { int dir = btn.Tag.ToString().GetLastChar() == "+" ? 1 : 0; if (chkMoveStep.Checked) { //走步长运动 double.TryParse(txtMoveDist.Text, out double moveStep); ErrorCode errCode = AxisControl.GetAxis(btn.Tag.ToString().SubLastChar()).MoveOffset(dir==1?moveStep:moveStep*-1, tbarSpeed.Value); if(errCode> ErrorCode.Ok) { MessageQueue.Instance.Warn(errCode.ToString()); } } else { ErrorCode errCode = AxisControl.GetAxis(btn.Tag.ToString().SubLastChar()).MoveJog((short)dir, tbarSpeed.Value); if (errCode > ErrorCode.Ok) { MessageQueue.Instance.Warn(errCode.ToString()); } } } } private void Move_MouseUp(object sender, MouseEventArgs e) { Button btn = (Button)sender; if (!chkMoveStep.Checked) { ErrorCode errCode = AxisControl.GetAxis(btn.Tag.ToString().SubLastChar()).Stop(); if (errCode > ErrorCode.Ok) { MessageQueue.Instance.Warn(errCode.ToString()); } } } protected void CommonMoveDist_Click(object sender, EventArgs e) { Label lblNum = (Label)sender; txtMoveDist.Text = lblNum.Text; chkMoveStep.Checked = true; } protected void Calc_Click(object sender, EventArgs e) { chkMoveStep.Checked = true; Label lblNum = (Label)sender; if (lblNum.Text.ToLower() == "c") { txtMoveDist.Text = ""; } else { if (lblNum.Text == ".") { if (txtMoveDist.Text.IndexOf(".") == -1 && txtMoveDist.Text.Length > 0) txtMoveDist.Text += "."; } else { txtMoveDist.Text += lblNum.Text; } } } private void tbarSpeed_ValueChanged(object sender, EventArgs e) { lblSpeed.Text = $"{tbarSpeed.Value}%"; } double axisCurPotion = 0.0; ErrorCode errcode = ErrorCode.Ok; Dictionary dicPosText = new Dictionary(); private void timer1_Tick(object sender, EventArgs e) { List axises = AxisControl.GetAllAxis(); foreach (IAxis axis in axises) { if (axis.Config.EnableEncoder == 1) { errcode = axis.GetPrfPosition(out axisCurPotion); if (errcode > ErrorCode.Ok) return; } else { errcode = axis.GetPrfPosition(out axisCurPotion); if (errcode > ErrorCode.Ok) return; } if (dicPosText.ContainsKey(axis.Config.AxisName)) { dicPosText[axis.Config.AxisName].Text = axisCurPotion.ToString("0.000"); } else { Control txtControl = ControlManager.FindControl(this,$"txt{axis.Config.AxisName}"); if (txtControl != null && txtControl is TextBox) { dicPosText.Add(txtControl.Tag.ToString(), (TextBox)txtControl); ((TextBox)txtControl).Text = axisCurPotion.ToString("0.000"); } } } } private void DebugMove_FormClosed(object sender, FormClosedEventArgs e) { FormCloseEven?.Invoke("DebugMove"); } private void button59_Click(object sender, EventArgs e) { for(int i=1;i<=16;i++) { Ops.On($"测试{i}号穴位真空吸"); } } private void button60_Click(object sender, EventArgs e) { for (int i = 1; i <= 16; i++) { Ops.Off($"测试{i}号穴位真空吸"); } } private void btnNozzleXOpen_Click(object sender, EventArgs e) { for(int i=1;i<=9;i++) { Ops.On($"{i}号吸嘴真空吸电磁阀"); } } private void btnNozzleXClose_Click(object sender, EventArgs e) { for (int i = 1; i <= 9; i++) { Ops.Off($"{i}号吸嘴真空吸电磁阀"); } } private void btnTurnoverVacOpen_Click(object sender, EventArgs e) { for (int i = 1; i <= 32; i++) { Ops.On($"周转盘{i}号穴位真空吸"); } } private void btnTurnoverVacClose_Click(object sender, EventArgs e) { for (int i = 1; i <= 32; i++) { Ops.Off($"周转盘{i}号穴位真空吸"); } } private void btnNozzlePoOpen_Click(object sender, EventArgs e) { for (int i = 1; i <= 9; i++) { Ops.On($"{i}号吸嘴真空破电磁阀"); } } private void btnNozzlePoClose_Click(object sender, EventArgs e) { for (int i = 1; i <= 9; i++) { Ops.Off($"{i}号吸嘴真空破电磁阀"); } } private void button64_Click(object sender, EventArgs e) { for (int i = 1; i <= 32; i++) { Ops.On($"周转盘{i}号穴位真空破"); } } private void button63_Click(object sender, EventArgs e) { for (int i = 1; i <= 32; i++) { Ops.Off($"周转盘{i}号穴位真空破"); } } private void button65_Click(object sender, EventArgs e) { for (int i = 1; i <= 16; i++) { Ops.On($"周转{i}号吸嘴真空吸"); } } private void button66_Click(object sender, EventArgs e) { for (int i = 1; i <= 16; i++) { Ops.Off($"周转{i}号吸嘴真空吸"); } } private void button67_Click(object sender, EventArgs e) { for (int i = 1; i <= 16; i++) { Ops.On($"周转{i}号吸嘴真空破"); } } private void button68_Click(object sender, EventArgs e) { for (int i = 1; i <= 16; i++) { Ops.Off($"周转{i}号吸嘴真空破"); } } private void button61_Click(object sender, EventArgs e) { for (int i = 1; i <= 16; i++) { Ops.On($"测试{i}号穴位真空破"); } } private void button62_Click(object sender, EventArgs e) { for (int i = 1; i <= 16; i++) { Ops.Off($"测试{i}号穴位真空破"); } } public override bool WindowsClose() { return true; } } }