From 9133577da00063e911e763e2ff230800247cece7 Mon Sep 17 00:00:00 2001 From: "zhengxuan.zhang" Date: Fri, 20 Sep 2024 17:06:36 +0800 Subject: [PATCH] =?UTF-8?q?#0014=EF=BC=9A=E4=BF=AE=E5=A4=8D=20etalon=20?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E8=BF=9E=E7=BB=AD=E8=BF=90=E5=8A=A8?= =?UTF-8?q?=E8=B6=85=E8=BF=87=E9=98=9F=E5=88=97=EF=BC=8C=E6=9B=B4=E6=8D=A2?= =?UTF-8?q?=E4=BA=86=E5=8F=A6=E4=B8=80=E7=A7=8D=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HexcalMC/Base/DebugDfn.cs | 2 +- HexcalMC/MainFrom.Designer.cs | 52 +- HexcalMC/MainFrom.cs | 2973 +++++++++-------- HexcalMC/Motion/EtalonForm.Designer.cs | 22 +- HexcalMC/Motion/EtalonForm.cs | 1218 ++++--- HexcalMC/Motion/EtalonForm.resx | 3 + HexcalMC/Motion/Motion.Designer.cs | 43 +- HexcalMC/Motion/Motion.cs | 8 +- HexcalMC/bin/x64/Debug/File/Config.ini | 21 +- HexcalMC/bin/x64/Debug/HexcalMC.application | 2 +- HexcalMC/bin/x64/Debug/HexcalMC.exe | Bin 508928 -> 512000 bytes HexcalMC/bin/x64/Debug/HexcalMC.exe.manifest | 4 +- HexcalMC/bin/x64/Debug/HexcalMC.pdb | Bin 452096 -> 456192 bytes .../bin/x64/Debug/app.publish/HexcalMC.exe | Bin 509920 -> 512992 bytes Motion/ACS Motion/ACS Motion.csproj | 2 +- 15 files changed, 2378 insertions(+), 1972 deletions(-) diff --git a/HexcalMC/Base/DebugDfn.cs b/HexcalMC/Base/DebugDfn.cs index 46393d6..3c2e731 100644 --- a/HexcalMC/Base/DebugDfn.cs +++ b/HexcalMC/Base/DebugDfn.cs @@ -73,7 +73,7 @@ namespace HexcalMC.Base SetColor = m_Color; } - string strText = DateTime.Now.ToString("HH:mm:ss.ff") + "--" + str + Environment.NewLine; + string strText = DateTime.Now.ToString("HH:mm:ss.fff") + "--" + str + Environment.NewLine; textBox_Msg.SelectionStart = textBox_Msg.TextLength; if (string.IsNullOrEmpty(str)) SetText(textBox_Msg, str, SetColor, false, 16); diff --git a/HexcalMC/MainFrom.Designer.cs b/HexcalMC/MainFrom.Designer.cs index 60720b0..9149ec4 100644 --- a/HexcalMC/MainFrom.Designer.cs +++ b/HexcalMC/MainFrom.Designer.cs @@ -140,6 +140,8 @@ this.btnEnable = new System.Windows.Forms.Button(); this.btnDisable = new System.Windows.Forms.Button(); this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.rdoTCP = new System.Windows.Forms.RadioButton(); + this.rdoSimu = new System.Windows.Forms.RadioButton(); this.lamp_acs = new HexcalMC.Lamp(); this.txtPort = new System.Windows.Forms.TextBox(); this.txtIP = new System.Windows.Forms.TextBox(); @@ -855,9 +857,9 @@ this.grpSafety.Controls.Add(this.label20); this.grpSafety.Controls.Add(this.label19); this.grpSafety.Controls.Add(this.label17); - this.grpSafety.Location = new System.Drawing.Point(516, 15); + this.grpSafety.Location = new System.Drawing.Point(569, 15); this.grpSafety.Name = "grpSafety"; - this.grpSafety.Size = new System.Drawing.Size(199, 133); + this.grpSafety.Size = new System.Drawing.Size(146, 133); this.grpSafety.TabIndex = 12; this.grpSafety.TabStop = false; this.grpSafety.Text = "安全限位"; @@ -1009,7 +1011,7 @@ this.grpMst.Controls.Add(this.lblAcc0); this.grpMst.Controls.Add(this.lblMoving0); this.grpMst.Controls.Add(this.label13); - this.grpMst.Location = new System.Drawing.Point(332, 15); + this.grpMst.Location = new System.Drawing.Point(381, 15); this.grpMst.Name = "grpMst"; this.grpMst.Size = new System.Drawing.Size(178, 133); this.grpMst.TabIndex = 11; @@ -1188,7 +1190,7 @@ // this.groupBox6.Controls.Add(this.btnEnable); this.groupBox6.Controls.Add(this.btnDisable); - this.groupBox6.Location = new System.Drawing.Point(233, 15); + this.groupBox6.Location = new System.Drawing.Point(283, 15); this.groupBox6.Name = "groupBox6"; this.groupBox6.Size = new System.Drawing.Size(93, 133); this.groupBox6.TabIndex = 10; @@ -1217,6 +1219,8 @@ // // groupBox2 // + this.groupBox2.Controls.Add(this.rdoTCP); + this.groupBox2.Controls.Add(this.rdoSimu); this.groupBox2.Controls.Add(this.lamp_acs); this.groupBox2.Controls.Add(this.txtPort); this.groupBox2.Controls.Add(this.txtIP); @@ -1226,15 +1230,37 @@ this.groupBox2.Controls.Add(this.label1); this.groupBox2.Location = new System.Drawing.Point(14, 15); this.groupBox2.Name = "groupBox2"; - this.groupBox2.Size = new System.Drawing.Size(209, 133); + this.groupBox2.Size = new System.Drawing.Size(263, 133); this.groupBox2.TabIndex = 1; this.groupBox2.TabStop = false; this.groupBox2.Text = "通讯状态"; // + // rdoTCP + // + this.rdoTCP.AutoSize = true; + this.rdoTCP.Checked = true; + this.rdoTCP.Location = new System.Drawing.Point(6, 25); + this.rdoTCP.Name = "rdoTCP"; + this.rdoTCP.Size = new System.Drawing.Size(43, 17); + this.rdoTCP.TabIndex = 32; + this.rdoTCP.TabStop = true; + this.rdoTCP.Text = "TCP"; + this.rdoTCP.UseVisualStyleBackColor = true; + // + // rdoSimu + // + this.rdoSimu.AutoSize = true; + this.rdoSimu.Location = new System.Drawing.Point(6, 48); + this.rdoSimu.Name = "rdoSimu"; + this.rdoSimu.Size = new System.Drawing.Size(64, 17); + this.rdoSimu.TabIndex = 31; + this.rdoSimu.Text = "模拟器"; + this.rdoSimu.UseVisualStyleBackColor = true; + // // lamp_acs // this.lamp_acs.Font = new System.Drawing.Font("宋体", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(134))); - this.lamp_acs.Location = new System.Drawing.Point(57, 50); + this.lamp_acs.Location = new System.Drawing.Point(120, 42); this.lamp_acs.LText = ""; this.lamp_acs.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.lamp_acs.Name = "lamp_acs"; @@ -1245,7 +1271,7 @@ // // txtPort // - this.txtPort.Location = new System.Drawing.Point(103, 52); + this.txtPort.Location = new System.Drawing.Point(166, 44); this.txtPort.Name = "txtPort"; this.txtPort.Size = new System.Drawing.Size(91, 21); this.txtPort.TabIndex = 21; @@ -1253,7 +1279,7 @@ // // txtIP // - this.txtIP.Location = new System.Drawing.Point(103, 29); + this.txtIP.Location = new System.Drawing.Point(166, 21); this.txtIP.Name = "txtIP"; this.txtIP.Size = new System.Drawing.Size(91, 21); this.txtIP.TabIndex = 22; @@ -1261,7 +1287,7 @@ // // btn_ACSStop // - this.btn_ACSStop.Location = new System.Drawing.Point(113, 84); + this.btn_ACSStop.Location = new System.Drawing.Point(176, 76); this.btn_ACSStop.Name = "btn_ACSStop"; this.btn_ACSStop.Size = new System.Drawing.Size(81, 30); this.btn_ACSStop.TabIndex = 20; @@ -1271,7 +1297,7 @@ // // btn_ACSStart // - this.btn_ACSStart.Location = new System.Drawing.Point(18, 84); + this.btn_ACSStart.Location = new System.Drawing.Point(81, 76); this.btn_ACSStart.Name = "btn_ACSStart"; this.btn_ACSStart.Size = new System.Drawing.Size(81, 30); this.btn_ACSStart.TabIndex = 19; @@ -1282,7 +1308,7 @@ // label2 // this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(18, 56); + this.label2.Location = new System.Drawing.Point(81, 48); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(33, 13); this.label2.TabIndex = 17; @@ -1291,7 +1317,7 @@ // label1 // this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(18, 33); + this.label1.Location = new System.Drawing.Point(81, 25); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(71, 13); this.label1.TabIndex = 18; @@ -1497,5 +1523,7 @@ private Telerik.WinControls.UI.RadButtonElement rtb_home; private Telerik.WinControls.UI.RadRibbonBarGroup radRibbonBarGroup9; private Telerik.WinControls.UI.RadButtonElement rtb_etalon; + private System.Windows.Forms.RadioButton rdoTCP; + private System.Windows.Forms.RadioButton rdoSimu; } } diff --git a/HexcalMC/MainFrom.cs b/HexcalMC/MainFrom.cs index 6a4d895..08cfaab 100644 --- a/HexcalMC/MainFrom.cs +++ b/HexcalMC/MainFrom.cs @@ -1,9 +1,4 @@ -using ACS.SPiiPlusNET; -using HexcalMC.Base; -using HexcalMC.Form; -using HexcalMC.Hexcal; -using HexcalMC.Properties; -using System; +using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; @@ -11,1399 +6,1605 @@ using System.Net; using System.Runtime.InteropServices; using System.Threading; using System.Windows.Forms; +using ACS.SPiiPlusNET; +using HexcalMC.Base; +using HexcalMC.Form; +using HexcalMC.Hexcal; +using HexcalMC.Properties; using Telerik.WinControls.UI; using static HexcalMC.EtalonForm; namespace HexcalMC { - //定一个 回家状态枚举,包括 从未回家,正在回家,已经回家 - public enum HomeStates - { - None, //默认状态 - NotHome, //未回家 - Homing, //回家中 - Homed //回家完成 - } + //定一个 回家状态枚举,包括 从未回家,正在回家,已经回家 + public enum HomeStates + { + None, //默认状态 + NotHome, //未回家 + Homing, //回家中 + Homed //回家完成 + , + } - //定义 运动状态枚举,包括 正在运动,运动到位,Jog运动 - public enum MotionStates - { - None, //默认状态 - Moving, //运动中 - InPos, //运动到位 - Jogging //jog中 - } + //定义 运动状态枚举,包括 正在运动,运动到位,Jog运动 + public enum MotionStates + { + None, //默认状态 + Moving, //运动中 + InPos, //运动到位 + Jogging //jog中 + , + } - public partial class MainFrom : RadRibbonForm - { - private readonly List _pointCloud = new List(); //运动中点集合 + public partial class MainFrom : RadRibbonForm + { + private readonly List _pointCloud = new List(); //运动中点集合 - private bool _mBHexcalConnected; + private bool _mBHexcalConnected; - private TcpIpServer _mTcpIpServer; //创建tcpserver,用于接收hexcal传来的指令,并解析传递平台 + private TcpIpServer _mTcpIpServer; //创建tcpserver,用于接收hexcal传来的指令,并解析传递平台 - private int m_nTotalAxis; //定义总轴数 - private Axis[] m_arrAxisList = null; - //定一个运动到位次数的变量和三个方法,开始统计运动到位次数,停止统计运动到位次数,获取运动到位次数 + private int m_nTotalAxis; //定义总轴数 + private Axis[] m_arrAxisList = null; - #region 运动到位次数 + //定一个运动到位次数的变量和三个方法,开始统计运动到位次数,停止统计运动到位次数,获取运动到位次数 + + #region 运动到位次数 - // 记录运动到位次数的变量 - private int m_nInPosCount = 0; - private bool isCounting = false; + // 记录运动到位次数的变量 + private int m_nInPosCount = 0; + private bool isCounting = false; + private bool isInPose = false; //运动到位状态 + + // 开始统计运动到位次数 + public void StartCounting() + { + isCounting = true; + m_nInPosCount = 0; // 重置计数器 + } + + // 停止统计运动到位次数 + public void StopCounting() + { + isCounting = false; + m_nInPosCount = 0; // 重置计数器 + } + + // 获取运动到位次数 + public int GetInPosCount() + { + return m_nInPosCount; + } + + public bool GetIsMoving() + { + return isInPose; + } + #endregion + + public MainFrom() + { + InitializeComponent(); + + // 处理未被捕获的线程异常 + Application.ThreadException += Application_ThreadException; + + // 处理未被捕获的非UI线程异常 + AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; + } + + private void MainFrom_Load(object sender, EventArgs e) + { + FormBorderStyle = FormBorderStyle.FixedSingle; // 设置窗体边框样式为固定大小 + MaximizeBox = false; // 禁用窗体的最大化按钮 + DebugDfn.textBox_Msg = TextBoxMsg; + + //加载配置文件 + LoadConfig(); + _acs = new Api(); //初始化 ACS运动控制类 + + //启动界面刷新 + timer_RefreshUI.Start(); + + Point3D point3D = new Point3D(800, 980, -290); + IsWithinLimit(point3D); - // 开始统计运动到位次数 - public void StartCounting() - { - isCounting = true; - m_nInPosCount = 0; // 重置计数器 } - // 停止统计运动到位次数 - public void StopCounting() - { - isCounting = false; - m_nInPosCount = 0; // 重置计数器 - } - - // 获取运动到位次数 - public int GetInPosCount() - { - return m_nInPosCount; - } - - #endregion - - public MainFrom() - { - InitializeComponent(); - - // 处理未被捕获的线程异常 - Application.ThreadException += Application_ThreadException; - - // 处理未被捕获的非UI线程异常 - AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; - } - - private void MainFrom_Load(object sender, EventArgs e) - { - FormBorderStyle = FormBorderStyle.FixedSingle; // 设置窗体边框样式为固定大小 - MaximizeBox = false; // 禁用窗体的最大化按钮 - DebugDfn.textBox_Msg = TextBoxMsg; - - //加载配置文件 - LoadConfig(); - _acs = new Api(); //初始化 ACS运动控制类 - - //启动界面刷新 - timer_RefreshUI.Start(); - } - - private void MainFrom_Shown(object sender, EventArgs e) //窗体显示准备好接受用户输入时发生 - { - ////启动服务端,用于接收hexcal传来的指令 - //StartServer(); - - //if (_enableAcs) - //{ - // Btn_ACSStart_Click(null, null); //模拟连接运动平台 - //} - } - - private void MainFrom_FormClosed(object sender, FormClosedEventArgs e) - { - MyBase.TraceWriteLine("关闭程序"); - DebugDfn._strEndTime = DateTime.Now.ToString("yyyy.MM.dd HH-mm-ss"); - timer_RefreshUI.Stop(); - - Btn_StopServer_Click(null, null); - Btn_ACSStop_Click(null, null);//关闭ACS - - string copyFileName = DebugDfn.StrDebugSavePath + "\\Debug(" + DebugDfn._strStartTime + " To " + - DebugDfn._strEndTime + ")" + ".txt"; - if (!File.Exists(DebugDfn.StrDebugSavePath)) - { - //创建文件夹 DebugDfn.StrDebugSavePath - Directory.CreateDirectory(DebugDfn.StrDebugSavePath); - } - - File.Copy(DebugDfn.StrDebugFile, copyFileName); - - if (Errors.ErrorWrite != null) - Errors.ErrorWrite.Close(); - if (Errors.OtherWrite != null) - Errors.OtherWrite.Close(); - if (Errors.StatusWrite != null) - Errors.StatusWrite.Close(); - } - - private void LoadConfig() //加载配置文件 - { - //判断配置文件是否存在 - if (!File.Exists(StrConfigFile)) - { - MessageBox.Show("配置文件不存在,请检查配置文件", "异常", MessageBoxButtons.OK, MessageBoxIcon.Error); - return; - } - - MotionSpeed = FileIni.ReadDouble(StrConfigFile, "MOTOR", "MOTION_SPEED"); //运动定位速度 - //正限位 - XMaxstrokesw = FileIni.ReadDouble(StrConfigFile, "MOTOR", "X_MAXSTROKESW"); - YMaxstrokesw = FileIni.ReadDouble(StrConfigFile, "MOTOR", "Y_MAXSTROKESW"); - ZMaxstrokesw = FileIni.ReadDouble(StrConfigFile, "MOTOR", "Z_MAXSTROKESW"); - - //负限位 - XMinstrokesw = FileIni.ReadDouble(StrConfigFile, "MOTOR", "X_MINSTROKESW"); - YMinstrokesw = FileIni.ReadDouble(StrConfigFile, "MOTOR", "Y_MINSTROKESW"); - ZMinstrokesw = FileIni.ReadDouble(StrConfigFile, "MOTOR", "Z_MINSTROKESW"); - - port = FileIni.ReadInt(StrConfigFile, "MOTOR", "Port"); - DebugDfn.AddLogText($"当前监听端口配置为: {port}"); - DebugDfn.AddLogText($"当前运动速度配置为: {MotionSpeed}"); - } - - private void Plot2D(List pointCloud) - { - // 清空画布 - formsPlot1.Plot.Clear(); - - //pointCloud 是否为空 - if (pointCloud.Count <= 0) - { - return; - } - - List dataX = new List(); - List dataY = new List(); - - foreach (Point3D point3D in pointCloud) - { - dataX.Add(point3D.X); - dataY.Add(point3D.Y); - } - - formsPlot1.Plot.AddScatter(dataX.ToArray(), dataY.ToArray()); - formsPlot1.Refresh(); - } - - #region 运动平台变量区 - - public Api _acs; - - private const int MaxUiLimitCnt = 24; - private int _mNTotalAxis; - - //private int _mNTotalBuffer = 0; - //private Axis[] _mArrAxisList = null; - public bool _mAcsConnected; //ACS通讯状态 - - // For update values - private MotorStates _mNMotorState; //运动状态 - - private ProgramStates _mNProgramState; //程序状态 - private object _mObjReadVar; - private Array _mArrReadVector; - private double _mLfRPos, _mLfFPos, _mLfPe, _mLfFvel; //参考位置,反馈位置 位置误差 反馈速度 double类型 - private int _mNValues, _mNOutputState; - - private Label[] _mLblLeftLimit; //左限位 - private Label[] _mLblRightLimit; //右限位 - private Label[] _mlblMoving; //运动中 - private Label[] _mlblAcc; //加速中 - private Label[] _mlblInPos; //轴就位 - private Label[] _mlblEnable; //使能 - private bool[] axisEnabled = new bool[MaxUiLimitCnt]; //轴使能状态 - public bool totalAxisEnabled = false; - - private HomeStates _homeStates; //回家状态 - private MotionStates _currentMotionState; //当前运动状态 - private MotionStates _currentMotorStateLast; - private readonly int _motionTimeout = 50000; //定义运动超时时间 - - //定义启用的轴,后面运动时会使用 - public static Axis[] UseAxis = - { Axis.ACSC_AXIS_1, Axis.ACSC_AXIS_0, Axis.ACSC_AXIS_8, Axis.ACSC_NONE }; - - //定义 XYZ三个轴的左右行程范围 - public string StrConfigFile = Application.StartupPath + "\\File\\config.ini"; - - public static double MotionSpeed = 60; - public static double XMaxstrokesw = 730; //正限位 - public static double YMaxstrokesw = 1000; - public static double ZMaxstrokesw = 5; - - public static double XMinstrokesw = -30; //负限位 - public static double YMinstrokesw = -10; - public static double ZMinstrokesw = -280; - public static int port = 1234; //默认监听端口 - - //定义一个3D点,存储当前平台实时位置 - public Point3D _mPoint3D; - - #endregion 运动平台变量区 - - #region hexcal软件交互 - - private void StartServer() - { - // 对_mTcpIpServer增加判断是否已经启动且存在设备连接 - if (_mTcpIpServer != null && _mTcpIpServer.ConnectStatus) - { - //弹窗提醒已经启动 - MyBase.TraceWriteLine("TCP服务端已经启动,请勿重复启动"); - MessageBox.Show("TCP服务端已经启动,请勿重复启动", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); - return; - } - - //启动服务器,并获取数据,解析 - _mTcpIpServer = new TcpIpServer(IPAddress.Any.ToString(), Convert.ToString(port)); - _mTcpIpServer.UseMode = 1; //设置通讯返回数据流格式 - try - { - //启动监听 - if (_mTcpIpServer.StartListen()) - { - //绑定两个事件 OnRaisedStatus 和OnRaisedMessage - _mTcpIpServer.OnRaisedMessage += ReceiveMessage; //接收消息回调 - _mTcpIpServer.OnRaisedStatus += ReceiveStatus; //连接状态 - _mTcpIpServer.DataReceived += ReceiveByte; - } - else - { - MessageBox.Show("TCP服务端启动失败,请检查网络连接,重新打开软件", "异常", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - catch (Exception ex) - { - DebugDfn.AddLogText("启动TCP服务端异常" + ex); - } - } - - private void ReceiveByte(object sender, byte[] e) - { - DebugDfn.AddLogText("接收到" + BitConverter.ToString(e)); - } - - private void ReceiveMessage(string clientIp, string msg) //接收的内容 - { - //打印ClientIP 和 Msg - DebugDfn.AddLogText("接收到" + clientIp + ": " + msg); - - //根据源地址的不同,执行不同处理 - string sourceIp = clientIp.Split(':')[0]; - switch (sourceIp) - { - case "100.0.0.1": - ParseHexcalMsg(msg); - break; - - case "100.0.0.2": - ParseHexcalMsg(msg); - break; - - default: - DebugDfn.AddLogText("未知来源,没有应答"); - break; - } - } - - public static string ConstructString(string variableName, double[] values) - { - string result = variableName + " "; - for (int i = 0; i < values.Length; i++) - { - result += values[i].ToString("F6"); - if (i < values.Length - 1) - { - result += ", "; - } - } - - return result; - } - - public static string ConstructPosString(Point3D point) - { - double[] values = { point.X, point.Y, point.Z, 0.0, 0.0, 0.0, 0.0 }; - return ConstructString("POS", values); - } - - public static Point3D ParsePoint3DFromCommand(string input) - { - string[] parts = input.Split(' ')[1].Split(','); - if (parts.Length >= 3) - { - double x = double.Parse(parts[0]); - double y = double.Parse(parts[1]); - double z = double.Parse(parts[2]); - return new Point3D(x, y, z); - } - - throw new ArgumentException("输入字符串格式不正确。"); - } - - private void CheckPlatformStatus() - { - //检查平台状态,如果运动中,返回BUSY,否则返回READY - if (_currentMotionState == MotionStates.None || _currentMotionState == MotionStates.InPos) //默认或到位 - { - SendMsgToHexcal("READY"); - } - else - { - SendMsgToHexcal("BUSY"); - } - } - - private void ParseHexcalMsg(string msg) //编写一个Hexcal协议解析函数 - { - //DebugDfn.AddLogText("正在解析 " + msg); - - //去除Msg中\r\n - msg = msg.Replace("\r\n", ""); - - //判断是否含有故障ERROR字样 - if (msg.Contains("ERROR")) - { - //弹窗提醒 - MessageBox.Show("CMM错误", msg, MessageBoxButtons.OK, MessageBoxIcon.Error); - return; - } - - if (msg.Contains("\x02") || msg.Contains("\u0002")) - { - //DebugDfn.AddLogText("接收到STX,开始解析"); - CheckPlatformStatus(); - } - else if (msg.Contains("\x03") || msg.Contains("\u0003")) - { - CheckPlatformStatus(); - } - //else if (msg.Contains("^B")) //查询状态, READY或BUSY - //{ - // checkPlatformStatus(); - //} - else if (msg.Contains("CMMTYP")) //测量机类型 - { - SendMsgToHexcal("CMMTYP MA 19617, FDC V15.00, 10 8 3 , 0"); - } - else if (msg.Contains("VERSION")) //版本号 - { - SendMsgToHexcal("00-000-000-00000 FDC V51.04.0000 DATE: 12/21/22 TIME: 12:50:55"); - } - else if (msg.Contains("SHOW MAXSTROKESW")) //最大行程,根据实际情况填写 - { - //MAXSTROKESW 233.200000,346.500000,15.100000,0.000000,0.000000,0.000000,0.000000 - - double[] values = { XMaxstrokesw, YMaxstrokesw, ZMaxstrokesw, 0.0, 0.0, 0.0, 0.0 }; - string resultString = ConstructString("MAXSTROKESW", values); - SendMsgToHexcal(resultString); - } - else if (msg.Contains("SHOW MINSTROKESW")) //最小行程,根据实际情况填写 - { - //MINSTROKESW -68.800000,-55.500000,-286.900000,0.000000,0.000000,0.000000,0.000000 - - double[] values = { XMinstrokesw, YMinstrokesw, ZMinstrokesw, 0.0, 0.0, 0.0, 0.0 }; - string resultString = ConstructString("MINSTROKESW", values); - SendMsgToHexcal(resultString); - } - else if (msg.Contains("SHOW MAXVEL")) //最大速度 - { - SendMsgToHexcal("MAXVEL 300.000000,300.000000,300.000000,0.000000,0.000000,0.000000,0.000000,0.000000"); - } - else if (msg.Contains("SHOW MAXACC")) //最大加速度 - { - SendMsgToHexcal( - "MAXACC 300.000000,300.000000,300.000000,0.000000,0.000000,0.000000,0.000000,0.000000"); - } - else if (msg.Contains("SHOW SENSWKP")) - { - SendMsgToHexcal("X_ SENSWKP 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"); - } - else if (msg.Contains("SHOW X_SENSAXIS")) - { - SendMsgToHexcal("X_SENSAXIS 6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"); - } - else if (msg.Contains("SHOW Y_SENSAXIS")) //查询Y轴 - { - SendMsgToHexcal("Y_SENSAXIS 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"); - } - else if (msg.Contains("SHOW Z_SENSAXIS")) //查询Z轴 - { - SendMsgToHexcal("Z_SENSAXIS 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"); - } - else if (msg.Contains("SHOW TEMPCOMPTYPE")) //温度补偿,温度补偿 >1 表示支持温度补偿,此处不支持 - { - SendMsgToHexcal("TEMPCOMPTYPE 0"); - } - else if (msg.Contains("READTP")) - { - SendMsgToHexcal("READTP 0.000000"); - } - else if (msg.Contains("SHOW ESTOP")) //查询急停状态,根据真是情况调整 - { - SendMsgToHexcal("ESTOP FALSE"); - } - else if (msg.Contains("CMHWST")) - { - SendMsgToHexcal("CMHWST 8257,0,1792,0"); - } - else if (msg.Contains("SHOW MOVPAR")) //查询速度 - { - SendMsgToHexcal( - "MOVPAR 300.000000,300.000000,300.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.00000 0,0.000000"); - } - else if (msg.Contains("SHOW MAXVEL")) //查询最大速度 - { - SendMsgToHexcal("MAXVEL 300.000000,300.000000,300.000000,0.000000,0.000000,0.000000,0.000000,0.000000"); - } - else if (msg.Contains("SHOW ACCEL")) //查询加速度 - { - SendMsgToHexcal( - "ACCEL 1000.000000,1000.000000,1000.000000,0.000000,0.000000,0.000000,0.000000,0.000000"); - } - else if (msg.Contains("MOVPAR")) //设置速度 xyz 轴的速度 - { - SendMsgToHexcal("%"); - } - else if (msg.Contains("ACCEL")) //设置加速度 - { - SendMsgToHexcal("%"); - } - else if (msg.Contains("PRBPIN")) //设置侧头偏置 - { - SendMsgToHexcal("%"); - } - else if (msg.Contains("ENABLE TEMP")) //设置温度补偿 - { - SendMsgToHexcal("%"); - } - else if (msg.Contains("WKPPAR")) - { - SendMsgToHexcal("%"); - } - else if (msg.Contains("SCLTMP")) - { - SendMsgToHexcal("%"); - } - else if (msg.Contains("DISABLE GEO")) - { - SendMsgToHexcal("%"); - } - else if (msg.Contains("AUTZER")) //回家指令 - { - SendMsgToHexcal("%"); //收到并执行,同时状态改为忙碌 - - //执行回家 - IsHomed(); - } - else if (msg.Contains("MOVABS")) //移动指令,解析移动位置 - { - //收到指令 ,形如 MOVABS 0.015000,127.172997,-114.897003,0.000000\r\n - SendMsgToHexcal("%"); - - Point3D point = ParsePoint3DFromCommand(msg); - SetPositionXyz(point); //开始移动 - - _pointCloud.Add(point); //添加到点集合 - } - else if (msg.Contains("GETPOS")) //获取位置 - { - //POS 167.553898,-55.400421,-208.548678,0.000000,0.000000,0.000000,0.000000 - Point3D point3D = GetPositionXyz(); //获取当前位置 - string resultString = ConstructPosString(point3D); - SendMsgToHexcal(resultString); - } - else - { - DebugDfn.AddLogText("未知命令,没有应答"); - } - } - - private void ReceiveStatus(TcpIpServer.EnumTcpIpServer iType, string msg) - { - //记录到日志 - DebugDfn.AddLogText(iType + " : " + msg); - - //根据连接状态,更新界面 - switch (iType) - { - case TcpIpServer.EnumTcpIpServer.ClientConnect: - _mBHexcalConnected = true; - break; - - default: - _mBHexcalConnected = false; - break; - } - } - - private void SendMsgToHexcal(string msg) - { - if (_mTcpIpServer == null) return; - - //发送数据 - DebugDfn.AddLogText("回复 " + msg); - _mTcpIpServer.SendMessageToAllClients(msg += "\r\n"); //回复内容末尾加上\r\n,协议要求 - } - - private void Btn_StartServer_Click(object sender, EventArgs e) - { - Btn_StartServer.Enabled = false; - Btn_StopServer.Enabled = true; - StartServer(); - DebugDfn.AddLogText("TCP服务端启动成功 "); - } - - private void Btn_StopServer_Click(object sender, EventArgs e) - { - //关闭服务端 - if (_mTcpIpServer != null) - { - _mTcpIpServer.StopListen(); - } - - Btn_StopServer.Enabled = false; - Btn_StartServer.Enabled = true; - _mBHexcalConnected = false; - DebugDfn.AddLogText("TCP服务端已关闭"); - } - - #endregion hexcal软件交互 - - #region ACS平台相关 - - #region 异常抓取 - - //实现函数 - - private static void Application_ThreadException(object sender, ThreadExceptionEventArgs e) - { - // 防止程序终止 - MessageBox.Show("发生了未处理的异常:" + e.Exception.Message, "提示", MessageBoxButtons.OK, - MessageBoxIcon.Information); - } - - private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) - { - if (e.ExceptionObject is Exception ex) - { - HandleException(ex); - } - } - - private static void HandleException(Exception ex) - { - MessageBox.Show($"发生了未处理的异常:{ex.Message}", "提示", MessageBoxButtons.OK, - MessageBoxIcon.Information); - } - - //订阅报错 - private void EnableFaultEvent() - { - _acs.EnableEvent(Interrupts.ACSC_INTR_COMM_CHANNEL_CLOSED); - _acs.EnableEvent(Interrupts.ACSC_INTR_EMERGENCY); - _acs.EnableEvent(Interrupts.ACSC_INTR_SYSTEM_ERROR); - _acs.EnableEvent(Interrupts.ACSC_INTR_ETHERCAT_ERROR); - _acs.EnableEvent(Interrupts.ACSC_INTR_MOTOR_FAILURE); - _acs.EnableEvent(Interrupts.ACSC_INTR_MOTION_FAILURE); - _acs.EnableEvent(Interrupts.ACSC_INTR_PHYSICAL_MOTION_END); - _acs.COMMCHANNELCLOSED += _acs_COMMCHANNELCLOSED; - _acs.MOTORFAILURE += _acs_MOTORFAILURE; - _acs.MOTIONFAILURE += _acs_MOTIONFAILURE; - _acs.SYSTEMERROR += _acs_SYSTEMERROR; - _acs.ETHERCATERROR += _acs_ETHERCATERROR; - _acs.EMERGENCY += _acs_EMERGENCY; - _acs.PHYSICALMOTIONEND += _acs_PHYSICAL_MOTION_END; - } - - private void DisableFaultEvent() - { - _acs.COMMCHANNELCLOSED -= _acs_COMMCHANNELCLOSED; - _acs.MOTORFAILURE -= _acs_MOTORFAILURE; - _acs.MOTIONFAILURE -= _acs_MOTIONFAILURE; - _acs.SYSTEMERROR -= _acs_SYSTEMERROR; - _acs.ETHERCATERROR -= _acs_ETHERCATERROR; - _acs.EMERGENCY -= _acs_EMERGENCY; - _acs.PHYSICALMOTIONEND -= _acs_PHYSICAL_MOTION_END; - - _acs.DisableEvent(Interrupts.ACSC_INTR_COMM_CHANNEL_CLOSED); - _acs.DisableEvent(Interrupts.ACSC_INTR_EMERGENCY); - _acs.DisableEvent(Interrupts.ACSC_INTR_SYSTEM_ERROR); - _acs.DisableEvent(Interrupts.ACSC_INTR_ETHERCAT_ERROR); - _acs.DisableEvent(Interrupts.ACSC_INTR_MOTOR_FAILURE); - _acs.DisableEvent(Interrupts.ACSC_INTR_MOTION_FAILURE); - _acs.DisableEvent(Interrupts.ACSC_INTR_PHYSICAL_MOTION_END); - } - - //关联函数 - private void _acs_EMERGENCY(ulong param) - { - DebugDfn.AddLogText($"[EStopError] Error Message:{_acs.GetErrorString((int)param)}"); - } - - private void _acs_ETHERCATERROR(ulong param) - { - DebugDfn.AddLogText($"[EtherCatError] Error Message:{_acs.GetErrorString((int)param)}"); - } - - private void _acs_SYSTEMERROR(ulong param) - { - DebugDfn.AddLogText($"[SystemError] Error Message:{_acs.GetErrorString((int)param)}"); - } - - private void _acs_MOTIONFAILURE(AxisMasks axis) - { - for (int i = 0; i < _acs.GetAxesCount(); i++) - { - if (((int)axis & (int)Math.Pow(2, i)) == Math.Pow(2, i)) - { - if (_acs.GetMotionError((Axis)i) != 0) - { - //Motor无法自动捕获,需要在motion报错中获取 - int errorcode = _acs.GetMotionError((Axis)i); - - DebugDfn.AddLogText( - $"[MotionError] Axis:{i} Error Code:{errorcode} Error Message: {_acs.GetErrorString(errorcode)}"); - - int errorcodes = _acs.GetMotorError((Axis)i); - - DebugDfn.AddLogText( - $"[MotorError] Axis:{i} Error Code:{errorcodes} Error Message:{_acs.GetErrorString(errorcodes)}"); - } - } - } - } - - private void _acs_MOTORFAILURE(AxisMasks axis) - { - for (int i = 0; i < _acs.GetAxesCount(); i++) - { - if (((int)axis & (int)Math.Pow(2, i)) == Math.Pow(2, i)) - { - int errorcode = _acs.GetMotorError((Axis)i); - - DebugDfn.AddLogText( - $"[MotorError] Axis:{i} Error Code:{errorcode} Error Message:{_acs.GetErrorString(errorcode)}"); - } - } - } - - private void _acs_COMMCHANNELCLOSED(ulong param) - { - DebugDfn.AddLogText($"[CommError] Error Message:{_acs.GetErrorString((int)param)}"); - } - - private void _acs_PHYSICAL_MOTION_END(AxisMasks axis) - { - int bit = 0x01; - int axisNo = 0; - - for (int i = 0; i < 64; i++) - { - if ((int)axis == bit) - { - axisNo = i; - break; - } - - bit = bit << 1; - } - - //DebugDfn.AddLogText(string.Format(" - Axis {0}, Stoppped", axisNo)); - } - - #endregion 异常抓取 - - private void BtnEnable_Click(object sender, EventArgs e) //使能所有轴 - { - if (_mAcsConnected) - { - //!!!! Important !! Must insert '-1' at the last - _acs.EnableM(UseAxis); - } - else - { - //弹窗提醒尚未连接 - MessageBox.Show("未连接到运动平台,请先点击连接"); - } - } - - private void BtnDisable_Click(object sender, EventArgs e) //轴取消 - { - // Disable all of axes - _acs.DisableAll(); - } - - private bool IsMotionInPose() - { - bool x_inpose = false, y_inpose = false, z_inpose = false; - - _mNMotorState = _acs.GetMotorState(Axis.ACSC_AXIS_1); - if ((_mNMotorState & MotorStates.ACSC_MST_INPOS) != 0) - { - x_inpose = true; - } - - _mNMotorState = _acs.GetMotorState(Axis.ACSC_AXIS_0); - if ((_mNMotorState & MotorStates.ACSC_MST_INPOS) != 0) - { - y_inpose = true; - } - - _mNMotorState = _acs.GetMotorState(Axis.ACSC_AXIS_8); - if ((_mNMotorState & MotorStates.ACSC_MST_INPOS) != 0) - { - z_inpose = true; - } - - if (x_inpose && y_inpose && z_inpose) - { - return true; - } - - return false; - } - - private void TmrMonitor_Tick(object sender, EventArgs e) //用于刷新状态 - { - if (_mAcsConnected) - { - try - { - _mPoint3D = GetPositionXyz(); //取平台当前位置 - - #region 更新限位及运动状态 - - //左右限位刷新 - _mObjReadVar = - _acs.ReadVariableAsVector("FAULT", ProgramBuffer.ACSC_NONE, 0, _mNTotalAxis - 1); - if (_mObjReadVar != null) - { - _mArrReadVector = _mObjReadVar as Array; - if (_mArrReadVector != null) - { - UpdateLimitState(0, (int)_mArrReadVector.GetValue(1)); //获取X轴 - UpdateLimitState(1, (int)_mArrReadVector.GetValue(0)); - UpdateLimitState(2, (int)_mArrReadVector.GetValue(8)); - } - } - - UpdateSingleAxisStatus(); //刷新运动状态 - - #endregion 更新限位及运动状态 - - #region 到位判断 - - if (IsMotionInPose()) - { - _currentMotionState = MotionStates.InPos; - //DebugDfn.AddLogText("运动到位"); - } - else - { - _currentMotionState = MotionStates.Moving; - DebugDfn.AddLogText("运动中"); - } - - //增加判断 运动中到 运动到位,主动发送READY - if (_currentMotionState == MotionStates.InPos && _currentMotionState != _currentMotorStateLast) - { - DebugDfn.AddLogText("运动到位"); - if (isCounting) - { - m_nInPosCount++; - } - } - - _currentMotorStateLast = _currentMotionState; - - #endregion 到位判断 - } - catch (Exception ex) - { - DebugDfn.AddLogText("ACS平台刷新异常" + ex); - MessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); - Btn_ACSStop_Click(null, null); - } - } - } - - private void Btn_ACSStart_Click(object sender, EventArgs e) //连接 - { - btn_ACSStart.Enabled = false; - btn_ACSStop.Enabled = true; - - try - { - _acs.OpenCommEthernetTCP( - txtIP.Text, // IP Address (Default : 10.0.0.100) - Convert.ToInt32(txtPort.Text.Trim())); // default : 701 - - _mAcsConnected = true; - - //运动相关初始化操作 - InitMotion(); - - // 启动定时器 - tmrMonitor.Interval = 50; - tmrMonitor.Start(); - } - catch (COMException comex) - { - MessageBox.Show("Connection fail", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); - Debug.WriteLine("Connection fail" + comex.Message); - - _mAcsConnected = false; - } - catch (Exception ex) - { - DebugDfn.AddLogText("ACS平台连接异常" + ex); - MessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - - private void Btn_ACSStop_Click(object sender, EventArgs e) //断开连接 - { - if (_mAcsConnected) - { - //DisableFaultEvent(); //取消注册事件 - _acs.CloseComm(); - } - - tmrMonitor.Stop(); - _mAcsConnected = false; - btn_ACSStart.Enabled = true; - btn_ACSStop.Enabled = false; - } - - private void UpdateLimitState(int axisNo, int fault) //刷新限位 - { - if (axisNo < MaxUiLimitCnt) - { - if ((fault & (int)SafetyControlMasks.ACSC_SAFETY_LL) != 0) - _mLblLeftLimit[axisNo].Image = Resources.Error; - else _mLblLeftLimit[axisNo].Image = Resources.Off; - if ((fault & (int)SafetyControlMasks.ACSC_SAFETY_RL) != 0) - _mLblRightLimit[axisNo].Image = Resources.Error; - else _mLblRightLimit[axisNo].Image = Resources.Off; - } - } - - public int TranslateAxisNumber(Axis originalAxisNumber) - { - int newAxisNumber = -1; - - switch (originalAxisNumber) - { - case Axis.ACSC_AXIS_1: //X轴 - newAxisNumber = 0; - break; - - case Axis.ACSC_AXIS_0: - newAxisNumber = 1; //Y轴 - break; - - case Axis.ACSC_AXIS_8: - newAxisNumber = 2; - break; - } - - return newAxisNumber; - } - - private void UpdateSingleAxisStatus() - { - Axis axis = 0; - int _axisNo = 0; - for (int i = 0; i < UseAxis.Length; i++) - { - axis = UseAxis[i]; - - _axisNo = TranslateAxisNumber(UseAxis[i]); - - // Get Motor State ACSPL+ Variable : MST (integer) - _mNMotorState = _acs.GetMotorState(axis); - - if (_axisNo == -1) - { - return; - } - - // 运动中 - if ((_mNMotorState & MotorStates.ACSC_MST_MOVE) != 0) - { - _mlblMoving[_axisNo].Image = Resources.On; - } - else - { - _mlblMoving[_axisNo].Image = Resources.Off; - } - - // 就位 - if ((_mNMotorState & MotorStates.ACSC_MST_INPOS) != 0) - { - _mlblInPos[_axisNo].Image = Resources.On; - } - else - { - _mlblInPos[_axisNo].Image = Resources.Off; - } - - // 加速 - if ((_mNMotorState & MotorStates.ACSC_MST_ACC) != 0) - { - _mlblAcc[_axisNo].Image = Resources.On; - } - else - { - _mlblAcc[_axisNo].Image = Resources.Off; - } - - // 使能 - if ((_mNMotorState & MotorStates.ACSC_MST_ENABLE) != 0) - { - _mlblEnable[_axisNo].Image = Resources.On; - axisEnabled[_axisNo] = true; //轴使能 - } - else - { - _mlblEnable[_axisNo].Image = Resources.Off; - axisEnabled[_axisNo] = false; - } - } - - totalAxisEnabled = CalculateTotalEnabled(axisEnabled, 0, 1, 8); - DebugDfn.AddLogText($"总的使能状态为:{(totalAxisEnabled ? "使能" : "未使能")}"); - } - - private void IsHomed() //读取回家状态,当未回家时执行回家指令 - { - // 1、连接状态检查,如果未连接,提示 - if (!_mAcsConnected) - { - DebugDfn.AddLogText("[IsHomed] ACS平台未连接,请先点击连接"); - MessageBox.Show("ACS平台未连接,请先点击连接", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); - return; - } - - // 2、回家状态检查是否已经回家 - if (_mAcsConnected && _homeStates == HomeStates.Homed) - { - //弹窗提示 - MessageBox.Show("轴已经回家", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); - return; - } - - // 3、读取回家状态 - if (_acs != null && _mAcsConnected) - - { - var yawHome = _acs.ReadVariable("YAW_HOME_DONE"); - - if (Convert.ToBoolean(yawHome)) - { - //弹窗提示 - MessageBox.Show("轴已经回家", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); - _homeStates = HomeStates.Homed; - return; - } - // 4、执行回家指令,弹窗等待用户确认 - - DialogResult result = MessageBox.Show("轴未回家,即将执行回家指令", "提示", MessageBoxButtons.OK, - MessageBoxIcon.Information); - - if (result == DialogResult.OK) - { - // 在这里执行接下来的操作,例如回家指令 - - _acs.RunBuffer(ProgramBuffer.ACSC_BUFFER_6, null); //执行回家指令,这里的buffer6是回家指令的buffer - _homeStates = HomeStates.Homing; - _currentMotionState = MotionStates.Moving; - DebugDfn.AddLogText("回家运动中"); - - //等待回家完成 - for (int i = 0; i < UseAxis.Length; i++) - { - _acs.WaitMotionEnd(UseAxis[i], _motionTimeout); //等待回家完成 - } - - _homeStates = HomeStates.Homed; - _currentMotionState = MotionStates.InPos; - DebugDfn.AddLogText("回家完成"); - } - else - { - //弹窗提醒 - MessageBox.Show("点击了取消,未进行任何动作", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - } - } - - private void InitMotion() //定义 运动状态初始化函数,包括内部变量,轴启用,回家判断等 - { - string strTemp; - //运动相关变量初始化 - _homeStates = HomeStates.None; - _currentMotionState = MotionStates.None; - _currentMotionState = MotionStates.None; - - if (!_mAcsConnected) - { - MessageBox.Show("未连接运动平台,请先连接运动平台"); - return; - } - - //轴启用,加电 - _acs.EnableM(UseAxis); - for (int i = 0; i < UseAxis.Length; i++) - { - _acs.WaitMotorEnabled(UseAxis[i], 1, _motionTimeout); //等待电机使能 - } - - DebugDfn.AddLogText("电机已启用"); - - //回家 - IsHomed(); - - //设置定位速度 - SetSpeedXyz(MotionSpeed); - - //获取轴数量 - strTemp = _acs.Transaction("?SYSINFO(13)"); - _mNTotalAxis = Convert.ToInt32(strTemp.Trim()); - _mLblLeftLimit = new Label[MaxUiLimitCnt]; //左限位 - _mLblLeftLimit[0] = lblLL0; - _mLblLeftLimit[1] = lblLL1; - _mLblLeftLimit[2] = lblLL2; - - _mLblRightLimit = new Label[MaxUiLimitCnt]; //右限位 - _mLblRightLimit[0] = lblRL0; - _mLblRightLimit[1] = lblRL1; - _mLblRightLimit[2] = lblRL2; - - _mlblMoving = new Label[MaxUiLimitCnt]; //运动中 - _mlblMoving[0] = lblMoving0; - _mlblMoving[1] = lblMoving1; - _mlblMoving[2] = lblMoving2; - - _mlblAcc = new Label[MaxUiLimitCnt]; // 加速中 - _mlblAcc[0] = lblAcc0; - _mlblAcc[1] = lblAcc1; - _mlblAcc[2] = lblAcc2; - - _mlblInPos = new Label[MaxUiLimitCnt]; //就位 - _mlblInPos[0] = lblInPos0; - _mlblInPos[1] = lblInPos1; - _mlblInPos[2] = lblInPos2; - - _mlblEnable = new Label[MaxUiLimitCnt]; //轴使能 - _mlblEnable[0] = lblEnable0; - _mlblEnable[1] = lblEnable1; - _mlblEnable[2] = lblEnable2; - - //EnableFaultEvent(); //订阅错误事件 - } - - public static bool IsWithinLimit(Point3D point) //判断点是否在行程范围内 - { - if (point.X >= XMinstrokesw && point.X <= XMaxstrokesw && - point.Y >= YMinstrokesw && point.Y <= YMaxstrokesw && - point.Z >= ZMinstrokesw && point.Z <= ZMaxstrokesw) - { - return true; - } - - return false; - } - - public static bool IsWithinLimit(Point point) //判断点是否在行程范围内 - { - if (point.X >= XMinstrokesw && point.X <= XMaxstrokesw && - point.Y >= YMinstrokesw && point.Y <= YMaxstrokesw && - point.Z >= ZMinstrokesw && point.Z <= ZMaxstrokesw) - { - return true; - } - - return false; - } - - private void SetPositionXyz(Point3D point3D) //运动到指定位置 - { - if (!_mAcsConnected) - { - DebugDfn.AddLogText("ACS平台未连接,请先点击连接"); - MessageBox.Show("ACS平台未连接,请先点击连接", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); - return; - } - - if (_currentMotionState != MotionStates.Moving) - { - _currentMotionState = MotionStates.Moving; //设置当前运动状态 - //判断 point3D是否合法 - if (point3D != null) - { - if (IsWithinLimit(point3D)) //判断点是否在行程范围内 - { - double[] pointsArray = - { - point3D.X, - point3D.Y, - point3D.Z - }; - //判断各轴使能状态,如果未使能,则使能 - - if (!totalAxisEnabled) - { - _acs.EnableM(UseAxis); - for (int i = 0; i < UseAxis.Length; i++) - { - _acs.WaitMotorEnabled(UseAxis[i], 1, _motionTimeout); //等待电机使能 - } - - DebugDfn.AddLogText("电机已启用"); - } - - //执行运动指令 - _acs.ToPointM(MotionFlags.ACSC_NONE, UseAxis, pointsArray); //多轴运动到指定位置 - } - else - { - DebugDfn.AddLogText("目标位置超出行程范围,请重新设置"); - MessageBox.Show("目标位置超出行程范围,请重新设置", "异常", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - else - { - DebugDfn.AddLogText("目标位置为空,请重新设置"); - MessageBox.Show("目标位置为空,请重新设置", "异常", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - } - - private Point3D GetPositionXyz(int positionMode = 1) //获取当前位置 - { - double xPosition = 0, yPosition = 0, zPosition = 0; - Point3D point3D = new Point3D(xPosition, yPosition, zPosition); - if (!_mAcsConnected) - { - DebugDfn.AddLogText("ACS平台未连接,请先点击连接"); - MessageBox.Show("ACS平台未连接,请先点击连接", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); - return point3D; - } - - //获取当前位置, 两种 GetRPosition,GetFPosition - if (positionMode == 1) - { - //获取反馈位置 Feedback position (Encoder value) ACSPL+ Variable : FPO (real) - xPosition = _acs.GetFPosition(UseAxis[0]); - yPosition = _acs.GetFPosition(UseAxis[1]); - zPosition = _acs.GetFPosition(UseAxis[2]); - //DebugDfn.AddLogText("反馈位置: " + xPosition + " " + yPosition + " " + zPosition); - } - else - { - //获取参考位置 ACSPL+ Variable : RPOS (real) - xPosition = _acs.GetRPosition(UseAxis[0]); - yPosition = _acs.GetRPosition(UseAxis[1]); - zPosition = _acs.GetRPosition(UseAxis[2]); - DebugDfn.AddLogText("参考位置: " + xPosition + " " + yPosition + " " + zPosition); - } - - //构造point3D格式 - point3D = new Point3D(xPosition, yPosition, zPosition); - - return point3D; - } - - private void SetSpeedXyz(double speed) //获取运动参数 - { - //获取实际速度 - double feedbackVelocity = (double)_acs.ReadVariable("FVEL", ProgramBuffer.ACSC_NONE, 0, 0); - DebugDfn.AddLogText("实际速度: " + feedbackVelocity); - - //设置Y轴 速度参数 - _acs.SetVelocity(Axis.ACSC_AXIS_0, speed); - _acs.SetAcceleration(Axis.ACSC_AXIS_0, speed * 10); - _acs.SetDeceleration(Axis.ACSC_AXIS_0, speed * 10); - - //设置X轴速度参数 - _acs.SetVelocity(Axis.ACSC_AXIS_1, speed); - _acs.SetAcceleration(Axis.ACSC_AXIS_1, speed * 10); - _acs.SetDeceleration(Axis.ACSC_AXIS_1, speed * 10); - - //设置Z轴速度参数 - _acs.SetVelocity(Axis.ACSC_AXIS_8, speed); - _acs.SetAcceleration(Axis.ACSC_AXIS_8, speed * 10); - _acs.SetDeceleration(Axis.ACSC_AXIS_8, speed * 10); - - DebugDfn.AddLogText($"速度设置完成 {speed}"); - } - - private void rtb_quick_loc_Click(object sender, EventArgs e)//快速定位 - { - // 获取文本框的值 - double x = double.Parse(rtb_SetX.Text); - double y = double.Parse(rtb_Sety.Text); - double z = double.Parse(rtb_SetZ.Text); - - // 构造 Point3D 对象 - Point3D point = new Point3D(x, y, z); - - SetPositionXyz(point); - } - - private static bool CalculateTotalEnabled(bool[] axisEnabled, params int[] axisIndices)//判断轴使能状态 - { - bool totalEnabled = true; - foreach (int index in axisIndices) - { - bool isEnabled = axisEnabled[index]; - if (!isEnabled) - { - totalEnabled = false; - break; - } - } - return totalEnabled; - } - - private void rtb_stop_Click(object sender, EventArgs e) - { - try - { - Axis[] m_arrAxisList = new Axis[] { Axis.ACSC_AXIS_0, Axis.ACSC_AXIS_1, Axis.ACSC_AXIS_8, Axis.ACSC_NONE }; - - if (m_arrAxisList != null) _acs.HaltM(m_arrAxisList); - - DebugDfn.AddLogText("立即停止 已发送命令"); - } - catch (Exception ex) - { - MessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); - Debug.WriteLine(ex.Message); - } - } - - private void rtb_home_Click(object sender, EventArgs e) - { - //弹窗提醒用户,是否执行回家指令 - DialogResult result = MessageBox.Show("是否执行回家指令", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); - - if (result == DialogResult.Cancel) - { - return; - } - - DebugDfn.AddLogText("回家指令已发送"); - if (!_mAcsConnected) - { - DebugDfn.AddLogText("ACS平台未连接,请先点击连接"); - MessageBox.Show("ACS平台未连接,请先点击连接", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); - return; - } - - if (_currentMotionState != MotionStates.Moving) - { - _currentMotionState = MotionStates.Moving; //设置当前运动状态 - - _acs.RunBuffer(ProgramBuffer.ACSC_BUFFER_6, null); //执行回家指令,这里的buffer6是回家指令的buffer - _homeStates = HomeStates.Homing; - _currentMotionState = MotionStates.Moving; - DebugDfn.AddLogText("回家运动中"); - - //等待回家完成 - for (int i = 0; i < UseAxis.Length; i++) - { - _acs.WaitMotionEnd(UseAxis[i], _motionTimeout); //等待回家完成 - } - - _homeStates = HomeStates.Homed; - _currentMotionState = MotionStates.InPos; - DebugDfn.AddLogText("回家完成"); - } - } - - private void rtb_etalon_Click(object sender, EventArgs e) //etalon校准 - { - DebugDfn.AddLogText("Etalon校准"); - //判断通讯对象是否存在 - if (_acs == null || !_acs.IsConnected) - { - DebugDfn.AddLogText("未建立与运动平台通讯,请在主界面先建立通讯"); - - // 在合适的位置调用 MessageBox.Show() 方法 - MessageBox.Show("未建立与运动平台通讯,请在主界面先建立通讯", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); - - return; - } - else - { - EtalonForm etalonForm = new EtalonForm(this); - etalonForm.Show(); - } - } - - #endregion ACS平台相关 - - #region 菜单栏 - - private void btn_motion_Click(object sender, EventArgs e) - { - //判断通讯对象是否存在 - if (_acs == null || !_acs.IsConnected) - { - DebugDfn.AddLogText("未建立与运动平台通讯,请在主界面先建立通讯"); - - // 在合适的位置调用 MessageBox.Show() 方法 - MessageBox.Show("未建立与运动平台通讯,请在主界面先建立通讯", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); - - return; - } - else - { - Motion motion = new Motion(this); - motion.Show(); - } - } - - private void Rtb_about_Click(object sender, EventArgs e) //关于界面 - { - AboutBox mAboutBox = new AboutBox(); - mAboutBox.StartPosition = FormStartPosition.CenterScreen; - mAboutBox.Show(); - } - - private void rtb_demo_Click(object sender, EventArgs e) - { - DemoShow demoShow = new DemoShow(_acs); - demoShow.Show(); - demoShow.BringToFront(); - } - - private void Timer_RefreshUI_Tick(object sender, EventArgs e) //UI刷新 - { - //状态灯刷新 - lamp_acs.State = _mAcsConnected ? LampColor.Green : LampColor.Silver; - lamp_hexcal.State = _mBHexcalConnected ? LampColor.Green : LampColor.Silver; - - //时间栏 - //获取当前时间,构造形如 精确到秒,例如 2023-10-08 16:01:23 - rle_timer.Text = "当前时间: " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - - Plot2D(_pointCloud); //绘图 - - //更新位置 - if (_mPoint3D != null) - { - rtb_xPos.Text = _mPoint3D.X.ToString("F3"); - rtb_yPos.Text = _mPoint3D.Y.ToString("F3"); - rtb_zPos.Text = _mPoint3D.Z.ToString("F3"); - } - } - - #endregion 菜单栏 - } -} \ No newline at end of file + private void MainFrom_Shown(object sender, EventArgs e) //窗体显示准备好接受用户输入时发生 + { + ////启动服务端,用于接收hexcal传来的指令 + //StartServer(); + + //if (_enableAcs) + //{ + // Btn_ACSStart_Click(null, null); //模拟连接运动平台 + //} + } + + private void MainFrom_FormClosed(object sender, FormClosedEventArgs e) + { + MyBase.TraceWriteLine("关闭程序"); + DebugDfn._strEndTime = DateTime.Now.ToString("yyyy.MM.dd HH-mm-ss"); + timer_RefreshUI.Stop(); + + Btn_StopServer_Click(null, null); + Btn_ACSStop_Click(null, null); //关闭ACS + + string copyFileName = + DebugDfn.StrDebugSavePath + + "\\Debug(" + + DebugDfn._strStartTime + + " To " + + DebugDfn._strEndTime + + ")" + + ".txt"; + if (!File.Exists(DebugDfn.StrDebugSavePath)) + { + //创建文件夹 DebugDfn.StrDebugSavePath + Directory.CreateDirectory(DebugDfn.StrDebugSavePath); + } + + File.Copy(DebugDfn.StrDebugFile, copyFileName); + + if (Errors.ErrorWrite != null) + Errors.ErrorWrite.Close(); + if (Errors.OtherWrite != null) + Errors.OtherWrite.Close(); + if (Errors.StatusWrite != null) + Errors.StatusWrite.Close(); + } + + private void LoadConfig() //加载配置文件 + { + //判断配置文件是否存在 + if (!File.Exists(StrConfigFile)) + { + MessageBox.Show( + "配置文件不存在,请检查配置文件", + "异常", + MessageBoxButtons.OK, + MessageBoxIcon.Error + ); + return; + } + + MotionSpeedxy = FileIni.ReadDouble(StrConfigFile, "MOTOR", "MOTION_SPEEDXY"); //运动定位速度 + MotionSpeedz = FileIni.ReadDouble(StrConfigFile, "MOTOR", "MOTION_SPEEDZ"); + + //正限位 + XMaxstrokesw = FileIni.ReadDouble(StrConfigFile, "MOTOR", "X_MAXSTROKESW"); + YMaxstrokesw = FileIni.ReadDouble(StrConfigFile, "MOTOR", "Y_MAXSTROKESW"); + ZMaxstrokesw = FileIni.ReadDouble(StrConfigFile, "MOTOR", "Z_MAXSTROKESW"); + + //负限位 + XMinstrokesw = FileIni.ReadDouble(StrConfigFile, "MOTOR", "X_MINSTROKESW"); + YMinstrokesw = FileIni.ReadDouble(StrConfigFile, "MOTOR", "Y_MINSTROKESW"); + ZMinstrokesw = FileIni.ReadDouble(StrConfigFile, "MOTOR", "Z_MINSTROKESW"); + + port = FileIni.ReadInt(StrConfigFile, "MOTOR", "Port"); + DebugDfn.AddLogText($"当前监听端口配置为: {port}"); + DebugDfn.AddLogText($"当前xy运动速度配置为: {MotionSpeedxy}"); + DebugDfn.AddLogText($"当前z运动速度配置为: {MotionSpeedz}"); + } + + private void Plot2D(List pointCloud) + { + // 清空画布 + formsPlot1.Plot.Clear(); + + //pointCloud 是否为空 + if (pointCloud.Count <= 0) + { + return; + } + + List dataX = new List(); + List dataY = new List(); + + foreach (Point3D point3D in pointCloud) + { + dataX.Add(point3D.X); + dataY.Add(point3D.Y); + } + + formsPlot1.Plot.AddScatter(dataX.ToArray(), dataY.ToArray()); + formsPlot1.Refresh(); + } + + #region 运动平台变量区 + + public Api _acs; + + private const int MaxUiLimitCnt = 24; + private int _mNTotalAxis; + + //private int _mNTotalBuffer = 0; + //private Axis[] _mArrAxisList = null; + public bool _mAcsConnected; //ACS通讯状态 + + // For update values + private MotorStates _mNMotorState; //运动状态 + + private ProgramStates _mNProgramState; //程序状态 + private object _mObjReadVar; + private Array _mArrReadVector; + private double _mLfRPos, + _mLfFPos, + _mLfPe, + _mLfFvel; //参考位置,反馈位置 位置误差 反馈速度 double类型 + private int _mNValues, + _mNOutputState; + + private Label[] _mLblLeftLimit; //左限位 + private Label[] _mLblRightLimit; //右限位 + private Label[] _mlblMoving; //运动中 + private Label[] _mlblAcc; //加速中 + private Label[] _mlblInPos; //轴就位 + private Label[] _mlblEnable; //使能 + private bool[] axisEnabled = new bool[MaxUiLimitCnt]; //轴使能状态 + public bool totalAxisEnabled = false; + + private HomeStates _homeStates; //回家状态 + private MotionStates _currentMotionState; //当前运动状态 + private MotionStates _currentMotorStateLast; + private readonly int _motionTimeout = 50000; //定义运动超时时间 + + //定义启用的轴,后面运动时会使用 + public static Axis[] UseAxis = + { + Axis.ACSC_AXIS_1, + Axis.ACSC_AXIS_0, + Axis.ACSC_AXIS_8, + Axis.ACSC_NONE, + }; + + //定义 XYZ三个轴的左右行程范围 + public string StrConfigFile = Application.StartupPath + "\\File\\config.ini"; + + public static double MotionSpeedxy = 60; + public static double MotionSpeedz = 30; + public static double XMaxstrokesw = 730; //正限位 + public static double YMaxstrokesw = 1000; + public static double ZMaxstrokesw = 5; + + public static double XMinstrokesw = -30; //负限位 + public static double YMinstrokesw = -10; + public static double ZMinstrokesw = -280; + public static int port = 1234; //默认监听端口 + + //定义一个3D点,存储当前平台实时位置 + public Point3D _mPoint3D; + + #endregion 运动平台变量区 + + #region hexcal软件交互 + + private void StartServer() + { + // 对_mTcpIpServer增加判断是否已经启动且存在设备连接 + if (_mTcpIpServer != null && _mTcpIpServer.ConnectStatus) + { + //弹窗提醒已经启动 + MyBase.TraceWriteLine("TCP服务端已经启动,请勿重复启动"); + MessageBox.Show( + "TCP服务端已经启动,请勿重复启动", + "提示", + MessageBoxButtons.OK, + MessageBoxIcon.Information + ); + return; + } + + //启动服务器,并获取数据,解析 + _mTcpIpServer = new TcpIpServer(IPAddress.Any.ToString(), Convert.ToString(port)); + _mTcpIpServer.UseMode = 1; //设置通讯返回数据流格式 + try + { + //启动监听 + if (_mTcpIpServer.StartListen()) + { + //绑定两个事件 OnRaisedStatus 和OnRaisedMessage + _mTcpIpServer.OnRaisedMessage += ReceiveMessage; //接收消息回调 + _mTcpIpServer.OnRaisedStatus += ReceiveStatus; //连接状态 + _mTcpIpServer.DataReceived += ReceiveByte; + } + else + { + MessageBox.Show( + "TCP服务端启动失败,请检查网络连接,重新打开软件", + "异常", + MessageBoxButtons.OK, + MessageBoxIcon.Error + ); + } + } + catch (Exception ex) + { + DebugDfn.AddLogText("启动TCP服务端异常" + ex); + } + } + + private void ReceiveByte(object sender, byte[] e) + { + DebugDfn.AddLogText("接收到" + BitConverter.ToString(e)); + } + + private void ReceiveMessage(string clientIp, string msg) //接收的内容 + { + //打印ClientIP 和 Msg + DebugDfn.AddLogText("接收到" + clientIp + ": " + msg); + + //根据源地址的不同,执行不同处理 + string sourceIp = clientIp.Split(':')[0]; + switch (sourceIp) + { + case "100.0.0.1": + ParseHexcalMsg(msg); + break; + + case "100.0.0.2": + ParseHexcalMsg(msg); + break; + + default: + DebugDfn.AddLogText("未知来源,没有应答"); + break; + } + } + + public static string ConstructString(string variableName, double[] values) + { + string result = variableName + " "; + for (int i = 0; i < values.Length; i++) + { + result += values[i].ToString("F6"); + if (i < values.Length - 1) + { + result += ", "; + } + } + + return result; + } + + public static string ConstructPosString(Point3D point) + { + double[] values = { point.X, point.Y, point.Z, 0.0, 0.0, 0.0, 0.0 }; + return ConstructString("POS", values); + } + + public static Point3D ParsePoint3DFromCommand(string input) + { + string[] parts = input.Split(' ')[1].Split(','); + if (parts.Length >= 3) + { + double x = double.Parse(parts[0]); + double y = double.Parse(parts[1]); + double z = double.Parse(parts[2]); + return new Point3D(x, y, z); + } + + throw new ArgumentException("输入字符串格式不正确。"); + } + + private void CheckPlatformStatus() + { + //检查平台状态,如果运动中,返回BUSY,否则返回READY + if ( + _currentMotionState == MotionStates.None + || _currentMotionState == MotionStates.InPos + ) //默认或到位 + { + SendMsgToHexcal("READY"); + } + else + { + SendMsgToHexcal("BUSY"); + } + } + + private void ParseHexcalMsg(string msg) //编写一个Hexcal协议解析函数 + { + //DebugDfn.AddLogText("正在解析 " + msg); + + //去除Msg中\r\n + msg = msg.Replace("\r\n", ""); + + //判断是否含有故障ERROR字样 + if (msg.Contains("ERROR")) + { + //弹窗提醒 + MessageBox.Show("CMM错误", msg, MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + if (msg.Contains("\x02") || msg.Contains("\u0002")) + { + //DebugDfn.AddLogText("接收到STX,开始解析"); + CheckPlatformStatus(); + } + else if (msg.Contains("\x03") || msg.Contains("\u0003")) + { + CheckPlatformStatus(); + } + //else if (msg.Contains("^B")) //查询状态, READY或BUSY + //{ + // checkPlatformStatus(); + //} + else if (msg.Contains("CMMTYP")) //测量机类型 + { + SendMsgToHexcal("CMMTYP MA 19617, FDC V15.00, 10 8 3 , 0"); + } + else if (msg.Contains("VERSION")) //版本号 + { + SendMsgToHexcal("00-000-000-00000 FDC V51.04.0000 DATE: 12/21/22 TIME: 12:50:55"); + } + else if (msg.Contains("SHOW MAXSTROKESW")) //最大行程,根据实际情况填写 + { + //MAXSTROKESW 233.200000,346.500000,15.100000,0.000000,0.000000,0.000000,0.000000 + + double[] values = { XMaxstrokesw, YMaxstrokesw, ZMaxstrokesw, 0.0, 0.0, 0.0, 0.0 }; + string resultString = ConstructString("MAXSTROKESW", values); + SendMsgToHexcal(resultString); + } + else if (msg.Contains("SHOW MINSTROKESW")) //最小行程,根据实际情况填写 + { + //MINSTROKESW -68.800000,-55.500000,-286.900000,0.000000,0.000000,0.000000,0.000000 + + double[] values = { XMinstrokesw, YMinstrokesw, ZMinstrokesw, 0.0, 0.0, 0.0, 0.0 }; + string resultString = ConstructString("MINSTROKESW", values); + SendMsgToHexcal(resultString); + } + else if (msg.Contains("SHOW MAXVEL")) //最大速度 + { + SendMsgToHexcal( + "MAXVEL 300.000000,300.000000,300.000000,0.000000,0.000000,0.000000,0.000000,0.000000" + ); + } + else if (msg.Contains("SHOW MAXACC")) //最大加速度 + { + SendMsgToHexcal( + "MAXACC 300.000000,300.000000,300.000000,0.000000,0.000000,0.000000,0.000000,0.000000" + ); + } + else if (msg.Contains("SHOW SENSWKP")) + { + SendMsgToHexcal("X_ SENSWKP 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"); + } + else if (msg.Contains("SHOW X_SENSAXIS")) + { + SendMsgToHexcal("X_SENSAXIS 6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"); + } + else if (msg.Contains("SHOW Y_SENSAXIS")) //查询Y轴 + { + SendMsgToHexcal("Y_SENSAXIS 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"); + } + else if (msg.Contains("SHOW Z_SENSAXIS")) //查询Z轴 + { + SendMsgToHexcal("Z_SENSAXIS 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"); + } + else if (msg.Contains("SHOW TEMPCOMPTYPE")) //温度补偿,温度补偿 >1 表示支持温度补偿,此处不支持 + { + SendMsgToHexcal("TEMPCOMPTYPE 0"); + } + else if (msg.Contains("READTP")) + { + SendMsgToHexcal("READTP 0.000000"); + } + else if (msg.Contains("SHOW ESTOP")) //查询急停状态,根据真是情况调整 + { + SendMsgToHexcal("ESTOP FALSE"); + } + else if (msg.Contains("CMHWST")) + { + SendMsgToHexcal("CMHWST 8257,0,1792,0"); + } + else if (msg.Contains("SHOW MOVPAR")) //查询速度 + { + SendMsgToHexcal( + "MOVPAR 300.000000,300.000000,300.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.00000 0,0.000000" + ); + } + else if (msg.Contains("SHOW MAXVEL")) //查询最大速度 + { + SendMsgToHexcal( + "MAXVEL 300.000000,300.000000,300.000000,0.000000,0.000000,0.000000,0.000000,0.000000" + ); + } + else if (msg.Contains("SHOW ACCEL")) //查询加速度 + { + SendMsgToHexcal( + "ACCEL 1000.000000,1000.000000,1000.000000,0.000000,0.000000,0.000000,0.000000,0.000000" + ); + } + else if (msg.Contains("MOVPAR")) //设置速度 xyz 轴的速度 + { + SendMsgToHexcal("%"); + } + else if (msg.Contains("ACCEL")) //设置加速度 + { + SendMsgToHexcal("%"); + } + else if (msg.Contains("PRBPIN")) //设置侧头偏置 + { + SendMsgToHexcal("%"); + } + else if (msg.Contains("ENABLE TEMP")) //设置温度补偿 + { + SendMsgToHexcal("%"); + } + else if (msg.Contains("WKPPAR")) + { + SendMsgToHexcal("%"); + } + else if (msg.Contains("SCLTMP")) + { + SendMsgToHexcal("%"); + } + else if (msg.Contains("DISABLE GEO")) + { + SendMsgToHexcal("%"); + } + else if (msg.Contains("AUTZER")) //回家指令 + { + SendMsgToHexcal("%"); //收到并执行,同时状态改为忙碌 + + //执行回家 + IsHomed(); + } + else if (msg.Contains("MOVABS")) //移动指令,解析移动位置 + { + //收到指令 ,形如 MOVABS 0.015000,127.172997,-114.897003,0.000000\r\n + SendMsgToHexcal("%"); + + Point3D point = ParsePoint3DFromCommand(msg); + SetPositionXyz(point); //开始移动 + + _pointCloud.Add(point); //添加到点集合 + } + else if (msg.Contains("GETPOS")) //获取位置 + { + //POS 167.553898,-55.400421,-208.548678,0.000000,0.000000,0.000000,0.000000 + Point3D point3D = GetPositionXyz(); //获取当前位置 + string resultString = ConstructPosString(point3D); + SendMsgToHexcal(resultString); + } + else + { + DebugDfn.AddLogText("未知命令,没有应答"); + } + } + + private void ReceiveStatus(TcpIpServer.EnumTcpIpServer iType, string msg) + { + //记录到日志 + DebugDfn.AddLogText(iType + " : " + msg); + + //根据连接状态,更新界面 + switch (iType) + { + case TcpIpServer.EnumTcpIpServer.ClientConnect: + _mBHexcalConnected = true; + break; + + default: + _mBHexcalConnected = false; + break; + } + } + + private void SendMsgToHexcal(string msg) + { + if (_mTcpIpServer == null) + return; + + //发送数据 + DebugDfn.AddLogText("回复 " + msg); + _mTcpIpServer.SendMessageToAllClients(msg += "\r\n"); //回复内容末尾加上\r\n,协议要求 + } + + private void Btn_StartServer_Click(object sender, EventArgs e) + { + Btn_StartServer.Enabled = false; + Btn_StopServer.Enabled = true; + StartServer(); + DebugDfn.AddLogText("TCP服务端启动成功 "); + } + + private void Btn_StopServer_Click(object sender, EventArgs e) + { + //关闭服务端 + if (_mTcpIpServer != null) + { + _mTcpIpServer.StopListen(); + } + + Btn_StopServer.Enabled = false; + Btn_StartServer.Enabled = true; + _mBHexcalConnected = false; + DebugDfn.AddLogText("TCP服务端已关闭"); + } + + #endregion hexcal软件交互 + + #region ACS平台相关 + + #region 异常抓取 + + //实现函数 + + private static void Application_ThreadException(object sender, ThreadExceptionEventArgs e) + { + // 防止程序终止 + MessageBox.Show( + "发生了未处理的异常:" + e.Exception.Message, + "提示", + MessageBoxButtons.OK, + MessageBoxIcon.Information + ); + } + + private static void CurrentDomain_UnhandledException( + object sender, + UnhandledExceptionEventArgs e + ) + { + if (e.ExceptionObject is Exception ex) + { + HandleException(ex); + } + } + + private static void HandleException(Exception ex) + { + MessageBox.Show( + $"发生了未处理的异常:{ex.Message}", + "提示", + MessageBoxButtons.OK, + MessageBoxIcon.Information + ); + } + + //订阅报错 + private void EnableFaultEvent() + { + _acs.EnableEvent(Interrupts.ACSC_INTR_COMM_CHANNEL_CLOSED); + _acs.EnableEvent(Interrupts.ACSC_INTR_EMERGENCY); + _acs.EnableEvent(Interrupts.ACSC_INTR_SYSTEM_ERROR); + _acs.EnableEvent(Interrupts.ACSC_INTR_ETHERCAT_ERROR); + _acs.EnableEvent(Interrupts.ACSC_INTR_MOTOR_FAILURE); + _acs.EnableEvent(Interrupts.ACSC_INTR_MOTION_FAILURE); + _acs.EnableEvent(Interrupts.ACSC_INTR_PHYSICAL_MOTION_END); + _acs.COMMCHANNELCLOSED += _acs_COMMCHANNELCLOSED; + _acs.MOTORFAILURE += _acs_MOTORFAILURE; + _acs.MOTIONFAILURE += _acs_MOTIONFAILURE; + _acs.SYSTEMERROR += _acs_SYSTEMERROR; + _acs.ETHERCATERROR += _acs_ETHERCATERROR; + _acs.EMERGENCY += _acs_EMERGENCY; + _acs.PHYSICALMOTIONEND += _acs_PHYSICAL_MOTION_END; + } + + private void DisableFaultEvent() + { + _acs.COMMCHANNELCLOSED -= _acs_COMMCHANNELCLOSED; + _acs.MOTORFAILURE -= _acs_MOTORFAILURE; + _acs.MOTIONFAILURE -= _acs_MOTIONFAILURE; + _acs.SYSTEMERROR -= _acs_SYSTEMERROR; + _acs.ETHERCATERROR -= _acs_ETHERCATERROR; + _acs.EMERGENCY -= _acs_EMERGENCY; + _acs.PHYSICALMOTIONEND -= _acs_PHYSICAL_MOTION_END; + + _acs.DisableEvent(Interrupts.ACSC_INTR_COMM_CHANNEL_CLOSED); + _acs.DisableEvent(Interrupts.ACSC_INTR_EMERGENCY); + _acs.DisableEvent(Interrupts.ACSC_INTR_SYSTEM_ERROR); + _acs.DisableEvent(Interrupts.ACSC_INTR_ETHERCAT_ERROR); + _acs.DisableEvent(Interrupts.ACSC_INTR_MOTOR_FAILURE); + _acs.DisableEvent(Interrupts.ACSC_INTR_MOTION_FAILURE); + _acs.DisableEvent(Interrupts.ACSC_INTR_PHYSICAL_MOTION_END); + } + + //关联函数 + private void _acs_EMERGENCY(ulong param) + { + DebugDfn.AddLogText($"[EStopError] Error Message:{_acs.GetErrorString((int)param)}"); + } + + private void _acs_ETHERCATERROR(ulong param) + { + DebugDfn.AddLogText( + $"[EtherCatError] Error Message:{_acs.GetErrorString((int)param)}" + ); + } + + private void _acs_SYSTEMERROR(ulong param) + { + DebugDfn.AddLogText($"[SystemError] Error Message:{_acs.GetErrorString((int)param)}"); + } + + private void _acs_MOTIONFAILURE(AxisMasks axis) + { + for (int i = 0; i < _acs.GetAxesCount(); i++) + { + if (((int)axis & (int)Math.Pow(2, i)) == Math.Pow(2, i)) + { + if (_acs.GetMotionError((Axis)i) != 0) + { + //Motor无法自动捕获,需要在motion报错中获取 + int errorcode = _acs.GetMotionError((Axis)i); + + DebugDfn.AddLogText( + $"[MotionError] Axis:{i} Error Code:{errorcode} Error Message: {_acs.GetErrorString(errorcode)}" + ); + + int errorcodes = _acs.GetMotorError((Axis)i); + + DebugDfn.AddLogText( + $"[MotorError] Axis:{i} Error Code:{errorcodes} Error Message:{_acs.GetErrorString(errorcodes)}" + ); + } + } + } + } + + private void _acs_MOTORFAILURE(AxisMasks axis) + { + for (int i = 0; i < _acs.GetAxesCount(); i++) + { + if (((int)axis & (int)Math.Pow(2, i)) == Math.Pow(2, i)) + { + int errorcode = _acs.GetMotorError((Axis)i); + + DebugDfn.AddLogText( + $"[MotorError] Axis:{i} Error Code:{errorcode} Error Message:{_acs.GetErrorString(errorcode)}" + ); + } + } + } + + private void _acs_COMMCHANNELCLOSED(ulong param) + { + DebugDfn.AddLogText($"[CommError] Error Message:{_acs.GetErrorString((int)param)}"); + } + + private void _acs_PHYSICAL_MOTION_END(AxisMasks axis) + { + int bit = 0x01; + int axisNo = 0; + + for (int i = 0; i < 64; i++) + { + if ((int)axis == bit) + { + axisNo = i; + break; + } + + bit = bit << 1; + } + + //DebugDfn.AddLogText(string.Format(" - Axis {0}, Stoppped", axisNo)); + } + + #endregion 异常抓取 + + private void BtnEnable_Click(object sender, EventArgs e) //使能所有轴 + { + if (_mAcsConnected) + { + //!!!! Important !! Must insert '-1' at the last + _acs.EnableM(UseAxis); + } + else + { + //弹窗提醒尚未连接 + MessageBox.Show("未连接到运动平台,请先点击连接"); + } + } + + private void BtnDisable_Click(object sender, EventArgs e) //轴取消 + { + // Disable all of axes + _acs.DisableAll(); + } + + private bool IsMotionInPose() + { + bool x_inpose = false, + y_inpose = false, + z_inpose = false; + + _mNMotorState = _acs.GetMotorState(Axis.ACSC_AXIS_1); + if ((_mNMotorState & MotorStates.ACSC_MST_INPOS) != 0) + { + x_inpose = true; + } + + _mNMotorState = _acs.GetMotorState(Axis.ACSC_AXIS_0); + if ((_mNMotorState & MotorStates.ACSC_MST_INPOS) != 0) + { + y_inpose = true; + } + + _mNMotorState = _acs.GetMotorState(Axis.ACSC_AXIS_8); + if ((_mNMotorState & MotorStates.ACSC_MST_INPOS) != 0) + { + z_inpose = true; + } + + if (x_inpose && y_inpose && z_inpose) + { + return true; + } + + return false; + } + + private void TmrMonitor_Tick(object sender, EventArgs e) //用于刷新状态 + { + if (_mAcsConnected) + { + try + { + _mPoint3D = GetPositionXyz(); //取平台当前位置 + #region 更新限位及运动状态 + + //左右限位刷新 + _mObjReadVar = _acs.ReadVariableAsVector( + "FAULT", + ProgramBuffer.ACSC_NONE, + 0, + _mNTotalAxis - 1 + ); + if (_mObjReadVar != null) + { + _mArrReadVector = _mObjReadVar as Array; + if (_mArrReadVector != null) + { + UpdateLimitState(0, (int)_mArrReadVector.GetValue(1)); //获取X轴 + UpdateLimitState(1, (int)_mArrReadVector.GetValue(0)); + UpdateLimitState(2, (int)_mArrReadVector.GetValue(8)); + } + } + + UpdateSingleAxisStatus(); //刷新运动状态 + #endregion 更新限位及运动状态 + + #region 到位判断 + + if (IsMotionInPose()) + { + _currentMotionState = MotionStates.InPos; + //DebugDfn.AddLogText("运动到位"); + } + else + { + _currentMotionState = MotionStates.Moving; + //DebugDfn.AddLogText("运动中"); + isInPose = false; + } + + //增加判断 运动中到 运动到位,主动发送READY + if ( + _currentMotionState == MotionStates.InPos + && _currentMotionState != _currentMotorStateLast + ) + { + DebugDfn.AddLogText("运动到位"); + isInPose = true; + + if (isCounting) + { + m_nInPosCount++; + DebugDfn.AddLogText("到位次数" + m_nInPosCount); + } + } + + _currentMotorStateLast = _currentMotionState; + + #endregion 到位判断 + } + catch (Exception ex) + { + DebugDfn.AddLogText("ACS平台刷新异常" + ex); + MessageBox.Show( + ex.Message, + "ERROR", + MessageBoxButtons.OK, + MessageBoxIcon.Error + ); + Btn_ACSStop_Click(null, null); + } + } + } + + private void Btn_ACSStart_Click(object sender, EventArgs e) //连接 + { + btn_ACSStart.Enabled = false; + btn_ACSStop.Enabled = true; + + try + { + if (rdoTCP.Checked) + { + // TCP/IP (Ethernet) + // TCP/IP (Ethernet) + _acs.OpenCommEthernetTCP( + txtIP.Text, // IP Address (Default : 10.0.0.100) + Convert.ToInt32(txtPort.Text.Trim()) + ); // TCP/IP Port nubmer (default : 701) + } + else if (rdoSimu.Checked) + { + // Simmulation mode + _acs.OpenCommSimulator(); + } + + _mAcsConnected = true; + + //运动相关初始化操作 + InitMotion(); + + // 启动定时器 + tmrMonitor.Interval = 50; + tmrMonitor.Start(); + } + catch (COMException comex) + { + MessageBox.Show( + "Connection fail", + "Error", + MessageBoxButtons.OK, + MessageBoxIcon.Error + ); + Debug.WriteLine("Connection fail" + comex.Message); + + _mAcsConnected = false; + } + catch (Exception ex) + { + DebugDfn.AddLogText("ACS平台连接异常" + ex); + MessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void Btn_ACSStop_Click(object sender, EventArgs e) //断开连接 + { + if (_mAcsConnected) + { + //DisableFaultEvent(); //取消注册事件 + _acs.CloseComm(); + } + + tmrMonitor.Stop(); + _mAcsConnected = false; + btn_ACSStart.Enabled = true; + btn_ACSStop.Enabled = false; + } + + private void UpdateLimitState(int axisNo, int fault) //刷新限位 + { + if (axisNo < MaxUiLimitCnt) + { + if ((fault & (int)SafetyControlMasks.ACSC_SAFETY_LL) != 0) + _mLblLeftLimit[axisNo].Image = Resources.Error; + else + _mLblLeftLimit[axisNo].Image = Resources.Off; + if ((fault & (int)SafetyControlMasks.ACSC_SAFETY_RL) != 0) + _mLblRightLimit[axisNo].Image = Resources.Error; + else + _mLblRightLimit[axisNo].Image = Resources.Off; + } + } + + public int TranslateAxisNumber(Axis originalAxisNumber) + { + int newAxisNumber = -1; + + switch (originalAxisNumber) + { + case Axis.ACSC_AXIS_1: //X轴 + newAxisNumber = 0; + break; + + case Axis.ACSC_AXIS_0: + newAxisNumber = 1; //Y轴 + break; + + case Axis.ACSC_AXIS_8: + newAxisNumber = 2; + break; + } + + return newAxisNumber; + } + + private void UpdateSingleAxisStatus() + { + Axis axis = 0; + int _axisNo = 0; + for (int i = 0; i < UseAxis.Length; i++) + { + axis = UseAxis[i]; + + _axisNo = TranslateAxisNumber(UseAxis[i]); + + // Get Motor State ACSPL+ Variable : MST (integer) + _mNMotorState = _acs.GetMotorState(axis); + + if (_axisNo == -1) + { + return; + } + + // 运动中 + if ((_mNMotorState & MotorStates.ACSC_MST_MOVE) != 0) + { + _mlblMoving[_axisNo].Image = Resources.On; + } + else + { + _mlblMoving[_axisNo].Image = Resources.Off; + } + + // 就位 + if ((_mNMotorState & MotorStates.ACSC_MST_INPOS) != 0) + { + _mlblInPos[_axisNo].Image = Resources.On; + } + else + { + _mlblInPos[_axisNo].Image = Resources.Off; + } + + // 加速 + if ((_mNMotorState & MotorStates.ACSC_MST_ACC) != 0) + { + _mlblAcc[_axisNo].Image = Resources.On; + } + else + { + _mlblAcc[_axisNo].Image = Resources.Off; + } + + // 使能 + if ((_mNMotorState & MotorStates.ACSC_MST_ENABLE) != 0) + { + _mlblEnable[_axisNo].Image = Resources.On; + axisEnabled[_axisNo] = true; //轴使能 + } + else + { + _mlblEnable[_axisNo].Image = Resources.Off; + axisEnabled[_axisNo] = false; + } + } + + totalAxisEnabled = CalculateTotalEnabled(axisEnabled, 0, 1, 8); + DebugDfn.AddLogText($"总的使能状态为:{(totalAxisEnabled ? "使能" : "未使能")}"); + } + + private void IsHomed() //读取回家状态,当未回家时执行回家指令 + { + // 1、连接状态检查,如果未连接,提示 + if (!_mAcsConnected) + { + DebugDfn.AddLogText("[IsHomed] ACS平台未连接,请先点击连接"); + MessageBox.Show( + "ACS平台未连接,请先点击连接", + "提示", + MessageBoxButtons.OK, + MessageBoxIcon.Information + ); + return; + } + + // 2、回家状态检查是否已经回家 + if (_mAcsConnected && _homeStates == HomeStates.Homed) + { + //弹窗提示 + MessageBox.Show( + "轴已经回家", + "提示", + MessageBoxButtons.OK, + MessageBoxIcon.Information + ); + return; + } + + // 3、读取回家状态 + if (_acs != null && _mAcsConnected) + { + var yawHome = _acs.ReadVariable("YAW_HOME_DONE"); + + if (Convert.ToBoolean(yawHome)) + { + //弹窗提示 + MessageBox.Show( + "轴已经回家", + "提示", + MessageBoxButtons.OK, + MessageBoxIcon.Information + ); + _homeStates = HomeStates.Homed; + return; + } + // 4、执行回家指令,弹窗等待用户确认 + + DialogResult result = MessageBox.Show( + "轴未回家,即将执行回家指令", + "提示", + MessageBoxButtons.OK, + MessageBoxIcon.Information + ); + + if (result == DialogResult.OK) + { + // 在这里执行接下来的操作,例如回家指令 + + _acs.RunBuffer(ProgramBuffer.ACSC_BUFFER_6, null); //执行回家指令,这里的buffer6是回家指令的buffer + _homeStates = HomeStates.Homing; + _currentMotionState = MotionStates.Moving; + DebugDfn.AddLogText("回家运动中"); + + //等待回家完成 + for (int i = 0; i < UseAxis.Length; i++) + { + _acs.WaitMotionEnd(UseAxis[i], _motionTimeout); //等待回家完成 + } + + _homeStates = HomeStates.Homed; + _currentMotionState = MotionStates.InPos; + DebugDfn.AddLogText("回家完成"); + } + else + { + //弹窗提醒 + MessageBox.Show( + "点击了取消,未进行任何动作", + "提示", + MessageBoxButtons.OK, + MessageBoxIcon.Information + ); + } + } + } + + private void InitMotion() //定义 运动状态初始化函数,包括内部变量,轴启用,回家判断等 + { + string strTemp; + //运动相关变量初始化 + _homeStates = HomeStates.None; + _currentMotionState = MotionStates.None; + _currentMotionState = MotionStates.None; + + if (!_mAcsConnected) + { + MessageBox.Show("未连接运动平台,请先连接运动平台"); + return; + } + + //轴启用,加电 + _acs.EnableM(UseAxis); + for (int i = 0; i < UseAxis.Length; i++) + { + _acs.WaitMotorEnabled(UseAxis[i], 1, _motionTimeout); //等待电机使能 + } + + DebugDfn.AddLogText("电机已启用"); + + //回家 + IsHomed(); + + //设置定位速度 + SetSpeedXyz(MotionSpeedxy, MotionSpeedz); + + //获取轴数量 + strTemp = _acs.Transaction("?SYSINFO(13)"); + _mNTotalAxis = Convert.ToInt32(strTemp.Trim()); + _mLblLeftLimit = new Label[MaxUiLimitCnt]; //左限位 + _mLblLeftLimit[0] = lblLL0; + _mLblLeftLimit[1] = lblLL1; + _mLblLeftLimit[2] = lblLL2; + + _mLblRightLimit = new Label[MaxUiLimitCnt]; //右限位 + _mLblRightLimit[0] = lblRL0; + _mLblRightLimit[1] = lblRL1; + _mLblRightLimit[2] = lblRL2; + + _mlblMoving = new Label[MaxUiLimitCnt]; //运动中 + _mlblMoving[0] = lblMoving0; + _mlblMoving[1] = lblMoving1; + _mlblMoving[2] = lblMoving2; + + _mlblAcc = new Label[MaxUiLimitCnt]; // 加速中 + _mlblAcc[0] = lblAcc0; + _mlblAcc[1] = lblAcc1; + _mlblAcc[2] = lblAcc2; + + _mlblInPos = new Label[MaxUiLimitCnt]; //就位 + _mlblInPos[0] = lblInPos0; + _mlblInPos[1] = lblInPos1; + _mlblInPos[2] = lblInPos2; + + _mlblEnable = new Label[MaxUiLimitCnt]; //轴使能 + _mlblEnable[0] = lblEnable0; + _mlblEnable[1] = lblEnable1; + _mlblEnable[2] = lblEnable2; + + //EnableFaultEvent(); //订阅错误事件 + } + + public static bool IsWithinLimit(Point3D point) //判断点是否在行程范围内 + { + if ( + point.X >= XMinstrokesw + && point.X <= XMaxstrokesw + && point.Y >= YMinstrokesw + && point.Y <= YMaxstrokesw + && point.Z >= ZMinstrokesw + && point.Z <= ZMaxstrokesw + ) + { + + return true; + } + + DebugDfn.AddLogText(point.X.ToString() + " " + point.Y.ToString() + " " + point.Z.ToString()); + //打印 XMinstrokesw 等值 + DebugDfn.AddLogText("XMinstrokesw超限: " + XMinstrokesw); + DebugDfn.AddLogText("XMaxstrokesw超限: " + XMaxstrokesw); + DebugDfn.AddLogText("YMinstrokesw超限: " + YMinstrokesw); + DebugDfn.AddLogText("YMaxstrokesw超限: " + YMaxstrokesw); + DebugDfn.AddLogText("ZMinstrokesw超限: " + ZMinstrokesw); + DebugDfn.AddLogText("ZMaxstrokesw超限: " + ZMaxstrokesw); + return false; + } + + public static bool IsWithinLimit(Point point) //判断点是否在行程范围内 + { + if ( + point.X >= XMinstrokesw + && point.X <= XMaxstrokesw + && point.Y >= YMinstrokesw + && point.Y <= YMaxstrokesw + && point.Z >= ZMinstrokesw + && point.Z <= ZMaxstrokesw + ) + { + return true; + } + + return false; + } + + public void SetPositionXyz(Point3D point3D) //运动到指定位置 + { + if (!_mAcsConnected) + { + DebugDfn.AddLogText("ACS平台未连接,请先点击连接"); + MessageBox.Show( + "ACS平台未连接,请先点击连接", + "提示", + MessageBoxButtons.OK, + MessageBoxIcon.Information + ); + return; + } + + if (_currentMotionState != MotionStates.Moving) + { + _currentMotionState = MotionStates.Moving; //设置当前运动状态 + //判断 point3D是否合法 + if (point3D != null) + { + if (IsWithinLimit(point3D)) //判断点是否在行程范围内 + { + double[] pointsArray = { point3D.X, point3D.Y, point3D.Z }; + //判断各轴使能状态,如果未使能,则使能 + + if (!totalAxisEnabled) + { + _acs.EnableM(UseAxis); + for (int i = 0; i < UseAxis.Length; i++) + { + _acs.WaitMotorEnabled(UseAxis[i], 1, _motionTimeout); //等待电机使能 + } + + //DebugDfn.AddLogText("电机已启用"); + } + + //执行运动指令 + _acs.ToPointM(MotionFlags.ACSC_NONE, UseAxis, pointsArray); //多轴运动到指定位置 + } + else + { + DebugDfn.AddLogText("目标位置超出行程范围,请重新设置"); + //MessageBox.Show( + // "目标位置超出行程范围,请重新设置", + // "异常", + // MessageBoxButtons.OK, + // MessageBoxIcon.Error + //); + } + } + else + { + DebugDfn.AddLogText("目标位置为空,请重新设置"); + MessageBox.Show( + "目标位置为空,请重新设置", + "异常", + MessageBoxButtons.OK, + MessageBoxIcon.Error + ); + } + } + } + + private Point3D GetPositionXyz(int positionMode = 1) //获取当前位置 + { + double xPosition = 0, + yPosition = 0, + zPosition = 0; + Point3D point3D = new Point3D(xPosition, yPosition, zPosition); + if (!_mAcsConnected) + { + DebugDfn.AddLogText("ACS平台未连接,请先点击连接"); + MessageBox.Show( + "ACS平台未连接,请先点击连接", + "提示", + MessageBoxButtons.OK, + MessageBoxIcon.Information + ); + return point3D; + } + + //获取当前位置, 两种 GetRPosition,GetFPosition + if (positionMode == 1) + { + //获取反馈位置 Feedback position (Encoder value) ACSPL+ Variable : FPO (real) + xPosition = _acs.GetFPosition(UseAxis[0]); + yPosition = _acs.GetFPosition(UseAxis[1]); + zPosition = _acs.GetFPosition(UseAxis[2]); + //DebugDfn.AddLogText("反馈位置: " + xPosition + " " + yPosition + " " + zPosition); + } + else + { + //获取参考位置 ACSPL+ Variable : RPOS (real) + xPosition = _acs.GetRPosition(UseAxis[0]); + yPosition = _acs.GetRPosition(UseAxis[1]); + zPosition = _acs.GetRPosition(UseAxis[2]); + DebugDfn.AddLogText("参考位置: " + xPosition + " " + yPosition + " " + zPosition); + } + + //构造point3D格式 + point3D = new Point3D(xPosition, yPosition, zPosition); + + return point3D; + } + + private void SetSpeedXyz(double speedxy, double speedz) //获取运动参数 + { + //获取实际速度 + double feedbackVelocity = (double) + _acs.ReadVariable("FVEL", ProgramBuffer.ACSC_NONE, 0, 0); + DebugDfn.AddLogText("实际速度: " + feedbackVelocity); + + //设置Y轴 速度参数 + _acs.SetVelocity(Axis.ACSC_AXIS_0, speedxy); + _acs.SetAcceleration(Axis.ACSC_AXIS_0, speedxy * 10); + _acs.SetDeceleration(Axis.ACSC_AXIS_0, speedxy * 10); + _acs.SetKillDeceleration(Axis.ACSC_AXIS_0, speedxy * 100); + _acs.SetJerk(Axis.ACSC_AXIS_0, speedxy * 100); + + //设置X轴速度参数 + _acs.SetVelocity(Axis.ACSC_AXIS_1, speedxy); + _acs.SetAcceleration(Axis.ACSC_AXIS_1, speedxy * 10); + _acs.SetDeceleration(Axis.ACSC_AXIS_1, speedxy * 10); + _acs.SetKillDeceleration(Axis.ACSC_AXIS_1, speedxy * 100); + _acs.SetJerk(Axis.ACSC_AXIS_1, speedxy * 100); + + //设置Z轴速度参数 + + _acs.SetVelocity(Axis.ACSC_AXIS_8, speedz); + _acs.SetAcceleration(Axis.ACSC_AXIS_8, speedz * 10); + _acs.SetDeceleration(Axis.ACSC_AXIS_8, speedz * 10); + _acs.SetKillDeceleration(Axis.ACSC_AXIS_8, speedz * 100); + _acs.SetJerk(Axis.ACSC_AXIS_8, speedz * 100); + + DebugDfn.AddLogText($"速度设置完成 "); + } + + private void rtb_quick_loc_Click(object sender, EventArgs e) //快速定位 + { + // 获取文本框的值 + double x = double.Parse(rtb_SetX.Text); + double y = double.Parse(rtb_Sety.Text); + double z = double.Parse(rtb_SetZ.Text); + + // 构造 Point3D 对象 + Point3D point = new Point3D(x, y, z); + + SetPositionXyz(point); + } + + private static bool CalculateTotalEnabled(bool[] axisEnabled, params int[] axisIndices) //判断轴使能状态 + { + bool totalEnabled = true; + foreach (int index in axisIndices) + { + bool isEnabled = axisEnabled[index]; + if (!isEnabled) + { + totalEnabled = false; + break; + } + } + return totalEnabled; + } + + private void rtb_stop_Click(object sender, EventArgs e) + { + try + { + Axis[] m_arrAxisList = new Axis[] + { + Axis.ACSC_AXIS_0, + Axis.ACSC_AXIS_1, + Axis.ACSC_AXIS_8, + Axis.ACSC_NONE, + }; + + if (m_arrAxisList != null) + _acs.HaltM(m_arrAxisList); + + DebugDfn.AddLogText("立即停止 已发送命令"); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); + Debug.WriteLine(ex.Message); + } + } + + private void rtb_home_Click(object sender, EventArgs e) + { + //弹窗提醒用户,是否执行回家指令 + DialogResult result = MessageBox.Show( + "是否执行回家指令", + "提示", + MessageBoxButtons.OKCancel, + MessageBoxIcon.Information + ); + + if (result == DialogResult.Cancel) + { + return; + } + + DebugDfn.AddLogText("回家指令已发送"); + if (!_mAcsConnected) + { + DebugDfn.AddLogText("ACS平台未连接,请先点击连接"); + MessageBox.Show( + "ACS平台未连接,请先点击连接", + "提示", + MessageBoxButtons.OK, + MessageBoxIcon.Information + ); + return; + } + + if (_currentMotionState != MotionStates.Moving) + { + _currentMotionState = MotionStates.Moving; //设置当前运动状态 + + _acs.RunBuffer(ProgramBuffer.ACSC_BUFFER_6, null); //执行回家指令,这里的buffer6是回家指令的buffer + _homeStates = HomeStates.Homing; + _currentMotionState = MotionStates.Moving; + DebugDfn.AddLogText("回家运动中"); + + //等待回家完成 + for (int i = 0; i < UseAxis.Length; i++) + { + _acs.WaitMotionEnd(UseAxis[i], _motionTimeout); //等待回家完成 + } + + _homeStates = HomeStates.Homed; + _currentMotionState = MotionStates.InPos; + DebugDfn.AddLogText("回家完成"); + } + } + + private void rtb_etalon_Click(object sender, EventArgs e) //etalon校准 + { + DebugDfn.AddLogText("Etalon校准"); + //判断通讯对象是否存在 + if (_acs == null || !_acs.IsConnected) + { + DebugDfn.AddLogText("未建立与运动平台通讯,请在主界面先建立通讯"); + + // 在合适的位置调用 MessageBox.Show() 方法 + MessageBox.Show( + "未建立与运动平台通讯,请在主界面先建立通讯", + "提示", + MessageBoxButtons.OK, + MessageBoxIcon.Information + ); + + return; + } + else + { + EtalonForm etalonForm = new EtalonForm(this); + etalonForm.Show(); + } + } + + #endregion ACS平台相关 + + #region 菜单栏 + + private void btn_motion_Click(object sender, EventArgs e) + { + //判断通讯对象是否存在 + if (_acs == null || !_acs.IsConnected) + { + DebugDfn.AddLogText("未建立与运动平台通讯,请在主界面先建立通讯"); + + // 在合适的位置调用 MessageBox.Show() 方法 + MessageBox.Show( + "未建立与运动平台通讯,请在主界面先建立通讯", + "提示", + MessageBoxButtons.OK, + MessageBoxIcon.Information + ); + + return; + } + else + { + Motion motion = new Motion(this); + motion.Show(); + } + } + + private void Rtb_about_Click(object sender, EventArgs e) //关于界面 + { + AboutBox mAboutBox = new AboutBox(); + mAboutBox.StartPosition = FormStartPosition.CenterScreen; + mAboutBox.Show(); + } + + private void rtb_demo_Click(object sender, EventArgs e) + { + DemoShow demoShow = new DemoShow(_acs); + demoShow.Show(); + demoShow.BringToFront(); + } + + private void Timer_RefreshUI_Tick(object sender, EventArgs e) //UI刷新 + { + //状态灯刷新 + lamp_acs.State = _mAcsConnected ? LampColor.Green : LampColor.Silver; + lamp_hexcal.State = _mBHexcalConnected ? LampColor.Green : LampColor.Silver; + + //时间栏 + //获取当前时间,构造形如 精确到秒,例如 2023-10-08 16:01:23 + rle_timer.Text = "当前时间: " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + + Plot2D(_pointCloud); //绘图 + + //更新位置 + if (_mPoint3D != null) + { + rtb_xPos.Text = _mPoint3D.X.ToString("F3"); + rtb_yPos.Text = _mPoint3D.Y.ToString("F3"); + rtb_zPos.Text = _mPoint3D.Z.ToString("F3"); + } + } + + #endregion 菜单栏 + } +} diff --git a/HexcalMC/Motion/EtalonForm.Designer.cs b/HexcalMC/Motion/EtalonForm.Designer.cs index 5df80f6..843c017 100644 --- a/HexcalMC/Motion/EtalonForm.Designer.cs +++ b/HexcalMC/Motion/EtalonForm.Designer.cs @@ -28,6 +28,7 @@ /// private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EtalonForm)); this.btn_draw_test = new System.Windows.Forms.Button(); this.checkMirrorY = new System.Windows.Forms.CheckBox(); @@ -47,8 +48,9 @@ this.btn_startmove = new System.Windows.Forms.Button(); this.btn_stop = new System.Windows.Forms.Button(); this.groupBox2 = new System.Windows.Forms.GroupBox(); - this.label1 = new System.Windows.Forms.Label(); this.text_etalon_info = new System.Windows.Forms.RichTextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.timer_move = new System.Windows.Forms.Timer(this.components); this.editor3D = new Plot3D.Editor3D(); this.groupBox1.SuspendLayout(); this.groupBox2.SuspendLayout(); @@ -260,6 +262,14 @@ this.groupBox2.TabStop = false; this.groupBox2.Text = "etalon操作"; // + // text_etalon_info + // + this.text_etalon_info.Location = new System.Drawing.Point(6, 249); + this.text_etalon_info.Name = "text_etalon_info"; + this.text_etalon_info.Size = new System.Drawing.Size(440, 361); + this.text_etalon_info.TabIndex = 50; + this.text_etalon_info.Text = ""; + // // label1 // this.label1.AutoSize = true; @@ -269,13 +279,10 @@ this.label1.TabIndex = 49; this.label1.Text = "输出"; // - // text_etalon_info + // timer_move // - this.text_etalon_info.Location = new System.Drawing.Point(6, 249); - this.text_etalon_info.Name = "text_etalon_info"; - this.text_etalon_info.Size = new System.Drawing.Size(440, 361); - this.text_etalon_info.TabIndex = 50; - this.text_etalon_info.Text = ""; + this.timer_move.Interval = 500; + this.timer_move.Tick += new System.EventHandler(this.timer_move_Tick); // // editor3D // @@ -335,5 +342,6 @@ private System.Windows.Forms.Button btn_clear; private System.Windows.Forms.Label label1; private System.Windows.Forms.RichTextBox text_etalon_info; + private System.Windows.Forms.Timer timer_move; } } \ No newline at end of file diff --git a/HexcalMC/Motion/EtalonForm.cs b/HexcalMC/Motion/EtalonForm.cs index d2d80ba..fe1a102 100644 --- a/HexcalMC/Motion/EtalonForm.cs +++ b/HexcalMC/Motion/EtalonForm.cs @@ -1,641 +1,783 @@ -using ScottPlot.Plottable; -using ScottPlot; -using System; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; +using System.Diagnostics; using System.Drawing; +using System.Drawing.Imaging; +using System.IO; using System.Linq; using System.Text; +using System.Text.RegularExpressions; +using System.Threading; using System.Threading.Tasks; +using System.Timers; using System.Windows.Forms; - +using ACS.SPiiPlusNET; +using HexcalMC.Base; using Plot3D; - -// enums -using eRaster = Plot3D.Editor3D.eRaster; -using ePolygonMode = Plot3D.Editor3D.ePolygonMode; -using eSelEvent = Plot3D.Editor3D.eSelEvent; -using eSelType = Plot3D.Editor3D.eSelType; -using eObjType = Plot3D.Editor3D.eObjType; -using eTooltip = Plot3D.Editor3D.eTooltip; -using eNormalize = Plot3D.Editor3D.eNormalize; -using eMouseCtrl = Plot3D.Editor3D.eMouseCtrl; -using eScatterShape = Plot3D.Editor3D.eScatterShape; -using eColorScheme = Plot3D.Editor3D.eColorScheme; -using eInvalidate = Plot3D.Editor3D.eInvalidate; -using eLegendPos = Plot3D.Editor3D.eLegendPos; - +using ScottPlot; +using ScottPlot.Plottable; +using Telerik.WinControls; +using Telerik.WinControls.UI; +using static Plot3D.Editor3D; +using static Telerik.WinControls.UI.ValueMapper; +using cColorScheme = Plot3D.Editor3D.cColorScheme; +using cLine3D = Plot3D.Editor3D.cLine3D; +using cLineData = Plot3D.Editor3D.cLineData; +using cMessgData = Plot3D.Editor3D.cMessgData; // classes using cObject3D = Plot3D.Editor3D.cObject3D; using cPoint3D = Plot3D.Editor3D.cPoint3D; -using cShape3D = Plot3D.Editor3D.cShape3D; -using cLine3D = Plot3D.Editor3D.cLine3D; using cPolygon3D = Plot3D.Editor3D.cPolygon3D; -using cColorScheme = Plot3D.Editor3D.cColorScheme; -using cMessgData = Plot3D.Editor3D.cMessgData; -using cSurfaceData = Plot3D.Editor3D.cSurfaceData; -using cScatterData = Plot3D.Editor3D.cScatterData; -using cLineData = Plot3D.Editor3D.cLineData; using cPolygonData = Plot3D.Editor3D.cPolygonData; +using cScatterData = Plot3D.Editor3D.cScatterData; +using cShape3D = Plot3D.Editor3D.cShape3D; +using cSurfaceData = Plot3D.Editor3D.cSurfaceData; using cUserInput = Plot3D.Editor3D.cUserInput; - // callback function using delRendererFunction = Plot3D.Editor3D.delRendererFunction; -using static Plot3D.Editor3D; -using System.Diagnostics; -using System.Drawing.Imaging; -using System.Text.RegularExpressions; -using System.IO; -using Telerik.WinControls; -using static Telerik.WinControls.UI.ValueMapper; -using HexcalMC.Base; -using ACS.SPiiPlusNET; +using eColorScheme = Plot3D.Editor3D.eColorScheme; +using eInvalidate = Plot3D.Editor3D.eInvalidate; +using eLegendPos = Plot3D.Editor3D.eLegendPos; +using eMouseCtrl = Plot3D.Editor3D.eMouseCtrl; +using eNormalize = Plot3D.Editor3D.eNormalize; +using eObjType = Plot3D.Editor3D.eObjType; +using ePolygonMode = Plot3D.Editor3D.ePolygonMode; +// enums +using eRaster = Plot3D.Editor3D.eRaster; +using eScatterShape = Plot3D.Editor3D.eScatterShape; +using eSelEvent = Plot3D.Editor3D.eSelEvent; +using eSelType = Plot3D.Editor3D.eSelType; +using eTooltip = Plot3D.Editor3D.eTooltip; namespace HexcalMC { - internal enum eDemo - { - Math_Callback, - Math_Formula, - Surface_Fill, - Surface_Grid, - Surface_Fill_Missing, - Surface_Grid_Missing, - Nested_Graphs, - Scatter_Plot, - Connected_Lines, - Scatter_Shapes, - Pyramid, - Sphere_Fill_Closed, - Sphere_Fill_Open, - Sphere_Grid, - Valentine, - Animation, - } + internal enum eDemo + { + Math_Callback, + Math_Formula, + Surface_Fill, + Surface_Grid, + Surface_Fill_Missing, + Surface_Grid_Missing, + Nested_Graphs, + Scatter_Plot, + Connected_Lines, + Scatter_Shapes, + Pyramid, + Sphere_Fill_Closed, + Sphere_Fill_Open, + Sphere_Grid, + Valentine, + Animation, + } - public partial class EtalonForm : System.Windows.Forms.Form - { - private eDemo me_Demo; - private eColorScheme me_ColorScheme; - private Timer mi_StatusTimer = new Timer(); - private cMessgData mi_MesgTop = new cMessgData("", -7, 7, Color.Blue); // For special hint - private cMessgData mi_MesgBottom = new cMessgData("", -7, -7, Color.Gray); // For selection mode + public partial class EtalonForm : System.Windows.Forms.Form + { + private eDemo me_Demo; + private eColorScheme me_ColorScheme; + private System.Windows.Forms.Timer mi_StatusTimer = new System.Windows.Forms.Timer(); + private cMessgData mi_MesgTop = new cMessgData("", -7, 7, Color.Blue); // For special hint + private cMessgData mi_MesgBottom = new cMessgData("", -7, -7, Color.Gray); // For selection mode - // Only for demo "Animation" - private Timer mi_AnimationTimer = new Timer(); + // Only for demo "Animation" + private System.Windows.Forms.Timer mi_AnimationTimer = new System.Windows.Forms.Timer(); - private cScatterData mi_SinusData; - private cPoint3D[] mi_Pyramid; - private int ms32_AnimationAngle; + private cScatterData mi_SinusData; + private cPoint3D[] mi_Pyramid; + private int ms32_AnimationAngle; - // etalon解析变量 - private List etalon_points = new List(); + // etalon解析变量 + private List etalon_points = new List(); - private List filteredPoints = new List(); //过滤后的点 - private List dwellTimes = new List(); + private List filteredPoints = new List(); //过滤后的点 + private List dwellTimes = new List(); - private static Timer refresh_time = new Timer(); - private static int currentIndex = 0; + private static System.Windows.Forms.Timer refresh_time = new System.Windows.Forms.Timer(); + private static int currentIndex = 0; - private readonly MainFrom mainFrom; - private readonly Api _acs; //ACS控制器 + private readonly MainFrom mainFrom; + private readonly Api _acs; //ACS控制器 - public EtalonForm(MainFrom _mainFrom) - { - InitializeComponent(); - mainFrom = _mainFrom; - this._acs = _mainFrom._acs; - } + public Axis[] axes = + { + Axis.ACSC_AXIS_0, + Axis.ACSC_AXIS_1, + Axis.ACSC_AXIS_8, + Axis.ACSC_NONE, + }; //使能的轴 - private void EtalonForm_Load(object sender, EventArgs e) - { - InitScatterPlot(); //清空绘图 + public class Point + { + public double X { get; } + public double Y { get; } + public double Z { get; } - DebugDfn.textBox_Msg = this.text_etalon_info; - } + public Point(double x, double y, double z) + { + X = x; + Y = y; + Z = z; + } - private void InitScatterPlot() //绘图区初始化 - { - comboColors.Sorted = false; - foreach (eColorScheme e_Scheme in Enum.GetValues(typeof(eColorScheme))) - { - comboColors.Items.Add(e_Scheme.ToString().Replace('_', ' ')); - } - comboColors.SelectedIndex = (int)eColorScheme.Monochrome; //默认色卡 + // 从 Point 转换 + public static Point3D FromPoint(Point point) + { + return new Point3D(point.X, point.Y, point.Z); + } + } - comboRaster.Sorted = false; - foreach (eRaster e_Raster in Enum.GetValues(typeof(eRaster))) - { - comboRaster.Items.Add(e_Raster); - } - comboRaster.SelectedIndex = (int)eRaster.Labels; //坐标系栅格样式 + public EtalonForm(MainFrom _mainFrom) + { + InitializeComponent(); + mainFrom = _mainFrom; + this._acs = _mainFrom._acs; + } - //设置默认 - comboMouse.SelectedIndex = 0; + private void EtalonForm_Load(object sender, EventArgs e) + { + InitScatterPlot(); //清空绘图 - // 设置定时器 - refresh_time.Interval = 100; - refresh_time.Tick += new EventHandler(OnAnimationTimer); - refresh_time.Start(); - } + DebugDfn.textBox_Msg = this.text_etalon_info; + } - private void DemoScatterPlot(bool b_Lines) - { - comboColors.Enabled = true; // Some of the demos will disable this combobox - me_ColorScheme = (eColorScheme)comboColors.SelectedIndex; + #region 绘图区功能 + private void InitScatterPlot() //绘图区初始化 + { + comboColors.Sorted = false; + foreach (eColorScheme e_Scheme in Enum.GetValues(typeof(eColorScheme))) + { + comboColors.Items.Add(e_Scheme.ToString().Replace('_', ' ')); + } + comboColors.SelectedIndex = (int)eColorScheme.Monochrome; //默认色卡 - checkMirrorX.Checked = editor3D.AxisX.Mirror; - checkMirrorY.Checked = editor3D.AxisY.Mirror; + comboRaster.Sorted = false; + foreach (eRaster e_Raster in Enum.GetValues(typeof(eRaster))) + { + comboRaster.Items.Add(e_Raster); + } + comboRaster.SelectedIndex = (int)eRaster.Labels; //坐标系栅格样式 - // 3 pixels for line width and for circle radius - const int SIZE = 3; + //设置默认 + comboMouse.SelectedIndex = 0; - cColorScheme i_Scheme = new cColorScheme(me_ColorScheme); - cScatterData i_ShapeData = new cScatterData(i_Scheme); - cLineData i_LineData = new cLineData(i_Scheme); - List i_Points = new List(); + // 设置定时器 + refresh_time.Interval = 100; + refresh_time.Tick += new EventHandler(OnAnimationTimer); + refresh_time.Start(); + } - for (double P = -22.0; P < 22.0; P += 0.1) - { - double d_X = Math.Sin(P) * P; - double d_Y = Math.Cos(P) * P; - double d_Z = P; - if (d_Z > 0.0) d_Z /= 3.0; + private void DemoScatterPlot(bool b_Lines) + { + comboColors.Enabled = true; // Some of the demos will disable this combobox + me_ColorScheme = (eColorScheme)comboColors.SelectedIndex; - cPoint3D i_Point = new cPoint3D(d_X, d_Y, d_Z, "Scatter Point"); - if (b_Lines) - { - i_Points.Add(i_Point); - } - else // Shapes - { - // You can store the returned shape in a variable and later modify it's properties - cShape3D i_Shape = i_ShapeData.AddShape(i_Point, eScatterShape.Circle, SIZE, null); - } - } + checkMirrorX.Checked = editor3D.AxisX.Mirror; + checkMirrorY.Checked = editor3D.AxisY.Mirror; - // You can store the returned lines in a variable and later modify their properties - cLine3D[] i_Lines = i_LineData.AddConnectedLines(i_Points, SIZE, null); + // 3 pixels for line width and for circle radius + const int SIZE = 3; - // Depending on your use case you can also specify MaintainXY or MaintainXYZ here - editor3D.Clear(); - editor3D.Normalize = eNormalize.Separate; - editor3D.AddRenderData(i_ShapeData, i_LineData); + cColorScheme i_Scheme = new cColorScheme(me_ColorScheme); + cScatterData i_ShapeData = new cScatterData(i_Scheme); + cLineData i_LineData = new cLineData(i_Scheme); + List i_Points = new List(); - editor3D.Selection.HighlightColor = Color.FromArgb(90, 90, 90); - editor3D.Selection.Callback = OnSelectEvent; - editor3D.Selection.MultiSelect = true; - editor3D.Selection.Enabled = true; - editor3D.UndoBuffer.Enabled = true; - editor3D.Invalidate(); - } + for (double P = -22.0; P < 22.0; P += 0.1) + { + double d_X = Math.Sin(P) * P; + double d_Y = Math.Cos(P) * P; + double d_Z = P; + if (d_Z > 0.0) + d_Z /= 3.0; - private eInvalidate OnSelectEvent(eSelEvent e_Event, Keys e_Modifiers, int s32_DeltaX, int s32_DeltaY, cObject3D i_Object)// - { - eInvalidate e_Invalidate = eInvalidate.NoChange; + cPoint3D i_Point = new cPoint3D(d_X, d_Y, d_Z, "Scatter Point"); + if (b_Lines) + { + i_Points.Add(i_Point); + } + else // Shapes + { + // You can store the returned shape in a variable and later modify it's properties + cShape3D i_Shape = i_ShapeData.AddShape( + i_Point, + eScatterShape.Circle, + SIZE, + null + ); + } + } - bool b_CTRL = (e_Modifiers & Keys.Control) > 0; + // You can store the returned lines in a variable and later modify their properties + cLine3D[] i_Lines = i_LineData.AddConnectedLines(i_Points, SIZE, null); - // The left mouse button went down with ALT key down and CTRL key up - if (e_Event == eSelEvent.MouseDown && !b_CTRL && i_Object != null) - { - i_Object.Selected = !i_Object.Selected; + // Depending on your use case you can also specify MaintainXY or MaintainXYZ here + editor3D.Clear(); + editor3D.Normalize = eNormalize.Separate; + editor3D.AddRenderData(i_ShapeData, i_LineData); - // After changing the selection status the object must be redrawn. - e_Invalidate = eInvalidate.Invalidate; - } - else if (e_Event == eSelEvent.MouseDrag && b_CTRL) - { - // The user is dragging the mouse with ALT + CTRL keys down. Convert the mouse - // movement in the 2D space into a movement in the 3D space. - cPoint3D i_Project = editor3D.ReverseProject(s32_DeltaX, s32_DeltaY); + editor3D.Selection.HighlightColor = Color.FromArgb(90, 90, 90); + editor3D.Selection.Callback = OnSelectEvent; + editor3D.Selection.MultiSelect = true; + editor3D.Selection.Enabled = true; + editor3D.UndoBuffer.Enabled = true; + editor3D.Invalidate(); + } - // GetSelectedPoints() returns only unique points. - cPoint3D[] i_Selected = editor3D.Selection.GetSelectedPoints(eSelType.All); - foreach (cPoint3D i_Point in i_Selected) - { - switch (me_Demo) - { - case eDemo.Pyramid: - case eDemo.Scatter_Shapes: - case eDemo.Scatter_Plot: - case eDemo.Connected_Lines: - // The pyramid line end points / scatter shapes can be moved freely in - // the 3D space - i_Point.Move(i_Project.X, i_Project.Y, i_Project.Z); - break; + private eInvalidate OnSelectEvent( + eSelEvent e_Event, + Keys e_Modifiers, + int s32_DeltaX, + int s32_DeltaY, + cObject3D i_Object + ) // + { + eInvalidate e_Invalidate = eInvalidate.NoChange; - case eDemo.Surface_Fill: - case eDemo.Surface_Grid: - case eDemo.Surface_Fill_Missing: - case eDemo.Surface_Grid_Missing: - // The points in the Surface grid have a fixed X,Y position, only Z can - // be modified. - i_Point.Move(0, 0, i_Project.Z); - break; + bool b_CTRL = (e_Modifiers & Keys.Control) > 0; - default: - Debug.Assert(false); - break; - } - } + // The left mouse button went down with ALT key down and CTRL key up + if (e_Event == eSelEvent.MouseDown && !b_CTRL && i_Object != null) + { + i_Object.Selected = !i_Object.Selected; - // Set flag to recalculate the coordinate system, then Invalidate() - e_Invalidate = eInvalidate.CoordSystem; - } + // After changing the selection status the object must be redrawn. + e_Invalidate = eInvalidate.Invalidate; + } + else if (e_Event == eSelEvent.MouseDrag && b_CTRL) + { + // The user is dragging the mouse with ALT + CTRL keys down. Convert the mouse + // movement in the 2D space into a movement in the 3D space. + cPoint3D i_Project = editor3D.ReverseProject(s32_DeltaX, s32_DeltaY); - mi_StatusTimer.Stop(); + // GetSelectedPoints() returns only unique points. + cPoint3D[] i_Selected = editor3D.Selection.GetSelectedPoints(eSelType.All); + foreach (cPoint3D i_Point in i_Selected) + { + switch (me_Demo) + { + case eDemo.Pyramid: + case eDemo.Scatter_Shapes: + case eDemo.Scatter_Plot: + case eDemo.Connected_Lines: + // The pyramid line end points / scatter shapes can be moved freely in + // the 3D space + i_Point.Move(i_Project.X, i_Project.Y, i_Project.Z); + break; - mi_StatusTimer.Start(); - return e_Invalidate; - } + case eDemo.Surface_Fill: + case eDemo.Surface_Grid: + case eDemo.Surface_Fill_Missing: + case eDemo.Surface_Grid_Missing: + // The points in the Surface grid have a fixed X,Y position, only Z can + // be modified. + i_Point.Move(0, 0, i_Project.Z); + break; - private void comboRaster_SelectedIndexChanged(object sender, EventArgs e) //坐标栅格样式 - { - editor3D.Raster = (eRaster)comboRaster.SelectedIndex; - editor3D.Invalidate(); - } + default: + Debug.Assert(false); + break; + } + } - private void checkMirrorY_CheckedChanged(object sender, EventArgs e) //Y轴镜像 - { - editor3D.AxisY.Mirror = checkMirrorY.Checked; - editor3D.Invalidate(); - } + // Set flag to recalculate the coordinate system, then Invalidate() + e_Invalidate = eInvalidate.CoordSystem; + } - private void checkMirrorX_CheckedChanged(object sender, EventArgs e) //x轴镜像 - { - editor3D.AxisX.Mirror = checkMirrorX.Checked; - editor3D.Invalidate(); - } + mi_StatusTimer.Stop(); - private void btnReset_Click(object sender, EventArgs e) //重置视图 - { - editor3D.SetCoefficients(1350, 70, 230); - editor3D.Invalidate(); - } + mi_StatusTimer.Start(); + return e_Invalidate; + } - private void btnScreenshot_Click(object sender, EventArgs e) //截图保存 - { - SaveFileDialog i_Dlg = new SaveFileDialog(); - i_Dlg.Title = "Save as PNG image"; - i_Dlg.Filter = "PNG Image|*.png"; - i_Dlg.DefaultExt = ".png"; + private void comboRaster_SelectedIndexChanged(object sender, EventArgs e) //坐标栅格样式 + { + editor3D.Raster = (eRaster)comboRaster.SelectedIndex; + editor3D.Invalidate(); + } - if (DialogResult.Cancel == i_Dlg.ShowDialog(this)) - return; + private void checkMirrorY_CheckedChanged(object sender, EventArgs e) //Y轴镜像 + { + editor3D.AxisY.Mirror = checkMirrorY.Checked; + editor3D.Invalidate(); + } - Bitmap i_Bitmap = editor3D.GetScreenshot(); - try - { - i_Bitmap.Save(i_Dlg.FileName, ImageFormat.Png); - } - catch (Exception Ex) - { - MessageBox.Show(this, Ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } + private void checkMirrorX_CheckedChanged(object sender, EventArgs e) //x轴镜像 + { + editor3D.AxisX.Mirror = checkMirrorX.Checked; + editor3D.Invalidate(); + } - private void comboMouse_SelectedIndexChanged(object sender, EventArgs e) //鼠标控制方式 - { - switch (comboMouse.SelectedIndex) - { - case 0: - editor3D.SetUserInputs(eMouseCtrl.L_Theta_R_Phi); - labelMouseInfo.Text = "鼠标左键:升高,鼠标右键:旋转"; - break; + private void btnReset_Click(object sender, EventArgs e) //重置视图 + { + editor3D.SetCoefficients(1350, 70, 230); + editor3D.Invalidate(); + } - case 1: - editor3D.SetUserInputs(eMouseCtrl.L_Theta_L_Phi); - labelMouseInfo.Text = "鼠标左键:升高和旋转"; - break; + private void btnScreenshot_Click(object sender, EventArgs e) //截图保存 + { + SaveFileDialog i_Dlg = new SaveFileDialog(); + i_Dlg.Title = "Save as PNG image"; + i_Dlg.Filter = "PNG Image|*.png"; + i_Dlg.DefaultExt = ".png"; - case 2: - editor3D.SetUserInputs(eMouseCtrl.M_Theta_M_Phi); - labelMouseInfo.Text = "鼠标中键:升高和旋转"; - break; + if (DialogResult.Cancel == i_Dlg.ShowDialog(this)) + return; - default: - Debug.Assert(false); - break; - } + Bitmap i_Bitmap = editor3D.GetScreenshot(); + try + { + i_Bitmap.Save(i_Dlg.FileName, ImageFormat.Png); + } + catch (Exception Ex) + { + MessageBox.Show( + this, + Ex.Message, + "Error", + MessageBoxButtons.OK, + MessageBoxIcon.Error + ); + } + } - labelMouseInfo.Text += ", 鼠标左键 + SHIFT:移动、鼠标左键 + CTRL 或滚轮:缩放、鼠标左键 + ALT:选择"; - } + private void comboMouse_SelectedIndexChanged(object sender, EventArgs e) //鼠标控制方式 + { + switch (comboMouse.SelectedIndex) + { + case 0: + editor3D.SetUserInputs(eMouseCtrl.L_Theta_R_Phi); + labelMouseInfo.Text = "鼠标左键:升高,鼠标右键:旋转"; + break; - private void comboColors_SelectedIndexChanged(object sender, EventArgs e) - { - me_ColorScheme = (eColorScheme)comboColors.SelectedIndex; + case 1: + editor3D.SetUserInputs(eMouseCtrl.L_Theta_L_Phi); + labelMouseInfo.Text = "鼠标左键:升高和旋转"; + break; - //判断 points 是否为空,表示当前是否已经有真实数据 - if (etalon_points.Count > 0) - { - PointScatterPlot(etalon_points); //更新真实数据 - } - //else - //{ - // DemoScatterPlot(false); //更新虚拟数据 - //} - } + case 2: + editor3D.SetUserInputs(eMouseCtrl.M_Theta_M_Phi); + labelMouseInfo.Text = "鼠标中键:升高和旋转"; + break; - private void btn_startmove_Click(object sender, EventArgs e) //开始运动 - { - DebugDfn.AddLogText("开始运动"); - int timeout = 5000; + default: + Debug.Assert(false); + break; + } - Axis[] axes = { Axis.ACSC_AXIS_0, Axis.ACSC_AXIS_1, Axis.ACSC_AXIS_8, Axis.ACSC_NONE }; + labelMouseInfo.Text += + ", 鼠标左键 + SHIFT:移动、鼠标左键 + CTRL 或滚轮:缩放、鼠标左键 + ALT:选择"; + } - //判断电机状态 - if (!mainFrom.totalAxisEnabled) - { - DebugDfn.AddLogText("存在电机未使能"); + private void comboColors_SelectedIndexChanged(object sender, EventArgs e) + { + me_ColorScheme = (eColorScheme)comboColors.SelectedIndex; - _acs.WaitMotorEnabled(Axis.ACSC_AXIS_0, 1, timeout); //Y轴 - // Wait axis 1 enabled during 5 sec - _acs.WaitMotorEnabled(Axis.ACSC_AXIS_1, 1, timeout); + //判断 points 是否为空,表示当前是否已经有真实数据 + if (etalon_points.Count > 0) + { + PointScatterPlot(etalon_points); //更新真实数据 + } + //else + //{ + // DemoScatterPlot(false); //更新虚拟数据 + //} + } + #endregion - _acs.WaitMotorEnabled(Axis.ACSC_AXIS_8, 1, timeout); + #region etalon文件解析 + private void moveToPoint() + { + DebugDfn.AddLogText("添加到运动队列"); + int timeout = 5000; - DebugDfn.AddLogText("电机已启用"); - } + //判断电机状态 + if (!mainFrom.totalAxisEnabled) + { + DebugDfn.AddLogText("存在电机未使能"); - // 创建多点运动 - double dwellTime = dwellTimes.Average()*1000; //将秒转换为毫秒 - DebugDfn.AddLogText("平均停顿时间(毫秒):" + dwellTime); - _acs.MultiPointM(MotionFlags.ACSC_NONE, axes, dwellTime); + _acs.WaitMotorEnabled(Axis.ACSC_AXIS_0, 1, timeout); //Y轴 + // Wait axis 1 enabled during 5 sec + _acs.WaitMotorEnabled(Axis.ACSC_AXIS_1, 1, timeout); - //判断是否有点 - if (filteredPoints.Count == 0) - { - DebugDfn.AddLogText("没有点"); - return; - } + _acs.WaitMotorEnabled(Axis.ACSC_AXIS_8, 1, timeout); - // 添加符合条件的点到运动路径中 - foreach (var point in filteredPoints) - { - double[] points = new double[3]; - points[0] = point.Y; - points[1] = point.X; - points[2] = point.Z; - _acs.AddPointM(axes, points); + //DebugDfn.AddLogText("电机已启用"); + } - } - // 打印添加点的数量 - DebugDfn.AddLogText("添加点的数量:" + filteredPoints.Count); + // 创建多点运动 + double dwellTime = dwellTimes.Average() * 1000; //将秒转换为毫秒 + DebugDfn.AddLogText("平均停顿时间(毫秒):" + dwellTime); + _acs.MultiPointM(MotionFlags.ACSC_NONE, axes, dwellTime); - // Finish the motion End of the multi-point motion - _acs.EndSequenceM(axes); + //判断是否有点 + if (filteredPoints.Count == 0) + { + DebugDfn.AddLogText("没有点"); + return; + } + //打印点的数量 + DebugDfn.AddLogText("待添加点的数量:" + filteredPoints.Count); + // 添加符合条件的点到运动路径中 + foreach (var point in filteredPoints) + { + double[] points = new double[3]; + points[0] = point.Y; + points[1] = point.X; + points[2] = point.Z; + _acs.AddPointM(axes, points); + //打印添加的点 + DebugDfn.AddLogText("添加点:" + points[0] + " " + points[1] + " " + points[2]); + } + // 打印添加点的数量 + DebugDfn.AddLogText("已添加点的数量:" + filteredPoints.Count); - //启动统计 - mainFrom.StartCounting(); - } + // Finish the motion End of the multi-point motion + _acs.EndSequenceM(axes); - private void btn_stop_Click(object sender, EventArgs e) //停止运动 - { - DebugDfn.AddLogText("停止运动"); - try - { - Axis[] m_arrAxisList = new Axis[] { Axis.ACSC_AXIS_0, Axis.ACSC_AXIS_1, Axis.ACSC_AXIS_8, Axis.ACSC_NONE }; + mainFrom.StopCounting(); + //启动统计 + mainFrom.StartCounting(); + } - if (m_arrAxisList != null) _acs.HaltM(m_arrAxisList); + private void btn_startmove_Click(object sender, EventArgs e) //开始运动 + { + int timeout = 5000; + //判断电机状态 + if (!mainFrom.totalAxisEnabled) + { + DebugDfn.AddLogText("存在电机未使能"); - DebugDfn.AddLogText("立即停止 已发送命令"); - } - catch (Exception ex) - { - MessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); - Debug.WriteLine(ex.Message); - } + _acs.WaitMotorEnabled(Axis.ACSC_AXIS_0, 1, timeout); //Y轴 + // Wait axis 1 enabled during 5 sec + _acs.WaitMotorEnabled(Axis.ACSC_AXIS_1, 1, timeout); - //停止统计 - mainFrom.StopCounting(); + _acs.WaitMotorEnabled(Axis.ACSC_AXIS_8, 1, timeout); + + //DebugDfn.AddLogText("电机已启用"); + } + + //判断是否有点 + if (filteredPoints.Count == 0) + { + MessageBox.Show("没有需要移动的点,请先导入", "ERROR"); + return; + } + //打印点的数量 + DebugDfn.AddLogText("待添加点的数量:" + filteredPoints.Count); + + //启动运动定时器 + timer_move.Start(); + refresh_time.Start(); + } + + private void btn_stop_Click(object sender, EventArgs e) //停止运动 + { + DebugDfn.AddLogText("停止运动"); + try + { + Axis[] m_arrAxisList = new Axis[] + { + Axis.ACSC_AXIS_0, + Axis.ACSC_AXIS_1, + Axis.ACSC_AXIS_8, + Axis.ACSC_NONE, + }; + + if (m_arrAxisList != null) + _acs.HaltM(m_arrAxisList); + + DebugDfn.AddLogText("立即停止 已发送命令"); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); + Debug.WriteLine(ex.Message); + } + + //停止统计 + mainFrom.StopCounting(); + refresh_time.Stop(); + timer_move.Stop(); + currentIndex = 0; + + } private void btn_etalon_import_Click(object sender, EventArgs e) //解析Etalon文件 - { - //打开文件对号框,选择 mpf格式文件 - OpenFileDialog i_Dlg = new OpenFileDialog(); - i_Dlg.Title = "导入Etalon文件"; - i_Dlg.Filter = "Etalon文件|*.mpf"; - i_Dlg.DefaultExt = ".mpf"; - i_Dlg.Multiselect = false; + { + //打开文件对号框,选择 mpf格式文件 + OpenFileDialog i_Dlg = new OpenFileDialog(); + i_Dlg.Title = "导入Etalon文件"; + i_Dlg.Filter = "Etalon文件|*.mpf"; + i_Dlg.DefaultExt = ".mpf"; + i_Dlg.Multiselect = false; - if (DialogResult.Cancel == i_Dlg.ShowDialog(this)) - return; + if (DialogResult.Cancel == i_Dlg.ShowDialog(this)) + return; - //读取文件 - string s_File = i_Dlg.FileName; + //读取文件 + string s_File = i_Dlg.FileName; - //设置路径显示 + //设置路径显示 - DebugDfn.AddLogText("导入Etalon文件:" + s_File); + DebugDfn.AddLogText("导入Etalon文件:" + s_File); - //解析文件 - parse_mpf_file(s_File); + //解析文件 + parse_mpf_file(s_File); - DebugDfn.AddLogText("Etalon文件解析完成"); - } + DebugDfn.AddLogText("Etalon文件解析完成"); + } - private bool parse_mpf_file(string mpf_file_path) // 编写解析mpf文件的函数 - { - //; Machine: ZIM - //; Position: 1 - //; Created: 2/15/2023 12:29:13 PM - //; Program: TRAC-CAL V48, Build: 10, 5/13/2022 8:29:25 AM - //; File: 'cncData.xml' - //G71 - //G90 - //G500 - //G01 X8000.000 Y200.000 Z-1400.000 F2000 //坐标 - //G04 F=2 // 停顿时间 - //G01 X7800.000 Y300.000 Z-1400.000 F2000 - //G04 F=2 - //G01 X7600.000 Y400.000 Z-1400.000 F2000 - //G04 F=2 - //G01 X7400.000 Y500.000 Z-1400.000 F2000 - //G04 F=2 - //G01 X7200.000 Y600.000 Z-1400.000 F2000 + private bool parse_mpf_file(string mpf_file_path) // 编写解析mpf文件的函数 + { + //; Machine: ZIM + //; Position: 1 + //; Created: 2/15/2023 12:29:13 PM + //; Program: TRAC-CAL V48, Build: 10, 5/13/2022 8:29:25 AM + //; File: 'cncData.xml' + //G71 + //G90 + //G500 + //G01 X8000.000 Y200.000 Z-1400.000 F2000 //坐标 + //G04 F=2 // 停顿时间 + //G01 X7800.000 Y300.000 Z-1400.000 F2000 + //G04 F=2 + //G01 X7600.000 Y400.000 Z-1400.000 F2000 + //G04 F=2 + //G01 X7400.000 Y500.000 Z-1400.000 F2000 + //G04 F=2 + //G01 X7200.000 Y600.000 Z-1400.000 F2000 - //判断文件是否存在 - if (!File.Exists(mpf_file_path)) - { - MessageBox.Show("文件不存在"); - return false; + //判断文件是否存在 + if (!File.Exists(mpf_file_path)) + { + MessageBox.Show("文件不存在"); + return false; + } + + //清空之前的数据 + etalon_points.Clear(); + filteredPoints.Clear(); + dwellTimes.Clear(); + + //读取文件 + string[] lines = File.ReadAllLines(mpf_file_path); + Regex regex = new Regex( + @"G01 X(?[-+]?\d*\.?\d+) Y(?[-+]?\d*\.?\d+) Z(?[-+]?\d*\.?\d+)" + ); + Regex dwellRegex = new Regex(@"G04 F=(?\d+)"); + + foreach (string line in lines) + { + Match match = regex.Match(line); + if (match.Success) + { + double x = double.Parse(match.Groups["X"].Value); + double y = double.Parse(match.Groups["Y"].Value); + double z = double.Parse(match.Groups["Z"].Value); + etalon_points.Add(new Point(x, y, z)); + } + + Match dwellMatch = dwellRegex.Match(line); + if (dwellMatch.Success) + { + int f = int.Parse(dwellMatch.Groups["F"].Value); + dwellTimes.Add(f); + } + } + + // 输出解析结果 + //Console.WriteLine("Points:"); + //foreach (var point in etalon_points) + //{ + // Console.WriteLine($"X: {point.X}, Y: {point.Y}, Z: {point.Z}"); + //} + + //Console.WriteLine("Dwell Times:"); + //foreach (var dwellTime in dwellTimes) + //{ + // Console.WriteLine($"F: {dwellTime}"); + //} + + //过滤点集 + foreach (var point in etalon_points) + { + if (MainFrom.IsWithinLimit(point)) //判断点是否在行程范围内 + { + filteredPoints.Add(point); + } + } + + //打印过滤后的点集大小 + DebugDfn.AddLogText("过滤后的点集大小:" + filteredPoints.Count); + PointScatterPlot(filteredPoints); //绘制散点图 + return true; + } + + #endregion + + #region 3D绘图逻辑 + private void PointScatterPlot(List points) //绘制散点图 + { + //清空绘图 + editor3D.Clear(); + editor3D.Normalize = eNormalize.Separate; + editor3D.Invalidate(); + + //判断点集是否为空 + comboColors.Enabled = true; // Some of the demos will disable this combobox + me_ColorScheme = (eColorScheme)comboColors.SelectedIndex; + + checkMirrorX.Checked = editor3D.AxisX.Mirror; + checkMirrorY.Checked = editor3D.AxisY.Mirror; + + // 3 pixels for line width and for circle radius + const int SIZE = 3; + + cColorScheme i_Scheme = new cColorScheme(me_ColorScheme); + cScatterData i_ShapeData = new cScatterData(i_Scheme); + cLineData i_LineData = new cLineData(i_Scheme); + List i_Points = new List(); + + foreach (var point in points) + { + double d_X = point.X; + double d_Y = point.Y; + double d_Z = point.Z; + + cPoint3D i_Point = new cPoint3D(d_X, d_Y, d_Z, "Scatter Point"); + + // You can store the returned shape in a variable and later modify it's properties + cShape3D i_Shape = i_ShapeData.AddShape(i_Point, eScatterShape.Circle, SIZE, null); + } + + // You can store the returned lines in a variable and later modify their properties + cLine3D[] i_Lines = i_LineData.AddConnectedLines(i_Points, SIZE, null); + + // Depending on your use case you can also specify MaintainXY or MaintainXYZ here + editor3D.Clear(); + editor3D.Normalize = eNormalize.Separate; + editor3D.AddRenderData(i_ShapeData, i_LineData); + + editor3D.Selection.HighlightColor = Color.FromArgb(90, 90, 90); + editor3D.Selection.Callback = OnSelectEvent; + editor3D.Selection.MultiSelect = true; + editor3D.Selection.Enabled = true; + editor3D.UndoBuffer.Enabled = true; + editor3D.Invalidate(); + } + + private void btn_clear_Click(object sender, EventArgs e) //清空绘图 + { + editor3D.Clear(); + editor3D.Normalize = eNormalize.Separate; + editor3D.Invalidate(); + } + + private void btn_draw_test_Click(object sender, EventArgs e) + { + DemoScatterPlot(false); + } + + private void OnAnimationTimer(object sender, EventArgs e) + { + cScatterData i_ShapeData = new cScatterData(); + //currentIndex = mainFrom.GetInPosCount();//获取当前点的数量 + + if (currentIndex < filteredPoints.Count) + { + + + // 更新点的颜色 + for (int i = 0; i <= currentIndex; i++) + { + double d_X = filteredPoints[i].X; + double d_Y = filteredPoints[i].Y; + double d_Z = filteredPoints[i].Z; + + cPoint3D i_Point = new cPoint3D(d_X, d_Y, d_Z, "Scatter Point"); + SolidBrush i_brush = new SolidBrush(Color.Red); + // You can store the returned shape in a variable and later modify it's properties + cShape3D i_Shape = i_ShapeData.AddShape( + i_Point, + eScatterShape.Circle, + 5, + i_brush, + null + ); + } + + // 对于剩余部分的点,不做颜色更新 + for (int i = currentIndex; i < filteredPoints.Count; i++) + { + double d_X = filteredPoints[i].X; + double d_Y = filteredPoints[i].Y; + double d_Z = filteredPoints[i].Z; + + cPoint3D i_Point = new cPoint3D(d_X, d_Y, d_Z, "Scatter Point"); + SolidBrush i_brush = new SolidBrush(Color.Gray); + // You can store the returned shape in a variable and later modify it's properties + cShape3D i_Shape = i_ShapeData.AddShape( + i_Point, + eScatterShape.Circle, + 3, + i_brush, + null + ); + } + + editor3D.Clear(); + editor3D.Normalize = eNormalize.Separate; + editor3D.AddRenderData(i_ShapeData); + editor3D.Invalidate(); } + } + #endregion - //清空之前的数据 - etalon_points.Clear(); - filteredPoints.Clear(); - dwellTimes.Clear(); + #region 队列移动逻辑 + private void timer_move_Tick(object sender, EventArgs e) + { + // 检查是否到达目标点 + if (IsAtTarget()) + { + // 移动到下一个点 + MoveToNextPoint(); + } + } - //读取文件 - string[] lines = File.ReadAllLines(mpf_file_path); - Regex regex = new Regex(@"G01 X(?[-+]?\d*\.?\d+) Y(?[-+]?\d*\.?\d+) Z(?[-+]?\d*\.?\d+)"); - Regex dwellRegex = new Regex(@"G04 F=(?\d+)"); + private void MoveToNextPoint() + { + if (filteredPoints.Count > 0 && currentIndex < filteredPoints.Count) + { + //增加2秒延时 + Thread.Sleep(2000); - foreach (string line in lines) - { - Match match = regex.Match(line); - if (match.Success) - { - double x = double.Parse(match.Groups["X"].Value); - double y = double.Parse(match.Groups["Y"].Value); - double z = double.Parse(match.Groups["Z"].Value); - etalon_points.Add(new Point(x, y, z)); - } + Point nextPoint = filteredPoints[currentIndex]; + //打印 nextPoint + DebugDfn.AddLogText("下发指令:" + currentIndex + " 点:" + nextPoint.X + " " + nextPoint.Y + " " + nextPoint.Z ); - Match dwellMatch = dwellRegex.Match(line); - if (dwellMatch.Success) - { - int f = int.Parse(dwellMatch.Groups["F"].Value); - dwellTimes.Add(f); - } - } + mainFrom.SetPositionXyz(Point.FromPoint(nextPoint)); //移动到下一个点 - // 输出解析结果 - //Console.WriteLine("Points:"); - //foreach (var point in etalon_points) - //{ - // Console.WriteLine($"X: {point.X}, Y: {point.Y}, Z: {point.Z}"); - //} + currentIndex++; + } + else + { + DebugDfn.AddLogText("All points have been visited."); + timer_move.Stop(); + } + } - //Console.WriteLine("Dwell Times:"); - //foreach (var dwellTime in dwellTimes) - //{ - // Console.WriteLine($"F: {dwellTime}"); - //} + private bool IsAtTarget() + { + // 这里你需要实现实际的到位判断逻辑 + // 例如,通过读取传感器数据或运动控制器的状态 + // 这里假设总是返回 true 作为示例 - //过滤点集 - foreach (var point in etalon_points) - { - if (MainFrom.IsWithinLimit(point)) //判断点是否在行程范围内 - { - filteredPoints.Add(point); - } - } + return mainFrom.GetIsMoving(); + } - //打印过滤后的点集大小 - DebugDfn.AddLogText("过滤后的点集大小:" + filteredPoints.Count); - PointScatterPlot(filteredPoints);//绘制散点图 - return true; - } - - private void PointScatterPlot(List points) //绘制散点图 - { - comboColors.Enabled = true; // Some of the demos will disable this combobox - me_ColorScheme = (eColorScheme)comboColors.SelectedIndex; - - checkMirrorX.Checked = editor3D.AxisX.Mirror; - checkMirrorY.Checked = editor3D.AxisY.Mirror; - - // 3 pixels for line width and for circle radius - const int SIZE = 3; - - cColorScheme i_Scheme = new cColorScheme(me_ColorScheme); - cScatterData i_ShapeData = new cScatterData(i_Scheme); - cLineData i_LineData = new cLineData(i_Scheme); - List i_Points = new List(); - - foreach (var point in points) - { - double d_X = point.X; - double d_Y = point.Y; - double d_Z = point.Z; - - cPoint3D i_Point = new cPoint3D(d_X, d_Y, d_Z, "Scatter Point"); - - // You can store the returned shape in a variable and later modify it's properties - cShape3D i_Shape = i_ShapeData.AddShape(i_Point, eScatterShape.Circle, SIZE, null); - } - - // You can store the returned lines in a variable and later modify their properties - cLine3D[] i_Lines = i_LineData.AddConnectedLines(i_Points, SIZE, null); - - // Depending on your use case you can also specify MaintainXY or MaintainXYZ here - editor3D.Clear(); - editor3D.Normalize = eNormalize.Separate; - editor3D.AddRenderData(i_ShapeData, i_LineData); - - editor3D.Selection.HighlightColor = Color.FromArgb(90, 90, 90); - editor3D.Selection.Callback = OnSelectEvent; - editor3D.Selection.MultiSelect = true; - editor3D.Selection.Enabled = true; - editor3D.UndoBuffer.Enabled = true; - editor3D.Invalidate(); - } - - public class Point - { - public double X { get; } - public double Y { get; } - public double Z { get; } - - public Point(double x, double y, double z) - { - X = x; - Y = y; - Z = z; - } - } - - private void btn_clear_Click(object sender, EventArgs e) //清空绘图 - { - editor3D.Clear(); - editor3D.Normalize = eNormalize.Separate; - editor3D.Invalidate(); - } - - private void btn_draw_test_Click(object sender, EventArgs e) - { - DemoScatterPlot(false); - } - - private void OnAnimationTimer(object sender, EventArgs e) - { - cScatterData i_ShapeData = new cScatterData(); - currentIndex = mainFrom.GetInPosCount();//获取当前点的数量 - - - if (currentIndex < filteredPoints.Count) - { - // 更新点的颜色 - for (int i = 0; i <= currentIndex; i++) - { - double d_X = filteredPoints[i].X; - double d_Y = filteredPoints[i].Y; - double d_Z = filteredPoints[i].Z; - - cPoint3D i_Point = new cPoint3D(d_X, d_Y, d_Z, "Scatter Point"); - SolidBrush i_brush = new SolidBrush(Color.Red); - // You can store the returned shape in a variable and later modify it's properties - cShape3D i_Shape = i_ShapeData.AddShape(i_Point, eScatterShape.Circle, 5, i_brush, null); - } - - // 对于剩余部分的点,不做颜色更新 - for (int i = currentIndex; i < filteredPoints.Count; i++) - { - double d_X = filteredPoints[i].X; - double d_Y = filteredPoints[i].Y; - double d_Z = filteredPoints[i].Z; - - cPoint3D i_Point = new cPoint3D(d_X, d_Y, d_Z, "Scatter Point"); - SolidBrush i_brush = new SolidBrush(Color.Gray); - // You can store the returned shape in a variable and later modify it's properties - cShape3D i_Shape = i_ShapeData.AddShape(i_Point, eScatterShape.Circle, 3, i_brush, null); - } - - //打印 所有点的数量和 currentIndex - Console.WriteLine("所有点的数量:" + filteredPoints.Count + "当前点的数量:" + currentIndex); - - - } - - - editor3D.Clear(); - editor3D.Normalize = eNormalize.Separate; - editor3D.AddRenderData(i_ShapeData); - editor3D.Invalidate(); - } - } -} \ No newline at end of file + #endregion + } +} diff --git a/HexcalMC/Motion/EtalonForm.resx b/HexcalMC/Motion/EtalonForm.resx index abbc23a..e08eed7 100644 --- a/HexcalMC/Motion/EtalonForm.resx +++ b/HexcalMC/Motion/EtalonForm.resx @@ -117,6 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 4 + 25 diff --git a/HexcalMC/Motion/Motion.Designer.cs b/HexcalMC/Motion/Motion.Designer.cs index afad344..85283f5 100644 --- a/HexcalMC/Motion/Motion.Designer.cs +++ b/HexcalMC/Motion/Motion.Designer.cs @@ -28,7 +28,6 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Motion)); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.txtPort = new System.Windows.Forms.TextBox(); @@ -37,7 +36,7 @@ this.btnOpen = new System.Windows.Forms.Button(); this.label2 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); - this.tmrMonitor = new System.Windows.Forms.Timer(this.components); + this.tmrMonitor = new System.Windows.Forms.Timer(); this.grpMotionTest = new System.Windows.Forms.GroupBox(); this.btnHallAll = new System.Windows.Forms.Button(); this.btnHalt = new System.Windows.Forms.Button(); @@ -200,6 +199,8 @@ this.groupBox6 = new System.Windows.Forms.GroupBox(); this.button1 = new System.Windows.Forms.Button(); this.btn_home = new System.Windows.Forms.Button(); + this.rdoSimu = new System.Windows.Forms.RadioButton(); + this.rdoTCP = new System.Windows.Forms.RadioButton(); this.groupBox1.SuspendLayout(); this.grpMotionTest.SuspendLayout(); this.grpMst.SuspendLayout(); @@ -221,6 +222,8 @@ // // groupBox1 // + this.groupBox1.Controls.Add(this.rdoTCP); + this.groupBox1.Controls.Add(this.rdoSimu); this.groupBox1.Controls.Add(this.txtPort); this.groupBox1.Controls.Add(this.txtIP); this.groupBox1.Controls.Add(this.btnClose); @@ -236,7 +239,7 @@ // // txtPort // - this.txtPort.Location = new System.Drawing.Point(103, 37); + this.txtPort.Location = new System.Drawing.Point(171, 37); this.txtPort.Name = "txtPort"; this.txtPort.Size = new System.Drawing.Size(91, 21); this.txtPort.TabIndex = 15; @@ -244,7 +247,7 @@ // // txtIP // - this.txtIP.Location = new System.Drawing.Point(103, 14); + this.txtIP.Location = new System.Drawing.Point(171, 14); this.txtIP.Name = "txtIP"; this.txtIP.Size = new System.Drawing.Size(91, 21); this.txtIP.TabIndex = 16; @@ -252,7 +255,7 @@ // // btnClose // - this.btnClose.Location = new System.Drawing.Point(113, 62); + this.btnClose.Location = new System.Drawing.Point(181, 62); this.btnClose.Name = "btnClose"; this.btnClose.Size = new System.Drawing.Size(81, 23); this.btnClose.TabIndex = 14; @@ -262,7 +265,7 @@ // // btnOpen // - this.btnOpen.Location = new System.Drawing.Point(7, 62); + this.btnOpen.Location = new System.Drawing.Point(75, 62); this.btnOpen.Name = "btnOpen"; this.btnOpen.Size = new System.Drawing.Size(81, 23); this.btnOpen.TabIndex = 13; @@ -273,7 +276,7 @@ // label2 // this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(15, 41); + this.label2.Location = new System.Drawing.Point(83, 41); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(29, 12); this.label2.TabIndex = 11; @@ -282,7 +285,7 @@ // label1 // this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(15, 18); + this.label1.Location = new System.Drawing.Point(83, 18); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(71, 12); this.label1.TabIndex = 12; @@ -1964,6 +1967,28 @@ this.btn_home.UseVisualStyleBackColor = true; this.btn_home.Click += new System.EventHandler(this.btn_home_Click); // + // rdoSimu + // + this.rdoSimu.AutoSize = true; + this.rdoSimu.Location = new System.Drawing.Point(6, 40); + this.rdoSimu.Name = "rdoSimu"; + this.rdoSimu.Size = new System.Drawing.Size(59, 16); + this.rdoSimu.TabIndex = 10; + this.rdoSimu.TabStop = true; + this.rdoSimu.Text = "模拟器"; + this.rdoSimu.UseVisualStyleBackColor = true; + // + // rdoTCP + // + this.rdoTCP.AutoSize = true; + this.rdoTCP.Location = new System.Drawing.Point(6, 17); + this.rdoTCP.Name = "rdoTCP"; + this.rdoTCP.Size = new System.Drawing.Size(41, 16); + this.rdoTCP.TabIndex = 17; + this.rdoTCP.TabStop = true; + this.rdoTCP.Text = "TCP"; + this.rdoTCP.UseVisualStyleBackColor = true; + // // Motion // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -2188,6 +2213,8 @@ private System.Windows.Forms.Button btn_Z_Down; private System.Windows.Forms.Button btn_Z_Up; private System.Windows.Forms.Button button1; + private System.Windows.Forms.RadioButton rdoSimu; + private System.Windows.Forms.RadioButton rdoTCP; } } diff --git a/HexcalMC/Motion/Motion.cs b/HexcalMC/Motion/Motion.cs index 805938f..3fe1baf 100644 --- a/HexcalMC/Motion/Motion.cs +++ b/HexcalMC/Motion/Motion.cs @@ -292,13 +292,7 @@ namespace HexcalMC { DebugDfn.AddLogText("运动平台已连接"); } - else - { - // TCP/IP (Ethernet) - _acs.OpenCommEthernetTCP( - txtIP.Text, // IP Address (Default : 10.0.0.100) - Convert.ToInt32(txtPort.Text.Trim())); // TCP/IP Port nubmer (default : 701) - } + InitMotion(); _mBConnected = true; diff --git a/HexcalMC/bin/x64/Debug/File/Config.ini b/HexcalMC/bin/x64/Debug/File/Config.ini index c95d206..1ed7e06 100644 --- a/HexcalMC/bin/x64/Debug/File/Config.ini +++ b/HexcalMC/bin/x64/Debug/File/Config.ini @@ -7,14 +7,17 @@ ENABLE_ACS=1 Port = 1234 ;运动速度 -MOTION_SPEED=60.0 - -;最大行程极限 -X_MAXSTROKESW = 795 -Y_MAXSTROKESW = 995 -Z_MAXSTROKESW = 20 +MOTION_SPEEDXY=100 +MOTION_SPEEDZ=30 ;最小行程极限 -X_MINSTROKESW = -5 -Y_MINSTROKESW = -5 -Z_MINSTROKESW = -280 +X_MINSTROKESW = 0 +Y_MINSTROKESW = 0 +Z_MINSTROKESW = -295 + +;最大行程极限 +X_MAXSTROKESW = 800 +Y_MAXSTROKESW = 980 +Z_MAXSTROKESW = 0 + + diff --git a/HexcalMC/bin/x64/Debug/HexcalMC.application b/HexcalMC/bin/x64/Debug/HexcalMC.application index ce349ec..c55418f 100644 --- a/HexcalMC/bin/x64/Debug/HexcalMC.application +++ b/HexcalMC/bin/x64/Debug/HexcalMC.application @@ -21,7 +21,7 @@ - 3I+Sdzke39z2xPBTFN2cGyU/DYa1hH93nKjBGpXTzUw= + 5BAu5mmkGH6UcqUDfkL6WCaAYDZ3v+HSBDiHWDwiFF0= diff --git a/HexcalMC/bin/x64/Debug/HexcalMC.exe b/HexcalMC/bin/x64/Debug/HexcalMC.exe index f567cb3144bab49e49d4fde9e9b4baf758c10f2a..525c0800fc122bad64c7b34ee6f3c660960e82b2 100644 GIT binary patch delta 148476 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

