|
@@ -433,7 +433,7 @@ namespace MeasureThread
|
|
const String ElyCrossSection = @"CrossSection.ely"; //切割
|
|
const String ElyCrossSection = @"CrossSection.ely"; //切割
|
|
|
|
|
|
const float fMin = (float)0.0000002; //单位是米
|
|
const float fMin = (float)0.0000002; //单位是米
|
|
- const float fSateyZ = (float)0.03;//单位是米
|
|
|
|
|
|
+ const float fSateyZ = (float)0.007;//单位是米
|
|
|
|
|
|
public Boolean key_stop = false;
|
|
public Boolean key_stop = false;
|
|
|
|
|
|
@@ -682,7 +682,8 @@ namespace MeasureThread
|
|
//0、先移动Z轴到比较低的位置上。
|
|
//0、先移动Z轴到比较低的位置上。
|
|
if (MParam.Tilt)//如果是倾斜样品台,移动Z轴
|
|
if (MParam.Tilt)//如果是倾斜样品台,移动Z轴
|
|
{
|
|
{
|
|
- if (!iSEM.SetStageGotoZ(fSateyZ))
|
|
|
|
|
|
+ Locate lo = new Locate(iSEM);
|
|
|
|
+ if (!lo.MoveZAxis(fSateyZ, Locate.ZAxisDirection.down))
|
|
{
|
|
{
|
|
arg.State = false;
|
|
arg.State = false;
|
|
arg.Message = "样品台移动到观测点:" + m_cutHoles[i] + "的位置失败。";
|
|
arg.Message = "样品台移动到观测点:" + m_cutHoles[i] + "的位置失败。";
|
|
@@ -3668,7 +3669,7 @@ namespace MeasureThread
|
|
Segment segment = new Segment();
|
|
Segment segment = new Segment();
|
|
segment.X = LinesStartPoint[i].X;
|
|
segment.X = LinesStartPoint[i].X;
|
|
segment.Y = LinesStartPoint[i].Y + j;
|
|
segment.Y = LinesStartPoint[i].Y + j;
|
|
- segment.Length = 1;
|
|
|
|
|
|
+ segment.Length = 2;
|
|
segments.Add(segment);
|
|
segments.Add(segment);
|
|
}
|
|
}
|
|
listFeature.Add(segments);
|
|
listFeature.Add(segments);
|
|
@@ -3918,12 +3919,13 @@ namespace MeasureThread
|
|
reduceWinWidth = 600,
|
|
reduceWinWidth = 600,
|
|
ScanSpeed = MParam.ScanSpeedFocus,
|
|
ScanSpeed = MParam.ScanSpeedFocus,
|
|
IfAutoBrightnessAndContrast = true,
|
|
IfAutoBrightnessAndContrast = true,
|
|
- delayTime=500,
|
|
|
|
- voltage=7000,
|
|
|
|
- Iprobe=0.5f,
|
|
|
|
- workingDis=10,//unit mm
|
|
|
|
- brightness =50,
|
|
|
|
- contrast =29,
|
|
|
|
|
|
+ delayTime = 500,
|
|
|
|
+ voltage = 7000,
|
|
|
|
+ Iprobe = 0.5f,
|
|
|
|
+ workingDis = 10,//unit mm
|
|
|
|
+ brightness = 50,
|
|
|
|
+ contrast = 29,
|
|
|
|
+ tiltCorrAngle = 36,
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
@@ -3981,7 +3983,7 @@ namespace MeasureThread
|
|
Thread.Sleep(200);
|
|
Thread.Sleep(200);
|
|
//20201128陈工要求,谭博返回角度*0.7
|
|
//20201128陈工要求,谭博返回角度*0.7
|
|
|
|
|
|
- iSEM.SetScanRotation(Convert.ToSingle(degree * MParam.ScanRotCor));
|
|
|
|
|
|
+ iSEM.SetScanRotation(Convert.ToSingle(degree * 0.7));
|
|
Thread.Sleep(200);
|
|
Thread.Sleep(200);
|
|
|
|
|
|
arg.State = true;
|
|
arg.State = true;
|
|
@@ -4054,7 +4056,8 @@ namespace MeasureThread
|
|
#endregion
|
|
#endregion
|
|
if (state == 1 && ct.Count != 0 && mag.Count != 0)
|
|
if (state == 1 && ct.Count != 0 && mag.Count != 0)
|
|
{
|
|
{
|
|
-
|
|
|
|
|
|
+ Locate recordPostion = new Locate(iSEM);
|
|
|
|
+ recordPostion.RecordCurrentBeamShiftAndStagePosition();
|
|
//找到放大倍数最大值
|
|
//找到放大倍数最大值
|
|
magMax = mag[0];
|
|
magMax = mag[0];
|
|
for (int m = 1; m < mag.Count; m++)
|
|
for (int m = 1; m < mag.Count; m++)
|
|
@@ -4084,34 +4087,34 @@ namespace MeasureThread
|
|
{
|
|
{
|
|
mag = magMax / 4,
|
|
mag = magMax / 4,
|
|
reduceWindowPos = new System.Drawing.Point(402, 128),
|
|
reduceWindowPos = new System.Drawing.Point(402, 128),
|
|
- reduceWinHeight = 480,
|
|
|
|
- reduceWinWidth = 450,
|
|
|
|
|
|
+ reduceWinHeight = 600,
|
|
|
|
+ reduceWinWidth = 600,
|
|
ScanSpeed = MParam.ScanSpeedFocus,
|
|
ScanSpeed = MParam.ScanSpeedFocus,
|
|
- IfAutoBrightnessAndContrast = true,
|
|
|
|
|
|
+ IfAutoBrightnessAndContrast = false,
|
|
delayTime = 500,
|
|
delayTime = 500,
|
|
voltage = 7000,
|
|
voltage = 7000,
|
|
Iprobe = 0.5f,
|
|
Iprobe = 0.5f,
|
|
workingDis = 10 ,
|
|
workingDis = 10 ,
|
|
- brightness = 50,
|
|
|
|
- contrast = 29,
|
|
|
|
|
|
+ brightness = 49.4f,
|
|
|
|
+ contrast = 30.1f,
|
|
|
|
+ tiltCorrAngle =36,
|
|
};
|
|
};
|
|
|
|
|
|
- log.Info("自动对焦开始!", true);
|
|
|
|
- Focus f1 = new Focus(fprm, iSEM);
|
|
|
|
|
|
+ log.Info("自动对焦1开始!", true);
|
|
|
|
+ Focus f1 = new Focus(fprm1, iSEM);
|
|
f1.DoFocus();
|
|
f1.DoFocus();
|
|
|
|
|
|
- fprm.mag = magMax / 2;
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
+ log.Info("自动对焦2开始!", true);
|
|
|
|
+
|
|
|
|
+ f1.DoFocusByNewMagnification(magMax / 2);
|
|
|
|
|
|
- log.Info("自动对焦开始!", true);
|
|
|
|
- Focus f2= new Focus(fprm, iSEM);
|
|
|
|
- f2.DoFocus();
|
|
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
log.Warn("对焦完成,开始用能谱拍摄观测点照片!并分析图片以获得Xray点位置!");
|
|
log.Warn("对焦完成,开始用能谱拍摄观测点照片!并分析图片以获得Xray点位置!");
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ recordPostion.RestoreLastBeamShiftAndStagePosition();
|
|
|
|
|
|
log.Warn("移动到指定观测点!并准备打Xray");
|
|
log.Warn("移动到指定观测点!并准备打Xray");
|
|
LocateParam locp = new LocateParam()
|
|
LocateParam locp = new LocateParam()
|
|
@@ -4135,21 +4138,14 @@ namespace MeasureThread
|
|
log.Info("开始拍照,设置放大倍数" + mag[0]);
|
|
log.Info("开始拍照,设置放大倍数" + mag[0]);
|
|
if (!iSEM.SetMagnification(mag[0]))
|
|
if (!iSEM.SetMagnification(mag[0]))
|
|
{
|
|
{
|
|
- log.Error("移动到第一个点位置拍照失败", false);
|
|
|
|
|
|
+ log.Error("设置放大倍数失败", false);
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
- Thread.Sleep(100 + Convert.ToInt32(cycle_time));
|
|
|
|
|
|
+ Thread.Sleep(300 + Convert.ToInt32(cycle_time));
|
|
|
|
|
|
- float set = mag[0];
|
|
|
|
- float current = iSEM.GetMagnification();
|
|
|
|
- //while (Math.Abs(current - set) > 1)
|
|
|
|
- //{
|
|
|
|
- // iSEM.SetMagnification(set);
|
|
|
|
- // Thread.Sleep(200);
|
|
|
|
- // current = iSEM.GetMagnification();
|
|
|
|
- //}
|
|
|
|
- Thread.Sleep(200);
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
//add by zjx 2020-12-21 根据客户的需求修改图片的名称
|
|
//add by zjx 2020-12-21 根据客户的需求修改图片的名称
|
|
String fileName7 = data_path + "\\EDS\\" + MParam.Firm + "-" + mag[0].ToString() + "-" + m_cutHoles[m_nWorkHoleNo].HoleName + "-0-" + ImageNameTwo_1;
|
|
String fileName7 = data_path + "\\EDS\\" + MParam.Firm + "-" + mag[0].ToString() + "-" + m_cutHoles[m_nWorkHoleNo].HoleName + "-0-" + ImageNameTwo_1;
|
|
@@ -4211,28 +4207,9 @@ namespace MeasureThread
|
|
public bool EDS_Analysis()
|
|
public bool EDS_Analysis()
|
|
{
|
|
{
|
|
//1.先降Z轴 37.241左右使工作距离从5mm 变为 10mm,这样方便能谱工作,麻烦是需要从新对焦。由于移动样品台会有误差,容易造成图像偏移,最好从新定位
|
|
//1.先降Z轴 37.241左右使工作距离从5mm 变为 10mm,这样方便能谱工作,麻烦是需要从新对焦。由于移动样品台会有误差,容易造成图像偏移,最好从新定位
|
|
- if (MParam.EDSZ < Z_Min || MParam.EDSZ > Z_Max)
|
|
|
|
- {
|
|
|
|
- log.Info("Z轴位置设置超出范围.", true);
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
- log.Info("将Z轴位置指定到:" + MParam.EDSZ.ToString(), true);
|
|
|
|
- if (!iSEM.SetStageGotoZ(MParam.EDSZ))
|
|
|
|
- {
|
|
|
|
- log.Error("测量线程报错:样品台Z回到安全位置失败", false);
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- while (true)
|
|
|
|
- {
|
|
|
|
- Thread.Sleep(2000);
|
|
|
|
- if (iSEM.GetStageIs() == 0)
|
|
|
|
- {
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ Locate lo = new Locate(iSEM);
|
|
|
|
+
|
|
|
|
+ lo.MoveZAxisByAbs(MParam.EDSZ);
|
|
|
|
|
|
//判断是否停止进程
|
|
//判断是否停止进程
|
|
if (key_stop)
|
|
if (key_stop)
|
|
@@ -4241,32 +4218,34 @@ namespace MeasureThread
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
SendMsg("4-0");
|
|
SendMsg("4-0");
|
|
- Thread.Sleep(200);
|
|
|
|
|
|
+
|
|
//2.角度改为54度
|
|
//2.角度改为54度
|
|
iSEM.SetScanRotationOff();
|
|
iSEM.SetScanRotationOff();
|
|
|
|
|
|
|
|
+
|
|
|
|
+ Thread.Sleep(200);
|
|
|
|
+
|
|
Focusparam focusPrm = new Focusparam()
|
|
Focusparam focusPrm = new Focusparam()
|
|
{
|
|
{
|
|
-
|
|
|
|
|
|
+
|
|
voltage = 7000,
|
|
voltage = 7000,
|
|
Iprobe = 0.5F,
|
|
Iprobe = 0.5F,
|
|
IfAutoBrightnessAndContrast = true,
|
|
IfAutoBrightnessAndContrast = true,
|
|
ScanSpeed = MParam.ScanSpeedHigh,
|
|
ScanSpeed = MParam.ScanSpeedHigh,
|
|
mag = 600,
|
|
mag = 600,
|
|
reduceWindowPos = new System.Drawing.Point(256, 192),
|
|
reduceWindowPos = new System.Drawing.Point(256, 192),
|
|
- reduceWinWidth = 512,
|
|
|
|
- reduceWinHeight = 512,
|
|
|
|
|
|
+ reduceWinWidth = 400,
|
|
|
|
+ reduceWinHeight = 400,
|
|
workingDis = 10,//unit:mm
|
|
workingDis = 10,//unit:mm
|
|
- brightness=50,
|
|
|
|
- contrast=29
|
|
|
|
- };
|
|
|
|
-
|
|
|
|
- SendMsg("4-1");
|
|
|
|
|
|
+ brightness = 50,
|
|
|
|
+ contrast = 29,
|
|
|
|
+ tiltCorrAngle =54,
|
|
|
|
+
|
|
|
|
+ };
|
|
Focus f = new Focus(focusPrm, iSEM);
|
|
Focus f = new Focus(focusPrm, iSEM);
|
|
f.DoFocus();
|
|
f.DoFocus();
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ SendMsg("4-1");
|
|
log.Warn("开始梯形移到视野中心!");
|
|
log.Warn("开始梯形移到视野中心!");
|
|
|
|
|
|
if (!EDS_FindCross())
|
|
if (!EDS_FindCross())
|
|
@@ -4274,7 +4253,6 @@ namespace MeasureThread
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
SendMsg("4-3");
|
|
SendMsg("4-3");
|
|
- Thread.Sleep(500);
|
|
|
|
//7.调用171步过程
|
|
//7.调用171步过程
|
|
|
|
|
|
log.Warn("开始打能谱图和打Xray!");
|
|
log.Warn("开始打能谱图和打Xray!");
|
|
@@ -4284,8 +4262,6 @@ namespace MeasureThread
|
|
{
|
|
{
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
- //SendMsg("4-3");//向界面发送指令:移动到拍摄点位置
|
|
|
|
- Thread.Sleep(200);
|
|
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|