1 增加数据库记录tray的状态

2 当测高仪链接不上时,增加弹框提示
master
lhiven 1 year ago
parent edd25a0bfc
commit 9ce3e5dbaf

@ -14,10 +14,10 @@ namespace Rs.MotionPlat.AuxiliaryEquipment
public static LaserEquipment checkHeightDev { get; set; } public static LaserEquipment checkHeightDev { get; set; }
public static void Init() public static bool Init()
{ {
checkHeightDev = new LaserEquipment(); checkHeightDev = new LaserEquipment();
checkHeightDev.Open(); return checkHeightDev.Open();
} }
} }
} }

@ -49,7 +49,7 @@ namespace Rs.MotionPlat.AuxiliaryEquipment
} }
catch (Exception ex) catch (Exception ex)
{ {
MessageQueue.Instance.Insert("测高仪链接失败"); MessageQueue.Instance.Warn("测高仪链接失败");
IsConnected = false; IsConnected = false;
return false; return false;
} }

@ -119,7 +119,7 @@ namespace Rs.MotionPlat.Commom
} }
else else
{ {
MessageQueue.Instance.Insert("Init fail"); MessageQueue.Instance.Warn("Init fail");
} }
Ops.On("上下气缸电磁阀原位"); Ops.On("上下气缸电磁阀原位");
Ops.Off("上下气缸电磁阀动位"); Ops.Off("上下气缸电磁阀动位");
@ -137,7 +137,10 @@ namespace Rs.MotionPlat.Commom
TurnoverSlotOffset.Init(); TurnoverSlotOffset.Init();
MonitorSystemButton.Instance.Start(); MonitorSystemButton.Instance.Start();
TestCenter.Instance.Init(); TestCenter.Instance.Init();
DeviceFactory.Init(); if(!DeviceFactory.Init())
{
Msg.ShowError("laser connect fail!");
}
QifuManager.Instance.Init(); QifuManager.Instance.Init();
QifuManager.Instance.Write(SysConfigParam.GetValue<float>("QifuValue")); QifuManager.Instance.Write(SysConfigParam.GetValue<float>("QifuValue"));
LightManger.Instance.SetStatus(ELightStatus.YellowBlink); LightManger.Instance.SetStatus(ELightStatus.YellowBlink);

@ -0,0 +1,88 @@
using Rs.DataAccess;
using Rs.MotionPlat.Commom;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Rs.MotionPlat.Entitys.Trays
{
/// <summary>
/// 料盘的状态管理
/// </summary>
public static class TrayStatusManager
{
static SqliteHelper db = new SqliteHelper();
/// <summary>
/// 按traytype填充数据
/// </summary>
/// <param name="trayType"></param>
/// <returns></returns>
public static void Fill(ETrayType trayType)
{
Task.Run(() => {
string updateSql = $"update traystatus set status=1 where trayname='{trayType.ToString()}'";
db.ExecuteNonQuery(updateSql);
});
}
/// <summary>
/// 按traytype和slotindex填充数据
/// </summary>
/// <param name="trayType"></param>
/// <param name="slotIndex"></param>
/// <returns></returns>
public static int Fill(ETrayType trayType,int slotIndex)
{
string updateSql = $"update traystatus set status=1 where trayname='{trayType.ToString()}' and slotindex={slotIndex}";
return db.ExecuteNonQuery(updateSql);
}
/// <summary>
/// 按照traytype清空有料状态
/// </summary>
/// <param name="trayType"></param>
/// <returns></returns>
public static int Clear(ETrayType trayType)
{
string updateSql = $"update traystatus set status=0 where trayname='{trayType.ToString()}'";
return db.ExecuteNonQuery(updateSql);
}
/// <summary>
/// 按照traytype 和 slotindex 清空有料状态
/// </summary>
/// <param name="trayType"></param>
/// <param name="slotindex"></param>
/// <returns></returns>
public static int Clear(ETrayType trayType,int slotindex)
{
string updateSql = $"update traystatus set status=0 where trayname='{trayType.ToString()}' and slotindex={slotindex}";
return db.ExecuteNonQuery(updateSql);
}
public static void Init(ETrayType trayType)
{
GlobalTray.GetTray(trayType).ChangeStatus(Controls.ESlotStatus.NotHave);
string selectSql = $"select * from traystatus where trayname='{trayType.ToString()}'";
DataTable dt=db.GetDataTable(selectSql);
if(dt!=null&&dt.Rows.Count>0)
{
foreach (DataRow row in dt.Rows)
{
if (row["status"].ToString()=="1")
{
GlobalTray.GetTray(trayType).ChangeStatus(int.Parse(row["slotindex"].ToString()), Controls.ESlotStatus.Have);
}
else
{
GlobalTray.GetTray(trayType).ChangeStatus(int.Parse(row["slotindex"].ToString()), Controls.ESlotStatus.NotHave);
}
}
}
}
}
}

