Selaa lähdekoodia

V2.1.0 安装包

MainC
CPL 2 vuotta sitten
vanhempi
commit
41f1532cf5
2 muutettua tiedostoa jossa 89 lisäystä ja 58 poistoa
  1. +81
    -54
      halftoneproject-master/BanBoShi/SysCtrl/SysMgr.cs
  2. +8
    -4
      halftoneproject-master/BanBoShi/SysUI/DefectPicShow/DataQueryFrm.cs

+ 81
- 54
halftoneproject-master/BanBoShi/SysCtrl/SysMgr.cs Näytä tiedosto

@@ -8100,47 +8100,61 @@ namespace MaiMuAOI.SysCtrl
//寻找方向
dt = DateTime.Now;
bool breakW = false;
while (true)
{
double pos = GetAxisPosValueMM(axisno);
camDevFront.ClearImageQueue();
Acquisition acq = camDevFront.Snap(1, 5000);
if (acq.GrabStatus == "GrabPass")
{
//显示
OnAutoRuning(new RunEventArgs(0, acq.Image));
yolo.FocusDirec(acq.Image.CopyObj(1, -1), ref dir, ref mean, ref z_hpos);
cnt++;
if ((cnt > 2) && (dir != 0))
double pos = GetAxisPosValueMM(axisno);
for (int i = 0; i < snapCnt; i++)
{
camDevFront.ClearImageQueue();
Acquisition acq = camDevFront.Snap(1, 5000);
if (acq.GrabStatus == "GrabPass")
{
Log("自动找方向", $"步进次数:{cnt},位置:{pos}, 反馈方向:{dir}, 反馈位置:{z_hpos}, 步进:{dir_step}");
break;
}
//显示
OnAutoRuning(new RunEventArgs(0, acq.Image));
yolo.FocusDirec(acq.Image.CopyObj(1, -1), ref dir, ref mean, ref z_hpos);
cnt++;
VelocityCurveParams velocityCurve = new VelocityCurveParams(100, 100, 5, 100, 0, 1000);
//axisDev.MoveAbsValue(axisno, velocityCurve, z - cnt * dir_step);
if (cnt == 1)
{
mean = 0;
Log("自动找方向", $"步进次数:{cnt},位置:{pos}, mean:{mean}, 反馈方向:{dir}, 反馈位置:{z_hpos}");
axisDev.MoveAbsValue(axisno, velocityCurve, z_hpos);
axisDev.CheckDone(axisno, 20);
if ((cnt > 2) && (dir != 0))
{
breakW = true;
Log("自动找方向", $"步进次数:{cnt},位置:{pos}, 反馈方向:{dir}, 反馈位置:{z_hpos}, 步进:{dir_step}");
break;
}
VelocityCurveParams velocityCurve = new VelocityCurveParams(100, 100, 5, 100, 0, 1000);
//axisDev.MoveAbsValue(axisno, velocityCurve, z - cnt * dir_step);
if (cnt == 1)
{
mean = 0;
Log("自动找方向", $"步进次数:{cnt},位置:{pos}, mean:{mean}, 反馈方向:{dir}, 反馈位置:{z_hpos}");
axisDev.MoveAbsValue(axisno, velocityCurve, z_hpos);
axisDev.CheckDone(axisno, 20);
}
else
{
Log("自动找方向", $"步进次数:{cnt},位置:{pos}, mean:{mean}, 反馈方向:{dir}, 反馈位置:{z_hpos}, 步进:{dir_step}");
axisDev.MoveAbsValue(axisno, velocityCurve, pos - dir_step);
axisDev.CheckDone(axisno, 20);
}
break;
//Log("自动找方向", $"步进次数:{cnt},位置:{z_hpos - cnt * dir_step}, 反馈:{dir}");
}
else
else
{
Log("自动找方向", $"步进次数:{cnt},位置:{pos}, mean:{mean}, 反馈方向:{dir}, 反馈位置:{z_hpos}, 步进:{dir_step}");
axisDev.MoveAbsValue(axisno, velocityCurve, pos - dir_step);
axisDev.CheckDone(axisno, 20);
Log($"自动找方向{i}", $"拍照失败!");
if (i < snapCnt - 1)
{
Thread.Sleep(100);
continue;
}
else
return false;
}
//Log("自动找方向", $"步进次数:{cnt},位置:{z_hpos - cnt * dir_step}, 反馈:{dir}");
}
else
{
Log("自动找方向", $"拍照失败!");
return false;
}
if (breakW)
break;
if((DateTime.Now - dt).TotalMilliseconds > Timeout)
{
return false;
@@ -8153,37 +8167,50 @@ namespace MaiMuAOI.SysCtrl
z = GetAxisPosValueMM(axisno);
//dt = DateTime.Now;
//聚焦
breakW = false;
while (true)
{
double pos = GetAxisPosValueMM(axisno);
camDevFront.ClearImageQueue();
Acquisition acq = camDevFront.Snap(1, 1000);
if (acq.GrabStatus == "GrabPass")
for (int i = 0; i < snapCnt; i++)
{
//显示
OnAutoRuning(new RunEventArgs(0, acq.Image));
yolo.Focus(acq.Image.CopyObj(1, -1), step, ref dir, ref z, ref mean);
cnt++;
Log("自动聚焦", $"方向:{dir},下次目标位置:{z},次数:{cnt},反馈:{mean},Z轴当前实际位置:{pos}");
if (mean == 9999)
camDevFront.ClearImageQueue();
Acquisition acq = camDevFront.Snap(1, 1000);
if (acq.GrabStatus == "GrabPass")
{
//显示
OnAutoRuning(new RunEventArgs(0, acq.Image));
yolo.Focus(acq.Image.CopyObj(1, -1), step, ref dir, ref z, ref mean);
cnt++;
Log("自动聚焦", $"方向:{dir},下次目标位置:{z},次数:{cnt},反馈:{mean},Z轴当前实际位置:{pos}");
if (mean == 9999)
{
breakW = true;
break;
}
VelocityCurveParams velocityCurve = new VelocityCurveParams(100, 100, 5, 100, 0, 1000);
axisDev.MoveAbsValue(axisno, velocityCurve, z);
axisDev.CheckDone(axisno, 20);
if ((DateTime.Now - alldt).TotalMilliseconds > Timeout)
{
return false;
}
break;
}
VelocityCurveParams velocityCurve = new VelocityCurveParams(100, 100, 5, 100, 0, 1000);
axisDev.MoveAbsValue(axisno, velocityCurve, z);
axisDev.CheckDone(axisno, 20);
if ((DateTime.Now - alldt).TotalMilliseconds > Timeout)
else
{
return false;
Log($"自动找方向2{i}", $"拍照失败!");
if (i < snapCnt - 1)
{
Thread.Sleep(100);
continue;
}
else
return false;
}
}
else
{
Log("自动找方向", $"拍照失败!");
return false;
}
if (breakW)
break;
if ((DateTime.Now - alldt).TotalMilliseconds > Timeout)
{
return false;


+ 8
- 4
halftoneproject-master/BanBoShi/SysUI/DefectPicShow/DataQueryFrm.cs Näytä tiedosto

@@ -464,18 +464,20 @@ namespace MaiMuAOI.SysUI.DefectPicShow
{
tempd = item.SizeDefectInfoList.Where(q => q.StepName == tdata.Key).ToList();
List<double> dataList = new List<double>();
int data_index = 0;
for (int i = 0; i < tempd.Count; i++)
{
if (tempd[i].isAverage == false)
{
dataList.Add(tempd[i].Data);
dr[$"{tdata.Key}-{i + 1}"] = tempd[i].Data.ToString("0.0000");
dr[$"{tdata.Key}-{data_index + 1}"] = tempd[i].Data.ToString("0.0000");
data_index++;
}
//不合格数据添加队列
if(i + 1 == tempd.Count)
col_index = this.dataGridView1.Columns[$"{tdata.Key}均值"].Index;
else
col_index = this.dataGridView1.Columns[$"{tdata.Key}-{i + 1}"].Index;
col_index = this.dataGridView1.Columns[$"{tdata.Key}-{data_index}"].Index;
if (tempd[i].result == 2)
FailPoint.Add(new Point(row_index, col_index));
}
@@ -1003,14 +1005,16 @@ namespace MaiMuAOI.SysUI.DefectPicShow
//for (int i = 0; i < tempd.Count; i++)
// dr[$"{tdata.Key}-{i + 1}"] = tempd[i].Data.ToString("0.0000");
//dr[$"{tdata.Key}均值"] = item.TensionValue.ToString("0.0000");
int data_index = 0;
for (int i = 0; i < tempd.Count; i++)
{
int col_index = 0;
if (!tempd[i].isAverage)
{
dataList.Add(tempd[i].Data);
dr[$"{tdata.Key}-{i + 1}"] = tempd[i].Data.ToString("0.0000");
col_index = dr.Table.Columns.IndexOf($"{tdata.Key}-{i + 1}");
dr[$"{tdata.Key}-{data_index + 1}"] = tempd[i].Data.ToString("0.0000");
col_index = dr.Table.Columns.IndexOf($"{tdata.Key}-{data_index + 1}");
data_index++;
}
else
col_index = dr.Table.Columns.IndexOf($"{tdata.Key}均值");


Ladataan…
Peruuta
Tallenna