Преглед на файлове

增加样品台移动保护参数。

@wang_qi0307 преди 4 години
родител
ревизия
7777690687
променени са 3 файла, в които са добавени 76 реда и са изтрити 17 реда
  1. 14 0
      HOZProject/App.config
  2. 14 0
      HOZProject/FormHOZMain.cs
  3. 48 17
      MeasureThread/Measure.cs

+ 14 - 0
HOZProject/App.config

@@ -63,5 +63,19 @@
       <!--距离、矩阵-->
       <add key="distance" value="30"/>
       <add key="rag" value="4"/>
+
+      <!--样品台保护-->
+      <add key="X_min" value="0"/>
+      <add key="X_max" value="0.13"/>
+      <add key="Y_min" value="0"/>
+      <add key="Y_max" value="0.13"/>
+      <add key="Z_min" value="0"/>
+      <add key="Z_max" value="0.05"/>
+      <add key="T_min" value="-4"/>
+      <add key="T_max" value="70"/>
+      <add key="R_min" value="-380"/>
+      <add key="R_max" value="380"/>
+      <add key="M_min" value="0"/>
+      <add key="M_max" value="0.012"/>
     </appSettings>
 </configuration>

+ 14 - 0
HOZProject/FormHOZMain.cs

@@ -92,6 +92,20 @@ namespace HOZProject
                 m_MeasureFile.MParam.AutoFocus.Range = Convert.ToSingle(ConfigurationManager.AppSettings["Focus_Range"].ToString());
                 m_MeasureFile.MParam.AutoFocus.fStep = Convert.ToSingle(ConfigurationManager.AppSettings["Focus_FStep"].ToString());
 
+                m_Ms.X_Min = Convert.ToSingle(ConfigurationManager.AppSettings["X_Min"]);
+                m_Ms.X_Max = Convert.ToSingle(ConfigurationManager.AppSettings["X_Max"]);
+                m_Ms.Y_Min = Convert.ToSingle(ConfigurationManager.AppSettings["Y_Min"]);
+                m_Ms.Y_Max = Convert.ToSingle(ConfigurationManager.AppSettings["Y_Max"]);
+                m_Ms.Z_Min = Convert.ToSingle(ConfigurationManager.AppSettings["Z_Min"]);
+                m_Ms.Z_Max = Convert.ToSingle(ConfigurationManager.AppSettings["Z_Max"]);
+                m_Ms.T_Min = Convert.ToSingle(ConfigurationManager.AppSettings["T_Min"]);
+                m_Ms.T_Max = Convert.ToSingle(ConfigurationManager.AppSettings["T_Max"]);
+                m_Ms.R_Min = Convert.ToSingle(ConfigurationManager.AppSettings["R_Min"]);
+                m_Ms.R_Max = Convert.ToSingle(ConfigurationManager.AppSettings["R_Max"]);
+                m_Ms.M_Min = Convert.ToSingle(ConfigurationManager.AppSettings["M_Min"]);
+                m_Ms.M_Max = Convert.ToSingle(ConfigurationManager.AppSettings["M_Max"]);
+
+
                 m_Ms.InitMeas(m_MeasureFile);
                 m_Ms.SendThreadStatus += new ThreadStatusHandler(displayMessage); //注册事件
                 m_Ms.SendCutHolesStatus += new CutHolesStatusHandler(displayCutHoleMessage); //注册事件

+ 48 - 17
MeasureThread/Measure.cs

@@ -404,8 +404,23 @@ namespace MeasureThread
             }
         }
 
+        //Web接口类
         public WebResult wr = null;
 
+        //样品台保护值
+        public float X_Min = 0;
+        public float X_Max = 0.13f;
+        public float Y_Min = 0;
+        public float Y_Max = 0.13f;
+        public float Z_Min = 0;
+        public float Z_Max = 0.05f;
+        public float T_Min = -4;
+        public float T_Max = 70;
+        public float R_Min = -380;
+        public float R_Max = 380;
+        public float M_Min = 0;
+        public float M_Max = 0.012f;
+
         public event ThreadStatusHandler SendThreadStatus;  // 声明事件
         public event CutHolesStatusHandler SendCutHolesStatus;  // 声明事件
 