@ -195,7 +195,7 @@ namespace Rs.MotionPlat.Flow
} }
else else
{ {
MessageQueue.Instance.Insert($"设备在{MachineManage.Instance.MachineStatus}状态,无法启动"); MessageQueue.Instance.Warn($"device {MachineManage.Instance.MachineStatus} statuscann't start");
} }
step = EMonitorButtonStep.StartButtonUp; step = EMonitorButtonStep.StartButtonUp;
break; break;

@ -1515,21 +1515,25 @@ namespace Rs.MotionPlat.Flow
{ {
curNozzle.ToFloor = StockManager.Instance.GetStock(ETrayType.Input).GetFloor(); curNozzle.ToFloor = StockManager.Instance.GetStock(ETrayType.Input).GetFloor();
GlobalTray.InputTray.ChangeStatus(curNozzle.ToIndex+1, ESlotStatus.Have); GlobalTray.InputTray.ChangeStatus(curNozzle.ToIndex+1, ESlotStatus.Have);
TrayStatusManager.Fill(ETrayType.Input, curNozzle.ToIndex + 1);
} }
else if (curNozzle.ToType == TurnoverType.Passed) else if (curNozzle.ToType == TurnoverType.Passed)
{ {
curNozzle.ToFloor = StockManager.Instance.GetStock(ETrayType.Ok).GetFloor(); curNozzle.ToFloor = StockManager.Instance.GetStock(ETrayType.Ok).GetFloor();
GlobalTray.OkTary.ChangeStatus(curNozzle.ToIndex + 1, ESlotStatus.Have); GlobalTray.OkTary.ChangeStatus(curNozzle.ToIndex + 1, ESlotStatus.Have);
TrayStatusManager.Fill(ETrayType.Ok, curNozzle.ToIndex + 1);
} }
else if (curNozzle.ToType == TurnoverType.Failed) else if (curNozzle.ToType == TurnoverType.Failed)
{ {
curNozzle.ToFloor = StockManager.Instance.GetStock(ETrayType.Ng).GetFloor(); curNozzle.ToFloor = StockManager.Instance.GetStock(ETrayType.Ng).GetFloor();
GlobalTray.NgTray.ChangeStatus(curNozzle.ToIndex + 1, ESlotStatus.Have); GlobalTray.NgTray.ChangeStatus(curNozzle.ToIndex + 1, ESlotStatus.Have);
TrayStatusManager.Fill(ETrayType.Ng, curNozzle.ToIndex + 1);
} }
else if (curNozzle.ToType == TurnoverType.Multifunction) else if (curNozzle.ToType == TurnoverType.Multifunction)
{ {
curNozzle.ToFloor = StockManager.Instance.GetStock(ETrayType.Multi).GetFloor(); curNozzle.ToFloor = StockManager.Instance.GetStock(ETrayType.Multi).GetFloor();
GlobalTray.MultiTray.ChangeStatus(curNozzle.ToIndex + 1, ESlotStatus.Have); GlobalTray.MultiTray.ChangeStatus(curNozzle.ToIndex + 1, ESlotStatus.Have);
TrayStatusManager.Fill(ETrayType.Multi, curNozzle.ToIndex + 1);
} }
LoadAndUnloadTask.Instance.AddTurnoverResult(curNozzle); LoadAndUnloadTask.Instance.AddTurnoverResult(curNozzle);
@ -1849,6 +1853,7 @@ namespace Rs.MotionPlat.Flow
nozzle.SN = ""; nozzle.SN = "";
//nozzle.FromIndex = GlobalTray.InputTray.GetSlot(ESlotStatus.Have).Index - 1; //nozzle.FromIndex = GlobalTray.InputTray.GetSlot(ESlotStatus.Have).Index - 1;
GlobalTray.InputTray.ChangeStatus(nozzle.FromIndex+1, ESlotStatus.NotHave); GlobalTray.InputTray.ChangeStatus(nozzle.FromIndex+1, ESlotStatus.NotHave);
TrayStatusManager.Clear(ETrayType.Input, nozzle.FromIndex + 1);
} }
nozzle.Update(); nozzle.Update();
turnoverInfo.Dealed = true; turnoverInfo.Dealed = true;

