1
This commit is contained in:
@ -183,7 +183,7 @@ namespace DHSoftware
|
||||
public MainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
InitialCameraSumsView(); //refreshTimer.Start();
|
||||
//refreshTimer.Start();
|
||||
//初始化数据
|
||||
InitData();
|
||||
//绑定事件
|
||||
@ -591,7 +591,7 @@ namespace DHSoftware
|
||||
cam.CameraName = cameraBase.CameraName;
|
||||
cam.CameraIP = cameraBase.CameraIP;
|
||||
cam.IsEnabled = cameraBase.IsEnabled;
|
||||
cam.ImageSaveDirectory = "D://Cam1//";
|
||||
cam.ImageSaveDirectory = Path.Combine("D://Projects", cameraBase.CameraName);
|
||||
Cameras.Add(cam);
|
||||
if(cameraBase.IsEnabled)
|
||||
{
|
||||
@ -691,6 +691,8 @@ namespace DHSoftware
|
||||
//
|
||||
_visionEngine = new SimboVisionDriver();
|
||||
_visionEngine.DetectionConfigs = DetectionConfigs;
|
||||
_visionEngine.LoggerHelper .LogPath = "D://PROJECTS//Logs//";
|
||||
_visionEngine.LoggerHelper.LogPrefix = "Vision";
|
||||
_visionEngine.OnLog += _visionEngine_OnLog;
|
||||
//初始化模型 加载模型
|
||||
_visionEngine.Init();
|
||||
@ -703,7 +705,7 @@ namespace DHSoftware
|
||||
|
||||
private void _visionEngine_OnLog(LogMsg msg)
|
||||
{
|
||||
OnLog?.Invoke(msg);
|
||||
//OnLog?.Invoke(msg);
|
||||
LogDisplay(msg);
|
||||
}
|
||||
private void LogDisplay(LogMsg msg)
|
||||
@ -736,12 +738,13 @@ namespace DHSoftware
|
||||
LogAsync(new LogMsg(dt, logLevel, msg));
|
||||
|
||||
}
|
||||
System.Windows.Forms.Timer _refreshUITimer = new System.Windows.Forms.Timer();
|
||||
private void BindEventHandler()
|
||||
{
|
||||
btnAddProject.Click += BtnAddProject_Click;
|
||||
btnDeleteProject.Click += BtnDeleteProject_Click;
|
||||
btnLoadProject.Click += BtnLoadProject_Click;
|
||||
LoggerHelper.LogPath = "D://";
|
||||
LoggerHelper.LogPath = "D://PROJECTS//Logs//";
|
||||
LoggerHelper.LogPrefix = "Process";
|
||||
OnLog -= LogDisplay;
|
||||
OnLog += LogDisplay;
|
||||
@ -751,6 +754,30 @@ namespace DHSoftware
|
||||
OnUpdateCamResult += UpdateCamResult;
|
||||
OnUpdateResult -= UpdateResult;
|
||||
OnUpdateResult += UpdateResult;
|
||||
Load += (s, e) =>
|
||||
{
|
||||
_refreshUITimer.Interval = 1000;
|
||||
_refreshUITimer.Tick += _refreshUITimer_Tick;
|
||||
_refreshUITimer.Enabled = true;
|
||||
};
|
||||
}
|
||||
private void _refreshUITimer_Tick(object sender, EventArgs e)
|
||||
{
|
||||
_refreshUITimer.Enabled = false;
|
||||
|
||||
if (this != null)
|
||||
{
|
||||
lblStartTime.Text = StartTime == null ? "" : StartTime.Value.ToString("yyyy/MM/dd HH:mm:ss");
|
||||
lblTotalTime.Text = TotalTime.ToString(); // 运行时间
|
||||
// lblRunTime.Text = RunTime.ToString(); // 有效时间
|
||||
// lblIdleTime.Text = ProcessControl.IdleTime.ToString(); // 空闲时间
|
||||
// lblDownTime.Text = ProcessControl.DownTime.ToString(); // 宕机时间
|
||||
|
||||
lblOEE_Total.Text = ProductNum_Total.ToString();
|
||||
// lblOEE_OK.Text = ProcessControl.ProductNum_OK.ToString();
|
||||
}
|
||||
|
||||
_refreshUITimer.Enabled = true;
|
||||
}
|
||||
private void UpdateCamResult(DateTime updateTime, object objData, string customMessage)
|
||||
{
|
||||
@ -767,17 +794,17 @@ namespace DHSoftware
|
||||
{
|
||||
this.Invoke(new Action(() =>
|
||||
{
|
||||
dgvProductNums.DataSource = null;
|
||||
dgvProductNums.DataSource = ProductSummaries;
|
||||
|
||||
dgvProductNums.DataSource = new BindingList<ProductSummary>(ProductSummaries);
|
||||
|
||||
if (dgvProductNums.Rows.Count > 0)
|
||||
{
|
||||
dgvProductNums.Height = dgvProductNums.Rows[0].Height * dgvProductNums.Rows.Count + 15;
|
||||
}
|
||||
else
|
||||
{
|
||||
dgvProductNums.Height = 15;
|
||||
}
|
||||
//if (dgvProductNums.Rows.Count > 0)
|
||||
//{
|
||||
// dgvProductNums.Height = dgvProductNums.Rows[0].Height * dgvProductNums.Rows.Count + 15;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// dgvProductNums.Height = 35;
|
||||
//}
|
||||
|
||||
//lblOEE_Rate.Text = ProcessControl.OEE.ToString("f2") + " %";
|
||||
lblUPH.Text = UPH.ToString();
|
||||
@ -994,6 +1021,7 @@ namespace DHSoftware
|
||||
|
||||
private void HandleStartButton()
|
||||
{
|
||||
InitialCameraSumsView();
|
||||
LogAsync(DateTime.Now, LogLevel.Information, "流程启动中,请稍候...");
|
||||
StartProcess();
|
||||
LogAsync(DateTime.Now, LogLevel.Action, "流程启动完成!");
|
||||
@ -1004,7 +1032,7 @@ namespace DHSoftware
|
||||
private void StartProcess()
|
||||
{
|
||||
ProcessstartTime = DateTime.Now;
|
||||
lblstarttime.Text = ProcessstartTime.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
lblStartTime.Text = ProcessstartTime.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
//计数清零
|
||||
PieceCount = 0;
|
||||
|
||||
@ -1110,7 +1138,7 @@ namespace DHSoftware
|
||||
|
||||
//流程执行时PLC
|
||||
PLC.StartProcess();
|
||||
|
||||
InitialOEEStatistic();
|
||||
|
||||
|
||||
|
||||
@ -1231,7 +1259,7 @@ namespace DHSoftware
|
||||
return;
|
||||
}
|
||||
|
||||
// LogAsync(DateTime.Now, LogLevel.Information, $"{camera.Name} 找到产品{productNumber},队列{index}数量:{tmpDic.Count}");
|
||||
LogAsync(DateTime.Now, LogLevel.Information, $"{camera.CameraName} 找到产品{productNumber},队列{index}数量:{tmpDic.Count}");
|
||||
|
||||
if (!_cameraRelatedDetectionDict.ContainsKey(camera.CameraName))
|
||||
{
|
||||
@ -1275,24 +1303,32 @@ namespace DHSoftware
|
||||
{
|
||||
return;
|
||||
}
|
||||
UpdateResultPro(DateTime.Now, null, product.ProductResult.GetEnumDescription());
|
||||
|
||||
|
||||
|
||||
#region 6. 统计产品结果
|
||||
|
||||
product.ProductResult = product.ResultCollection.Any(u => u.ResultState != ResultState.OK)
|
||||
? ResultState.B_NG
|
||||
: ResultState.OK;
|
||||
//if (product.ProductResult == ResultState.OK)
|
||||
//{
|
||||
// PLC.Blowing(productNumber, 1);
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// PLC.Blowing(productNumber, 2);
|
||||
//}
|
||||
product.ProductLabelCategory = product.ProductResult.GetEnumDescription();
|
||||
product.ProductLabel = product.ProductResult.GetEnumDescription();
|
||||
UpdateResultPro(DateTime.Now, null, product.ProductResult.GetEnumDescription());
|
||||
|
||||
LogAsync(DateTime.Now, LogLevel.Information, $"产品{product.PieceNumber}获取结果:{product.ProductResult} {(product.IsA2B ? "产品IsA2B" : "")}");
|
||||
|
||||
|
||||
|
||||
if (product.ProductResult == ResultState.OK)
|
||||
{
|
||||
PLC.Blowing(productNumber, 1);
|
||||
LogAsync(DateTime.Now, LogLevel.Action, $"产品{product.PieceNumber}PLC,OK吹气");
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
PLC.Blowing(productNumber, 2);
|
||||
LogAsync(DateTime.Now, LogLevel.Action, $"产品{product.PieceNumber}PLC,NG吹气");
|
||||
}
|
||||
|
||||
|
||||
#endregion 6. 统计产品结果
|
||||
|
||||
@ -1344,10 +1380,7 @@ namespace DHSoftware
|
||||
}));
|
||||
//重新生成实例 销毁之前的实例
|
||||
var saveData = temp.GetProductData();
|
||||
using (StreamWriter sw = new StreamWriter("D://123log.txt", true, Encoding.UTF8))
|
||||
{
|
||||
sw.WriteLine(logStr);
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception) { }
|
||||
finally
|
||||
|
Reference in New Issue
Block a user