@@ -1366,7 +1381,12 @@ namespace MeasureThread
                 if (state == 1)
                 {
                     //拉直操作
-                    Straightening(angle, 65, 65, x1, y1, ref x2, ref y2);
+                    iSEM.SetScanRotationOn();
+                    Thread.Sleep(1000);
+                    iSEM.SetScanRotation(angle);
+                    Thread.Sleep(5000);
+
+                    //Straightening(angle, 65, 65, x1, y1, ref x2, ref y2);
                     //1. 根据客户PT沉积坐标控制FIB调整到中心位置???????
                     if (!iSEM.MoveStageXY(x2, y2))
                     {
@@ -1640,8 +1660,11 @@ namespace MeasureThread
             {
                 return false;
             }
-            //14光束复位
+            //14光束复位和Rotation关闭开关
+            iSEM.SetScanRotationOff();
+            Thread.Sleep(1000);
             iSEM.SetBeamShiftX(0);
+            Thread.Sleep(1000);
             iSEM.SetBeamShiftY(0);
             Thread.Sleep(3000);
             arg.Message = "光束复位成功";
@@ -2141,6 +2164,11 @@ namespace MeasureThread
                 //SendMsg("禁止样品台恢复到水平");
                 return false;
             }
+            //判断是否停止进程
+            if (key_stop)
+            {
+                return false;
+            }
 
             //2. 调节样品1号孔的样品台6轴坐标
             //3. 将样品1号孔坐标2存入数据库
@@ -2149,7 +2177,6 @@ namespace MeasureThread
             {
                 return false;
             }
-
             while (true)
             {
                 Thread.Sleep(10000);
@@ -2159,17 +2186,21 @@ namespace MeasureThread
                     break;
                 }
             }
+            //判断是否停止进程
+            if (key_stop)
+            {
+                return false;
+            }
 
             //5. 获取光镜2号孔XY坐标
             //SendMsg("移动到"+m_nWorkHoleNo+"号孔位置:(" + currentHole.Position.X.ToString()+","+currentHole.Position.Y.ToString()+")");
-                    
+
             //6. 根据光镜坐标控制样品台移动
             if (!iSEM.MoveStageXY(currentHole.Position.X, currentHole.Position.Y))
             {
                 //SendMsg("移动失败");
                 return false;
             }
-
             while (true)
             {
                 Thread.Sleep(10000);
@@ -2178,7 +2209,12 @@ namespace MeasureThread
                 {
                     break;
                 }
-            }                    
+            }
+            //判断是否停止进程
+            if (key_stop)
+            {
+                return false;
+            }
 
             //7. 控制样品台,调整T轴54度、M/Z/R轴不变
             if (DialogResult.Yes == MessageBox.Show("样品台可以旋转吗?", "确认消息", MessageBoxButtons.YesNo))
@@ -2196,7 +2232,6 @@ namespace MeasureThread
             {
                 return false;
             }
-
             while (true)
             {
                 Thread.Sleep(10000);
@@ -2206,6 +2241,11 @@ namespace MeasureThread
                     break;
                 }
             }
+            //判断是否停止进程
+            if (key_stop)
+            {
+                return false;
+            }
 
             //SendMsg("拉直操作");
 
@@ -2216,16 +2256,7 @@ namespace MeasureThread
             {
                 return false;
             }
-            //2. 定位切割
-            {
-                //1. 拉直操作
-                {
-                    //1.1 控制SEM进行拍照
-                    //1.2 图片传给客户,返回偏移角度
-                    //1.3 根据返回角度,控制样品台转动
-                }
-                //2. 与1号孔13步相同
-            }
+
             return true;
         }