|
|
|
@ -33,6 +33,7 @@ namespace Rs.MotionPlat
|
|
|
|
|
{
|
|
|
|
|
public partial class FormMain : BaseForm
|
|
|
|
|
{
|
|
|
|
|
HObject defaultImage = new HObject();
|
|
|
|
|
public FormMain()
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
@ -178,88 +179,158 @@ namespace Rs.MotionPlat
|
|
|
|
|
|
|
|
|
|
private void FormMain_Load(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
SqliteHelper db = new SqliteHelper();
|
|
|
|
|
string querySql = "select * from NormalTray";
|
|
|
|
|
DataTable dt=db.GetDataTable(querySql);
|
|
|
|
|
if(dt!=null&&dt.Rows.Count>0)
|
|
|
|
|
{
|
|
|
|
|
DataRow dr = dt.AsEnumerable().Where(r => r.Field<string>("TrayName") == "Empty1").First();
|
|
|
|
|
if(dr!=null)
|
|
|
|
|
{
|
|
|
|
|
trayEmpty1.ColumnNum = int.Parse(dr["ColumnNum"].ToString());
|
|
|
|
|
trayEmpty1.RowNum = int.Parse(dr["RowNum"].ToString());
|
|
|
|
|
}
|
|
|
|
|
//SqliteHelper db = new SqliteHelper();
|
|
|
|
|
//string querySql = "select * from NormalTray";
|
|
|
|
|
//DataTable dt=db.GetDataTable(querySql);
|
|
|
|
|
//if(dt!=null&&dt.Rows.Count>0)
|
|
|
|
|
//{
|
|
|
|
|
// DataRow dr = dt.AsEnumerable().Where(r => r.Field<string>("TrayName") == "Empty1").First();
|
|
|
|
|
// if(dr!=null)
|
|
|
|
|
// {
|
|
|
|
|
// trayEmpty1.ColumnNum = int.Parse(dr["ColumnNum"].ToString());
|
|
|
|
|
// trayEmpty1.RowNum = int.Parse(dr["RowNum"].ToString());
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
dr = dt.AsEnumerable().Where(r => r.Field<string>("TrayName") == "Input").First();
|
|
|
|
|
if (dr != null)
|
|
|
|
|
{
|
|
|
|
|
trayInput.ColumnNum = int.Parse(dr["ColumnNum"].ToString());
|
|
|
|
|
trayInput.RowNum = int.Parse(dr["RowNum"].ToString());
|
|
|
|
|
}
|
|
|
|
|
// dr = dt.AsEnumerable().Where(r => r.Field<string>("TrayName") == "Input").First();
|
|
|
|
|
// if (dr != null)
|
|
|
|
|
// {
|
|
|
|
|
// trayInput.ColumnNum = int.Parse(dr["ColumnNum"].ToString());
|
|
|
|
|
// trayInput.RowNum = int.Parse(dr["RowNum"].ToString());
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
dr = dt.AsEnumerable().Where(r => r.Field<string>("TrayName") == "Ok").First();
|
|
|
|
|
if (dr != null)
|
|
|
|
|
{
|
|
|
|
|
trayOk.ColumnNum = int.Parse(dr["ColumnNum"].ToString());
|
|
|
|
|
trayOk.RowNum = int.Parse(dr["RowNum"].ToString());
|
|
|
|
|
}
|
|
|
|
|
// dr = dt.AsEnumerable().Where(r => r.Field<string>("TrayName") == "Ok").First();
|
|
|
|
|
// if (dr != null)
|
|
|
|
|
// {
|
|
|
|
|
// trayOk.ColumnNum = int.Parse(dr["ColumnNum"].ToString());
|
|
|
|
|
// trayOk.RowNum = int.Parse(dr["RowNum"].ToString());
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
dr = dt.AsEnumerable().Where(r => r.Field<string>("TrayName") == "Ng").First();
|
|
|
|
|
if (dr != null)
|
|
|
|
|
{
|
|
|
|
|
trayNg.ColumnNum = int.Parse(dr["ColumnNum"].ToString());
|
|
|
|
|
trayNg.RowNum = int.Parse(dr["RowNum"].ToString());
|
|
|
|
|
}
|
|
|
|
|
// dr = dt.AsEnumerable().Where(r => r.Field<string>("TrayName") == "Ng").First();
|
|
|
|
|
// if (dr != null)
|
|
|
|
|
// {
|
|
|
|
|
// trayNg.ColumnNum = int.Parse(dr["ColumnNum"].ToString());
|
|
|
|
|
// trayNg.RowNum = int.Parse(dr["RowNum"].ToString());
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dr = dt.AsEnumerable().Where(r => r.Field<string>("TrayName") == "Multi").First();
|
|
|
|
|
if (dr != null)
|
|
|
|
|
{
|
|
|
|
|
trayMulti.ColumnNum = int.Parse(dr["ColumnNum"].ToString());
|
|
|
|
|
trayMulti.RowNum = int.Parse(dr["RowNum"].ToString());
|
|
|
|
|
}
|
|
|
|
|
// dr = dt.AsEnumerable().Where(r => r.Field<string>("TrayName") == "Multi").First();
|
|
|
|
|
// if (dr != null)
|
|
|
|
|
// {
|
|
|
|
|
// trayMulti.ColumnNum = int.Parse(dr["ColumnNum"].ToString());
|
|
|
|
|
// trayMulti.RowNum = int.Parse(dr["RowNum"].ToString());
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
dr = dt.AsEnumerable().Where(r => r.Field<string>("TrayName") == "Empty2").First();
|
|
|
|
|
if (dr != null)
|
|
|
|
|
{
|
|
|
|
|
trayEmpty2.ColumnNum = int.Parse(dr["ColumnNum"].ToString());
|
|
|
|
|
trayEmpty2.RowNum = int.Parse(dr["RowNum"].ToString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// dr = dt.AsEnumerable().Where(r => r.Field<string>("TrayName") == "Empty2").First();
|
|
|
|
|
// if (dr != null)
|
|
|
|
|
// {
|
|
|
|
|
// trayEmpty2.ColumnNum = int.Parse(dr["ColumnNum"].ToString());
|
|
|
|
|
// trayEmpty2.RowNum = int.Parse(dr["RowNum"].ToString());
|
|
|
|
|
// }
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
timer1.Interval = 500;
|
|
|
|
|
timer1.Enabled = true;
|
|
|
|
|
DischargeFlow.Instance.OnMatchResult += Instance_OnMatchResult;
|
|
|
|
|
DischargeFlow.Instance.OnUpCameraGrabResult += Instance_OnUpCameraGrabResult;
|
|
|
|
|
trayTurnover.ItemName = "Turnover";
|
|
|
|
|
trayEmpty1.ItemName = "Empty1";
|
|
|
|
|
trayInput.ItemName = "Input";
|
|
|
|
|
trayOk.ItemName = "Ok";
|
|
|
|
|
trayNg.ItemName = "Ng";
|
|
|
|
|
trayMulti.ItemName = "Multi";
|
|
|
|
|
trayEmpty2.ItemName = "Empty2";
|
|
|
|
|
//timer1.Interval = 500;
|
|
|
|
|
//timer1.Enabled = true;
|
|
|
|
|
//DischargeFlow.Instance.OnMatchResult += Instance_OnMatchResult;
|
|
|
|
|
//DischargeFlow.Instance.OnUpCameraGrabResult += Instance_OnUpCameraGrabResult;
|
|
|
|
|
//DischargeFlow.Instance.OnShowGrabResult += Instance_OnShowGrabResult;
|
|
|
|
|
//trayTurnover.ItemName = "Turnover";
|
|
|
|
|
//trayEmpty1.ItemName = "Empty1";
|
|
|
|
|
//trayInput.ItemName = "Input";
|
|
|
|
|
//trayOk.ItemName = "Ok";
|
|
|
|
|
//trayNg.ItemName = "Ng";
|
|
|
|
|
//trayMulti.ItemName = "Multi";
|
|
|
|
|
//trayEmpty2.ItemName = "Empty2";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trayEmpty1.InitSlotStatus = ESlotStatus.Null;
|
|
|
|
|
trayInput.InitSlotStatus = ESlotStatus.Null;
|
|
|
|
|
trayOk.InitSlotStatus = ESlotStatus.Null;
|
|
|
|
|
trayNg.InitSlotStatus = ESlotStatus.Null;
|
|
|
|
|
trayMulti.InitSlotStatus = ESlotStatus.Null;
|
|
|
|
|
trayEmpty2.InitSlotStatus = ESlotStatus.Null;
|
|
|
|
|
//trayEmpty1.InitSlotStatus = ESlotStatus.Null;
|
|
|
|
|
//trayInput.InitSlotStatus = ESlotStatus.Null;
|
|
|
|
|
//trayOk.InitSlotStatus = ESlotStatus.Null;
|
|
|
|
|
//trayNg.InitSlotStatus = ESlotStatus.Null;
|
|
|
|
|
//trayMulti.InitSlotStatus = ESlotStatus.Null;
|
|
|
|
|
//trayEmpty2.InitSlotStatus = ESlotStatus.Null;
|
|
|
|
|
|
|
|
|
|
GlobalTray.Empty1Tray = trayEmpty1;
|
|
|
|
|
GlobalTray.InputTray = trayInput;
|
|
|
|
|
GlobalTray.OkTary= trayOk;
|
|
|
|
|
GlobalTray.NgTray= trayNg;
|
|
|
|
|
GlobalTray.MultiTray = trayMulti;
|
|
|
|
|
GlobalTray.Empty2Tray = trayEmpty2;
|
|
|
|
|
GlobalTray.TurnoverTray = trayTurnover;
|
|
|
|
|
GlobalTray.TestTray = trayTest;
|
|
|
|
|
//StockManager.Instance.Start();
|
|
|
|
|
LoadStockStatus();
|
|
|
|
|
//GlobalTray.Empty1Tray = trayEmpty1;
|
|
|
|
|
//GlobalTray.InputTray = trayInput;
|
|
|
|
|
//GlobalTray.OkTary= trayOk;
|
|
|
|
|
//GlobalTray.NgTray= trayNg;
|
|
|
|
|
//GlobalTray.MultiTray = trayMulti;
|
|
|
|
|
//GlobalTray.Empty2Tray = trayEmpty2;
|
|
|
|
|
//GlobalTray.TurnoverTray = trayTurnover;
|
|
|
|
|
//GlobalTray.TestTray = trayTest;
|
|
|
|
|
////StockManager.Instance.Start();
|
|
|
|
|
//LoadStockStatus();
|
|
|
|
|
HOperatorSet.ReadImage(out defaultImage, "default.bmp");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void Instance_OnShowGrabResult(VisionResult matchResult, bool arg2)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
HWindow_Final hwin = null;
|
|
|
|
|
switch (matchResult.SlotIndex)
|
|
|
|
|
{
|
|
|
|
|
case 1: hwin = hwin_turnoverSlot1; break;
|
|
|
|
|
case 2: hwin = hwin_turnoverSlot2; break;
|
|
|
|
|
case 3: hwin = hwin_turnoverSlot3; break;
|
|
|
|
|
case 4: hwin = hwin_turnoverSlot4; break;
|
|
|
|
|
case 5: hwin = hwin_turnoverSlot5; break;
|
|
|
|
|
case 6: hwin = hwin_turnoverSlot6; break;
|
|
|
|
|
case 7: hwin = hwin_turnoverSlot7; break;
|
|
|
|
|
case 8: hwin = hwin_turnoverSlot8; break;
|
|
|
|
|
case 9: hwin = hwin_turnoverSlot9; break;
|
|
|
|
|
case 10: hwin = hwin_turnoverSlot10; break;
|
|
|
|
|
case 11: hwin = hwin_turnoverSlot11; break;
|
|
|
|
|
case 12: hwin = hwin_turnoverSlot12; break;
|
|
|
|
|
case 13: hwin = hwin_turnoverSlot13; break;
|
|
|
|
|
case 14: hwin = hwin_turnoverSlot14; break;
|
|
|
|
|
case 15: hwin = hwin_turnoverSlot15; break;
|
|
|
|
|
case 16: hwin = hwin_turnoverSlot16; break;
|
|
|
|
|
case 17: hwin = hwin_turnoverSlot17; break;
|
|
|
|
|
case 18: hwin = hwin_turnoverSlot18; break;
|
|
|
|
|
case 19: hwin = hwin_turnoverSlot19; break;
|
|
|
|
|
case 20: hwin = hwin_turnoverSlot20; break;
|
|
|
|
|
case 21: hwin = hwin_turnoverSlot21; break;
|
|
|
|
|
case 22: hwin = hwin_turnoverSlot22; break;
|
|
|
|
|
case 23: hwin = hwin_turnoverSlot23; break;
|
|
|
|
|
case 24: hwin = hwin_turnoverSlot24; break;
|
|
|
|
|
case 25: hwin = hwin_turnoverSlot25; break;
|
|
|
|
|
case 26: hwin = hwin_turnoverSlot26; break;
|
|
|
|
|
case 27: hwin = hwin_turnoverSlot27; break;
|
|
|
|
|
case 28: hwin = hwin_turnoverSlot28; break;
|
|
|
|
|
case 29: hwin = hwin_turnoverSlot29; break;
|
|
|
|
|
case 30: hwin = hwin_turnoverSlot30; break;
|
|
|
|
|
case 31: hwin = hwin_turnoverSlot31; break;
|
|
|
|
|
case 32: hwin = hwin_turnoverSlot32; break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (hwin != null)
|
|
|
|
|
{
|
|
|
|
|
hwin.ClearWindow();
|
|
|
|
|
if (arg2)
|
|
|
|
|
{
|
|
|
|
|
if (matchResult.ScanBarCodeOK)
|
|
|
|
|
{
|
|
|
|
|
hwin.HobjectToHimage(matchResult.SourceImage);
|
|
|
|
|
HalconTool.DispMessage(hwin.hWindowControl.HalconWindow, $"sn:{matchResult.SN}", 20, 20, "green");
|
|
|
|
|
//HalconTool.DispMessage(hwin.hWindowControl.HalconWindow, $"x:{matchResult.OffsetX}", 200, 20, "green");
|
|
|
|
|
//HalconTool.DispMessage(hwin.hWindowControl.HalconWindow, $"y:{matchResult.OffsetY}", 400, 20, "green");
|
|
|
|
|
//HalconTool.DispMessage(hwin.hWindowControl.HalconWindow, $"r:{matchResult.OffsetR}", 600, 20, "green");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
hwin.HobjectToHimage(matchResult.SourceImage);
|
|
|
|
|
HalconTool.DispMessage(hwin.hWindowControl.HalconWindow, "NG", 20, 20, "red");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//加载默认图片
|
|
|
|
|
hwin.HobjectToHimage(defaultImage);
|
|
|
|
|
HalconTool.DispMessage(hwin.hWindowControl.HalconWindow, "no product", 20, 20, "red");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void btnWholeHome_Load(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|