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 void Init()
public static bool Init()
{
checkHeightDev = new LaserEquipment();
checkHeightDev.Open();
return checkHeightDev.Open();
}
}
}

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

@ -119,7 +119,7 @@ namespace Rs.MotionPlat.Commom
}
else
{
MessageQueue.Instance.Insert("Init fail");
MessageQueue.Instance.Warn("Init fail");
}
Ops.On("上下气缸电磁阀原位");
Ops.Off("上下气缸电磁阀动位");
@ -137,7 +137,10 @@ namespace Rs.MotionPlat.Commom
TurnoverSlotOffset.Init();
MonitorSystemButton.Instance.Start();
TestCenter.Instance.Init();
DeviceFactory.Init();
if(!DeviceFactory.Init())
{
Msg.ShowError("laser connect fail!");
}
QifuManager.Instance.Init();
QifuManager.Instance.Write(SysConfigParam.GetValue<float>("QifuValue"));
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
{
MessageQueue.Instance.Insert($"设备在{MachineManage.Instance.MachineStatus}状态,无法启动");
MessageQueue.Instance.Warn($"device {MachineManage.Instance.MachineStatus} statuscann't start");
}
step = EMonitorButtonStep.StartButtonUp;
break;

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

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

@ -356,6 +356,10 @@ namespace Rs.MotionPlat
//TakeDumpTest.Instance.Start();
}
else
{
MessageQueue.Instance.Warn($"device {MachineManage.Instance.MachineStatus} statuscann't start");
}
}
private void btnStop_BtnClick(object sender, EventArgs e)
@ -386,7 +390,9 @@ namespace Rs.MotionPlat
}
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
{
@ -395,7 +401,8 @@ namespace Rs.MotionPlat
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
{
@ -404,7 +411,8 @@ namespace Rs.MotionPlat
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
{
@ -413,7 +421,8 @@ namespace Rs.MotionPlat
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
{

@ -306,11 +306,11 @@ namespace Rs.MotionPlat.Recipe
string deleteSql = $"delete from traystatus where trayname='{m_trayName}'";
db.ExecuteNonQuery(deleteSql);
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);
db.ExecuteNonQuery(executeSql);
}

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

Loading…
Cancel
Save