f$1y|G#8G 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 DP`QY< delta 145545 zcmc${2b>(mwLaQ2yPDOmw30@}z}-uEqPlQ`ObgJ&o^u_x;~{_~%ufuTGtF z>QvRK&^=wtud6KoM&;sfly2SX{lh);-)G)rZ$y5M=iPqEH7keR|3r(|J9NBr<-8p5e|cVE-Cs3%%U3rIU4KOL^l+Pe z`+}!)UZKs)&nz@`u0g5th?bd!fgaCmJFSp!8h8@9gB#_&=0cr+YvYmOIFXnH--+`w0@OSs-^Ky^ex4QY!9RB%s;lKFLmBV*!!asi)acHjdfIL+7dxaSr zd-?h_&ueb-54`Wt_Bl|?V`7+p1Bp@1ZH1ZB48!S@o4n>y zZ9wdiA_h5;2$-fqik9Wy6Fym-G~pJ=@NdSSDaM(eP52LlUle;fzt_Nlj9Fu+jJP$* z0KL!Hxw&`36=N68|29x#O;>Y%O<@PPcc2&QeJ7`TSTZMEGj_uOZBp>RMnel|uc}w- z?i`4*{+UF_c%_~MS|YkQjf#XZZ1%i2-sRUafakn&3SR`_$Y}O@QyCgBcoQ=5VSDV$iBix{KyWEZ8Ii1_*?h0S+Ts-$SRB5n}KF<%_&9wMGKX4G!Y-`{nnO;k${cy8! zQ)YaD?sY@H-UY0jFW1h3O9mXQE8kT+TVvrxs>wTv0&{Ih|r}^pAyk~Egh3HBBkrqE_Il~A9u~{`WHqF2333O%zXd+VKc|H)QR{n zhoig4<(7wi-J92Jr-XQV&$oSWgaLHl3oq_IFt>I1r|xmVHc}J1SNGq={^H^L3~p=D z`c{$@X(Ik6_{azo`a7Waiu(TIef-za2xh>zWyKPwtkB=dZ=Wpu^X$T6wNqH=wBk3z zRXtO4Q^L=CrUmD~DEMF^s#WkWgD1U0{lDO?(#ra8@K4%)ZM0@7H?mN(%aW90Y62Fq zo>BsIz=W6-Prh948K8}57TVaNZEVS~F;!BtWC#}<#Q?Ab|6NtH#Msu1no!!@x;koN zZ`}!QU!q={wI<)6D|Iv%gXWndTGS76-tmJY*nPUXN>bgCy1K)4b%$qE*Q)d1WLMBE z$?Dq9;Ibr}BuLdIOH3w9QcTMCSyECg==f~U@QMkg)@AUFS1kA!gbz%Z**YD5D6|as z?+iblaQ!r=FBV7o@1m+5V~V52AEvT|!+Rz!m9E?|zBt}Et2oN_n*U1_9b}g_4CR%E z!H8*KFf}ZWEcW>C(Z#l)j0_hq_S81_N|4VsEOyVDrbBCSn9$_6d# zBX@93KKyHCUa&x?F&Xq92+8^SBzU8~UWD3Oh^|EY`@euOxrp(-IPqci;uu?~% ze^akGta+Hf6u_wFHTlw-Tt`c>W#+JQ$MF7z#bJGQ7BB2I$bU#uO3Pk@AKq7(I+)At z7M|U=QRM{oqkJ7}rRJUkN^9~MU(GX52EuvJKRA4^Z}J58r;e5qq)sTd6o;?uXf^r8 zR{xN&GHsjO?covAHZPtbeX`vjH2*FOADQ-Yt`MHT*0f3iSnVlPuwz_Paa`VCDH9MU z(_-gJe^|I`tsQgEh7)U*J)RYRsCDw*@p>Aovv(hP!85>XPovlkePuVdmd@=`JH}<# z(z)TKwQsHS<w^m(~c!;7bnoB2<8VNH%so?4tbv&$<^suOB!G6^4s zV>MTt)Z_=@tJ6Ds*$KL5qjyL*-2l|AF@{(e=4MPDPKM&-dRy2(WBdpbD?4h%nqLTa znNcax=@@3e#XtU6;Jl80u(pQh&e(p`{UDFttM)wgjqMK?&zdr-Yw0nzL;ClJWBQkm zqQ|wLA#+%GP5ES;yY|P9Ja`%VZ&)l%n==>3N zn)S@EaOKQRdxp_AtZ5c}PZy$~StF(N=QB5w(%s<>vnC_u&l+Dg?8UV^*EDs^FV3IY z(*)iT;q|i~%-tLAGrM>CeGmv0J5ke&YtYlU#`dokG`Ui~ZuY8J*pr2>33r+|4vWyk=1s}9 zhv&_!=DNaL=k<(_Ju=Ln4P%V-(lDrhcV5?q%m0m673j47QF(1$MJUgk;fSNQTe zUF}_fnwp1=Y92Mre=Piub#Bi6FkHFrEd2e^y0f}}h}`94V33ygLC*8g^NIschNI@+ zkMQyI{6lijglnyLXZtR2E_QxTp}@d{_x)shm65pDYm`}fBp5PY{#5t z?@#d4I`otJHO<(D6KQP$vPX=~sZR(k1hE_qAZ4*0^fzGPd}n9v3=xh*$VBf79Zi?P zug#2`Jz$W8D-tjH(sqny0#&twMm)UA|%neBZtpy_cXE*kZIns zGD;L`8-qB+TQ(I01~j_N2ub^!0QZ*lX;`|=2%${IG?Ou`I1D97>5LhuIX!R|TDC*? z6#BomC|t2|cd(e67wn0=e4Vg54A!a>@W;l!+97b(^5ev-G0XXlENELeFJ}2}Bg^qA zmf-0|o)c0$?>4fi6w5ywS#UCtFs9tyP$hJlAi=W^cuKW{S>2ORTx|q;8B_5@IX1Uu z++=k1mf9`sLTVqf&^H%663wM47LKb{57V@_uJ%46YO}v7{O)g-E1*f6{LRA?7Iz-C z1)#P8{v82qOZ?m3zt-5M+Ez$)G<$_&v%fWxKKgE(*8*x=OL<`14%Dnwt4EJ*T2mV9 zdE@;hjB)Se>sDXE-yS?I{`TP?7mpvk1JYO^GPhLncMQ8XtpxM6g*yV9*`BZSU%w0W z#8L}qFH=2rDypjok0jOA^jKwaO?RUgQOW$WB{U0-*e0&4?F4e51R;YIr-haW^XQ-G za-v~8GI8v*gLi}maAI-_hyRZeY5bXVv&EMYe}(w;1ddQr7}%MLCldGi$9d{T*rpCZ z&nQ*KXahZOb^l0D{k%Io;gfM~O}ZspYqx|OZ#FqtPol#oDAZir1(GCGjrBBBK{vM^ zOT)b7sOb8Zze#;Ar9MKPQ;pw*wI})o)}k9+?e7YyrIl@k_STWZ)jv_Bwi}RHqlc@} zJ>GtX8rk2OZ>|k8()3qts-&j$c*m!N_j@xs<}`Wxz?cQnaB6)piQR3b5&a7g_FFDu zw^SR3i#DH-+ceyJ^BKWHvQAh*yswm(E_HohIWN8G`o6BbzdMY&zD;cnS%uoEFl0o( z*D?b!WSDmpRBa%tY`vSs!i7h6uW3f0L)*^4e73T-2P6k03uT>ZFLdcd zNAvL3V)FokP+P~a{t;>?Xdbu#&OEI+3?A>8lV|@z@aH@QU2d617e@=z1Hz;m@@3%}QHcbNDUK1Iejt(2*t|l{8J4G5EDFy}4$ry5 z^R)0leOt%a;#gsN)nPhVnEqr1brd^Xpi=DzV%i+N?1O|P@@{B8v z6CPjl1RNg={)!2|NwGbπ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 diff --git a/HexcalMC/bin/x64/Debug/HexcalMC.exe.manifest b/HexcalMC/bin/x64/Debug/HexcalMC.exe.manifest index 3f66852..13156c5 100644 --- a/HexcalMC/bin/x64/Debug/HexcalMC.exe.manifest +++ b/HexcalMC/bin/x64/Debug/HexcalMC.exe.manifest @@ -55,14 +55,14 @@ - + - Pllh2aI7tVRTnfFfbvwT2qdIQZ30ZwrhlbF820ogi8o= + cGpoIhg/anGo/O6Lnll6V35Q+gP3ExIYb7ltMw03hpA= diff --git a/HexcalMC/bin/x64/Debug/HexcalMC.pdb b/HexcalMC/bin/x64/Debug/HexcalMC.pdb index 60efdb7d0ddc38cfac80c127bf4a5c8e0b2f2499..ed4e33d61bca4380d7673544af54db11ed8576f8 100644 GIT binary patch delta 118818 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 diff --git a/HexcalMC/bin/x64/Debug/app.publish/HexcalMC.exe b/HexcalMC/bin/x64/Debug/app.publish/HexcalMC.exe index de346278497c43166a30fd8818702c2244cb691f..cc1f403394d4babd1087271732b8f373d1368660 100644 GIT binary patch delta 149498 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%0Df-FU95*DV=!U~LKeUhuQ;Lr@VavoaR9F=Niy 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 delta 145580 zcmc${2b>(mwLaQ2yPDOmw30@d)~dm7*S?)$&@@XxC{U!6MV z)Tyddp?kXC`)=jEiz*j?qjc-m?;q}&|3333dn595Jn!~PuGydo;3aP_zGUX;VfR1L z;`I*wX|Lvu!c%kQwu^6T@w_UsZx2`I`g3=N&*e5RSJ%#ao%iLu9Pod6USZu|HF?Wd zHw~S!Q}gt2+kE?ir*mGR&CAa$GTYFYYNYVEAkuV9tmH}--5pbP4D6F9?j?F9=UII^P@TZ^X8Jl?d`ZUjLZt@ShZ)y9SrrdMkSo_fEKC>_+py4b)iE)tp~b*b(j>=!JUU$>|=J%n8?w-7r9# z6#TEz&_b0>R_g8?h_U{eM8|lgo&;JVx+sl`gfVRPyf@zE*D`?TymAWP2*Q!k?DeKH zG+yu~Wa7gF5C77!Rc=POLFe|l8^d!tcgWopzS_BH?ro^jU>|*+AGn)o@qd2cV5ZsD zz(+E@mQMTO=HsT!_yXPQhJ3vXSUF#=oduT+I9OM{t9G`=!i&azJ$Fx7E*-S>M2PY7 zwb^jDk6JUmwv)y|;dA;0;;qvmK`G4iZ56j2o z1_1Sj$90X&ofOu)de&pX+9eR7OP@X^qW4}hCTB!S*Q;IXFoi$vn%VU)j2H~6_STvC z{`tdZj%leA@m~%{caO_05Bs{esM$^l@${Z=```!z=)M%~Eb; zp=OsQDaF(TEMh&S1n7VXF)5yWx!f~A8__JZu|?b1l3`=2q-MzwE;fn*U2`baj=ax+8UUhwJJN z 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 z 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­w7F-A?qfQ8q%7YMDXYiOkzUJmiYyVWUxc6)tcZBYRGPKHYy%f-_)2^DIrktkF8R| z(yt3)5-{BeJG2Ybc&&v#tBThN&AOc)L?}ExXZ`EvC zr3^M6bTt~G5^9vyN^A8)osoOQ8;uIqoU0y4)lJH7DfQIevIl?M2IKJz~{H@-&_#uF}fgprZF`8(CNTVX45OklNN{+5w|^ zIywSz zfCH09^=cY)v$@%*2#?tr@K09BoE+>gv$G6FVTY;%p&iN~>Fj>kvHF@|@Kvvae`XlO zTLq|#n?hrpgP6^u%1?Nvz^dHU3cV>11W-s>x;1a&;0Yx{qyfX-~Y`f94GQlyhr*dE2XEDzDTKK z5LcIzYAvbOxvI}|9Z>BJE{fivveJ`ODVzmLpDyzfy5jD`3Vt5JmhC%>;@LeDPSGba z>@>EzC=MPVEx=|M_T~B|gb_XcFPrnrnki_tk7%t66(gP;u@k}y@V$<`nk^!|mik2~- z%aLl+C2JE|^ zBQY)lbt)fpx#4MdlFVfilOgO}snF6n5|?Q_C1FVL`TK<%>~e!=NZ%&$7e(<4iR`%z zfgj$zW&it4951xMd`>~7cbL>>*C}H?w0B8*&%WLi1^ZD`4DQ`&5A6`sVfG`t&=f~s zI?SWGMC_=?+O#-M%50N|PJ8H|%EMbHWTKN8h#eqgmhG+^;)LVaH*Scn=W7zXqHBOM zD%+14;(+oBcL2B**y(&2?6gtHo40P?+ysr^$sTNqKON7-+eWsrC3+ou_Ybk&zk^yq zXe`G`A~G5|{n_eGf!o9FXR9}ZAO1P=x86 8.0.30703 2.0 - {19741897-37D8-43EE-94A2-637975035CEA} + {A9C5B87B-031B-4450-AB03-5D85EFFB0636} WinExe Properties ACS_DotNET_Library_Advanced_Demo