@ -3,6 +3,7 @@ using Rs.Framework;
using Rs.Motion; using Rs.Motion;
using Rs.Motion.Base; using Rs.Motion.Base;
using Rs.MotionPlat.Commom; using Rs.MotionPlat.Commom;
using Rs.MotionPlat.Entitys.Trays;
using Rs.MotionPlat.Flow; using Rs.MotionPlat.Flow;
using System; using System;
using System.ComponentModel.Design; using System.ComponentModel.Design;
@ -699,10 +700,13 @@ namespace Rs.AutoDischarge.V3.Flow
if (status == EStockTrayStatus.Loaded) if (status == EStockTrayStatus.Loaded)
{ {
GlobalTray.GetTray(m_stockType).ChangeStatus(ESlotStatus.Have); GlobalTray.GetTray(m_stockType).ChangeStatus(ESlotStatus.Have);
//如果是默认加载产品数据,则把数据库的数据填充
TrayStatusManager.Fill(m_stockType);
} }
else if (status == EStockTrayStatus.Unloaded || status == EStockTrayStatus.Empty) else if (status == EStockTrayStatus.Unloaded || status == EStockTrayStatus.Empty)
{ {
GlobalTray.GetTray(m_stockType).ChangeStatus(ESlotStatus.Null); GlobalTray.GetTray(m_stockType).ChangeStatus(ESlotStatus.Null);
TrayStatusManager.Clear(m_stockType);
} }
} }
else else
@ -710,10 +714,12 @@ namespace Rs.AutoDischarge.V3.Flow
if (status == EStockTrayStatus.Loaded) if (status == EStockTrayStatus.Loaded)
{ {
GlobalTray.GetTray(m_stockType).ChangeStatus(ESlotStatus.NotHave); GlobalTray.GetTray(m_stockType).ChangeStatus(ESlotStatus.NotHave);
TrayStatusManager.Clear(m_stockType);
} }
else if (status == EStockTrayStatus.Unloaded || status == EStockTrayStatus.Empty) else if (status == EStockTrayStatus.Unloaded || status == EStockTrayStatus.Empty)
{ {
GlobalTray.GetTray(m_stockType).ChangeStatus(ESlotStatus.Null); GlobalTray.GetTray(m_stockType).ChangeStatus(ESlotStatus.Null);
TrayStatusManager.Clear(m_stockType);
} }
} }

@ -356,6 +356,10 @@ namespace Rs.MotionPlat
//TakeDumpTest.Instance.Start(); //TakeDumpTest.Instance.Start();
} }
else
{
MessageQueue.Instance.Warn($"device {MachineManage.Instance.MachineStatus} statuscann't start");
}
} }
private void btnStop_BtnClick(object sender, EventArgs e) private void btnStop_BtnClick(object sender, EventArgs e)
@ -386,7 +390,9 @@ namespace Rs.MotionPlat
} }
if (StockManager.Instance.HasTray(ETrayType.Input)) if (StockManager.Instance.HasTray(ETrayType.Input))
{ {
StockManager.Instance.GetStock(ETrayType.Input).ChangeStatus(EStockTrayStatus.Loaded); StockManager.Instance.GetStock(ETrayType.Input).ChangeStatus(EStockTrayStatus.Loaded,false);
TrayStatusManager.Init(ETrayType.Input);
//GlobalTray.InputTray.ChangeStatus()
} }
else else
{ {
@ -395,7 +401,8 @@ namespace Rs.MotionPlat
if (StockManager.Instance.HasTray(ETrayType.Ok)) if (StockManager.Instance.HasTray(ETrayType.Ok))
{ {
StockManager.Instance.GetStock(ETrayType.Ok).ChangeStatus(EStockTrayStatus.Loaded); StockManager.Instance.GetStock(ETrayType.Ok).ChangeStatus(EStockTrayStatus.Loaded, false);
TrayStatusManager.Init(ETrayType.Ok);
} }
else else
{ {
@ -404,7 +411,8 @@ namespace Rs.MotionPlat
if (StockManager.Instance.HasTray(ETrayType.Ng)) if (StockManager.Instance.HasTray(ETrayType.Ng))
{ {
StockManager.Instance.GetStock(ETrayType.Ng).ChangeStatus(EStockTrayStatus.Loaded); StockManager.Instance.GetStock(ETrayType.Ng).ChangeStatus(EStockTrayStatus.Loaded, false);
TrayStatusManager.Init(ETrayType.Ng);
} }
else else
{ {
@ -413,7 +421,8 @@ namespace Rs.MotionPlat
if (StockManager.Instance.HasTray(ETrayType.Multi)) if (StockManager.Instance.HasTray(ETrayType.Multi))
{ {
StockManager.Instance.GetStock(ETrayType.Multi).ChangeStatus(EStockTrayStatus.Loaded); StockManager.Instance.GetStock(ETrayType.Multi).ChangeStatus(EStockTrayStatus.Loaded, false);
TrayStatusManager.Init(ETrayType.Multi);
} }
else else
{ {

@ -306,11 +306,11 @@ namespace Rs.MotionPlat.Recipe
string deleteSql = $"delete from traystatus where trayname='{m_trayName}'"; string deleteSql = $"delete from traystatus where trayname='{m_trayName}'";
db.ExecuteNonQuery(deleteSql); db.ExecuteNonQuery(deleteSql);
string insertSql = "insert into traystatus(trayname,slotindex,status) values('{0}',{1},{2})"; string insertSql = "insert into traystatus(trayname,slotindex,status) values('{0}',{1},{2})";
for (int i = 1; i <= rsTray1.RowNum; i++) for (int row = 1; row <= rsTray1.RowNum; row++)
{ {
for (int j = 1; j <= rsTray1.ColumnNum; j++) for (int col = 1; col <= rsTray1.ColumnNum; col++)
{ {
int index = j + (i - 1) * rsTray1.ColumnNum; int index = col + (row - 1) * rsTray1.ColumnNum;
string executeSql = string.Format(insertSql, m_trayName, index, 0); string executeSql = string.Format(insertSql, m_trayName, index, 0);
db.ExecuteNonQuery(executeSql); db.ExecuteNonQuery(executeSql);
} }

@ -193,6 +193,7 @@
</Compile> </Compile>
<Compile Include="Entitys\Trays\BaseTraySlot.cs" /> <Compile Include="Entitys\Trays\BaseTraySlot.cs" />
<Compile Include="Entitys\Trays\TestTrayManager.cs" /> <Compile Include="Entitys\Trays\TestTrayManager.cs" />
<Compile Include="Entitys\Trays\TrayStatusManager.cs" />
<Compile Include="Entitys\Trays\TurnoverTrayManager.cs" /> <Compile Include="Entitys\Trays\TurnoverTrayManager.cs" />
<Compile Include="FlowStatusForm.cs"> <Compile Include="FlowStatusForm.cs">
<SubType>Form</SubType> <SubType>Form</SubType>

Loading…
Cancel
Save