|
@@ -88,6 +88,7 @@ namespace WCS_Client.Frm
|
|
|
ddjsatatus.DdjTotal_KM = (Label)FindControl("ddjTotal_KM" + index);
|
|
|
ddjsatatus.DdjPosFrom = (Label)FindControl("ddjPosFrom" + index);
|
|
|
ddjsatatus.DdjPosTo = (Label)FindControl("ddjPosTo" + index);
|
|
|
+ ddjsatatus.DdjWarning = (Label)FindControl("lblDDJWarning" + index);
|
|
|
DDJSatatusSet.Add(ddjsatatus);
|
|
|
}
|
|
|
}
|
|
@@ -174,6 +175,7 @@ namespace WCS_Client.Frm
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
@@ -191,11 +193,6 @@ namespace WCS_Client.Frm
|
|
|
var convdata = pack.StationDatas;//输送线数据
|
|
|
var rgvdata = pack.RGVDatas;//穿梭车数据
|
|
|
var scdata = pack.SCDatas;//堆垛机数据
|
|
|
- // var robotdata = pack.RobotData;//机器人数据
|
|
|
- //var pldata = pack.ProdLineData;//产线数据
|
|
|
-
|
|
|
- //string startTime = DateTime.Now.ToString();
|
|
|
-
|
|
|
//SRM
|
|
|
foreach (var item in scdata.Datas)
|
|
|
{
|
|
@@ -204,57 +201,91 @@ namespace WCS_Client.Frm
|
|
|
//{
|
|
|
// var oldItem = eqpData.oldDeviceDataPack.SCDatas.Datas.FirstOrDefault(p => p.Code == item.Code);
|
|
|
// if (oldItem.ToString() == item.ToString()) return;
|
|
|
- //}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ //}
|
|
|
var ddjstatus = DDJSatatusSet.FirstOrDefault(v => v.SrmName == item.Code);
|
|
|
- if (item.Code != null)
|
|
|
- {
|
|
|
- ddjstatus.DdjPosCurr.Text = item.Code.ToString().Substring(3);
|
|
|
- }
|
|
|
-
|
|
|
if (ddjstatus != null)
|
|
|
{
|
|
|
- //模式
|
|
|
- ddjstatus.DdjMode.Text = item.D521.SRMMode.ToString();
|
|
|
+ //报警信息
|
|
|
+ if (item.D537.SCAlarm.ToString() == "无")
|
|
|
+ ddjstatus.DdjWarning.Text = "";
|
|
|
+ else {
|
|
|
+ ddjstatus.DdjWarning.Text += item.D537.SCAlarm.ToString();//item.Info.Contains("接口调用") ? "" : item.Info;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (item.Code != null)
|
|
|
+ {
|
|
|
+ ddjstatus.DdjPosCurr.Text = item.Code.ToString().Substring(3);
|
|
|
+ }
|
|
|
+ if (ddjstatus.DdjWarning.Text != "")
|
|
|
+ {
|
|
|
+ ddjstatus.G.Image = Properties.Resources.红;
|
|
|
+ }
|
|
|
+ else //(ddjstatus != null)
|
|
|
+ {
|
|
|
+ //模式
|
|
|
+ ddjstatus.DdjMode.Text = item.D521.SRMMode.ToString();
|
|
|
|
|
|
- //if(item.D537.SCAlarm.ToString()=="无")
|
|
|
+ if (!string.IsNullOrEmpty(ddjstatus.DdjMode.Text))
|
|
|
+ {
|
|
|
+ if (item.D521.SRMMode.ToString() == "远程")
|
|
|
+ {
|
|
|
+ ddjstatus.G.Image = Properties.Resources.绿;
|
|
|
+ }
|
|
|
+ else if (item.D521.SRMMode.ToString() == "半自动" || item.D521.SRMMode.ToString() == "手动")
|
|
|
+ {
|
|
|
+ ddjstatus.G.Image = Properties.Resources.黄;
|
|
|
+ }
|
|
|
+ else if (item.D521.SRMMode.ToString() == "维修")
|
|
|
+ {
|
|
|
+ ddjstatus.G.Image = Properties.Resources.红;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ddjstatus.DdjMode.Text = "无";
|
|
|
+ ddjstatus.G.Image = Properties.Resources.黄;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ ////状态
|
|
|
+ ddjstatus.DdjStatus.Text = item.D521.SRMStatus.ToString();
|
|
|
|
|
|
- if (item.D521.SRMMode.ToString() == "远程")
|
|
|
+ int taskid = 100;
|
|
|
+ if (item.D521.TaskID_1 > 10000 && item.D521.TaskID_2 > 10000)
|
|
|
{
|
|
|
- ddjstatus.G.Image = Properties.Resources.绿;
|
|
|
+ taskid = item.D521.TaskID_1;
|
|
|
}
|
|
|
- else if (item.D521.SRMMode.ToString() == "半自动")
|
|
|
+ else if (item.D521.TaskID_1 > 10000)
|
|
|
{
|
|
|
- ddjstatus.G.Image = Properties.Resources.黄;
|
|
|
+ taskid = item.D521.TaskID_1;
|
|
|
}
|
|
|
- else if (item.D521.SRMMode.ToString() == "手动")
|
|
|
+ else if (item.D521.TaskID_2 > 10000)
|
|
|
{
|
|
|
- ddjstatus.G.Image = Properties.Resources.黄;
|
|
|
+ taskid = item.D521.TaskID_2;
|
|
|
}
|
|
|
- else if (item.D521.SRMMode.ToString() == "维修")
|
|
|
+ else
|
|
|
{
|
|
|
- ddjstatus.G.Image = Properties.Resources.红;
|
|
|
+ taskid = item.D521.TaskID_1;
|
|
|
}
|
|
|
|
|
|
- ////状态
|
|
|
- ddjstatus.DdjStatus.Text = item.D521.SRMStatus.ToString();
|
|
|
-
|
|
|
- var task = SugarBase.DB.Queryable<WCS_TASK>().First(v => v.ID == item.D521.TaskID_1);
|
|
|
+ //任务号
|
|
|
+ ddjstatus.DdjOrdId.Text = taskid.ToString();
|
|
|
+ var task = SugarBase.DB.Queryable<WCS_TASK>().First(v => v.ID == taskid);
|
|
|
if (task != null)
|
|
|
{
|
|
|
- //任务号
|
|
|
- ddjstatus.DdjOrdId.Text = item.D521.TaskID_1.ToString();
|
|
|
//任务类型
|
|
|
- ddjstatus.DdjOptType.Text = task.TYPE.ToString();
|
|
|
+ ddjstatus.DdjOptType.Text = task.TYPE.ToString();
|
|
|
if (task.TYPE == TaskType.入库)
|
|
|
{
|
|
|
+
|
|
|
ddjstatus.LblInStatus.BackColor = Color.Lime;
|
|
|
ddjstatus.LblOutStatus.BackColor = Color.DarkGray;
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
else if (task.TYPE == TaskType.出库)
|
|
|
{
|
|
|
+
|
|
|
ddjstatus.LblInStatus.BackColor = Color.DarkGray;
|
|
|
ddjstatus.LblOutStatus.BackColor = Color.Lime;
|
|
|
}
|
|
@@ -266,13 +297,10 @@ namespace WCS_Client.Frm
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- ddjstatus.DdjOrdId.Text = "0";
|
|
|
- ddjstatus.DdjOptType.Text = "无";
|
|
|
-
|
|
|
ddjstatus.LblInStatus.BackColor = Color.DarkGray;
|
|
|
- ddjstatus.LblOutStatus.BackColor = Color.DarkGray;
|
|
|
+ ddjstatus.LblOutStatus.BackColor = Color.DarkGray;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
////运行时长
|
|
|
ddjstatus.DdjWorkTime.Text = item.D521.Runtime.ToString() + "h";
|
|
|
////里程数
|
|
@@ -282,7 +310,8 @@ namespace WCS_Client.Frm
|
|
|
//目标位置
|
|
|
ddjstatus.DdjPosTo.Text = item.D521.SLine_1.ToString() + "-" + item.D521.SCol_1.ToString() + "-" + item.D521.SLayer_1.ToString();
|
|
|
}
|
|
|
- }
|
|
|
+
|
|
|
+ }
|
|
|
//RGV
|
|
|
foreach (var item in rgvdata.Datas)
|
|
|
{
|
|
@@ -351,7 +380,7 @@ namespace WCS_Client.Frm
|
|
|
//当前位置
|
|
|
//rgvstatus.RGVPosCurr.Text = item.D521.Position.ToString();
|
|
|
//起始位置
|
|
|
- rgvstatus.RGVPosFrom.Text = "0"; //item.D521.StartPosition_1.ToString();
|
|
|
+ rgvstatus.RGVPosFrom.Text = item.D521.Position.ToString(); //item.D521.StartPosition_1.ToString();
|
|
|
//目标位置
|
|
|
rgvstatus.RGVPosTo.Text = item.D521.DestPosition_1.ToString();
|
|
|
|
|
@@ -383,54 +412,7 @@ namespace WCS_Client.Frm
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- //if (control != null)
|
|
|
- //{
|
|
|
- // if (control is Conveyor6)
|
|
|
- // {
|
|
|
- // var con = (Conveyor6)control;
|
|
|
- // con.button1.Text = item.Code;
|
|
|
- // if (item.D521.PH_Status == true)
|
|
|
- // {
|
|
|
- // if (con.button1.Tag.ToString() != "pall")
|
|
|
- // {
|
|
|
- // con.button1.BackgroundImage = Image.FromFile("Resources/Rgv02.png");
|
|
|
- // con.button1.Tag = "pall";
|
|
|
- // }
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // if (con.button1.Tag.ToString() != "empty")
|
|
|
- // {
|
|
|
- // con.button1.BackgroundImage = Image.FromFile("Resources/shelf16UD.png");
|
|
|
- // con.button1.Tag = "empty";
|
|
|
- // }
|
|
|
- // }
|
|
|
- // }
|
|
|
- // else if (control is Conveyor5)
|
|
|
- // {
|
|
|
- // var con = (Conveyor5)control;
|
|
|
- // con.button1.Text = item.Code;
|
|
|
- // if (item.D521.PH_Status == true)
|
|
|
- // {
|
|
|
- // if (con.button1.Tag.ToString() != "pall")
|
|
|
- // {
|
|
|
- // con.button1.BackgroundImage = Image.FromFile("Resources/rgv03.png");
|
|
|
- // con.button1.Tag = "pall";
|
|
|
- // }
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // if (con.button1.Tag.ToString() != "empty")
|
|
|
- // {
|
|
|
- // con.button1.BackgroundImage = Image.FromFile("Resources/shelf16UD1.png");
|
|
|
- // con.button1.Tag = "empty";
|
|
|
- // }
|
|
|
- // }
|
|
|
- // }
|
|
|
- //}
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
//输送线
|
|
@@ -449,7 +431,15 @@ namespace WCS_Client.Frm
|
|
|
else if (item.D523.Status == 0) con.BackColor = Color.Yellow;
|
|
|
else con.BackColor = Color.FromArgb(0, 144, 154);
|
|
|
con.button1.Text = item.Code.ToString();
|
|
|
- if (item.D521.Status.HasFlag(WCS.Entity.Protocol.IstationStatus.光电状态)&&item.D521.Tasknum.ToString().Length>10000)
|
|
|
+ if (item.D521.Status.HasFlag(WCS.Entity.Protocol.IstationStatus.光电状态))
|
|
|
+ {
|
|
|
+ if (con.button1.Tag.ToString() != "pall")
|
|
|
+ {
|
|
|
+ con.button1.BackgroundImage = Image.FromFile("Resources/Conveyor.png");
|
|
|
+ con.button1.Tag = "pall";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (item.D521.Tasknum.ToString().Length > 10000)
|
|
|
{
|
|
|
if (con.button1.Tag.ToString() != "pall")
|
|
|
{
|
|
@@ -714,7 +704,10 @@ namespace WCS_Client.Frm
|
|
|
{
|
|
|
|
|
|
}
|
|
|
+
|
|
|
#endregion
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
public class DDJSatatus
|
|
@@ -744,6 +737,9 @@ namespace WCS_Client.Frm
|
|
|
/// </summary>
|
|
|
public Label DdjMode { get; set; }
|
|
|
|
|
|
+ public Label DdjWarning { get; set; }
|
|
|
+
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 堆垛机工作状态
|
|
|
/// </summary>
|
|
@@ -837,4 +833,50 @@ namespace WCS_Client.Frm
|
|
|
{
|
|
|
public new DateTime UPDATETIME { get; set; }
|
|
|
}
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 提示 ToolTip
|
|
|
+ /// </summary>
|
|
|
+ public class MoveOverInfoTip
|
|
|
+ {
|
|
|
+
|
|
|
+ #region 基础参数
|
|
|
+ //信息提示组件
|
|
|
+ private static ToolTip _toolTip = new ToolTip();
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ #region 公有方法
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 设置单个控件提示信息
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="T">组件类型</typeparam>
|
|
|
+ /// <param name="t">组件</param>
|
|
|
+ /// <param name="tipInfo">需要显示的提示信息</param>
|
|
|
+ public static void SettingSingleTipInfo<T>(T t, string tipInfo) where T : Control
|
|
|
+ {
|
|
|
+ _toolTip.SetToolTip(t, tipInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 设置多个同种类型的提示信息
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="T">组件类型</typeparam>
|
|
|
+ /// <param name="dic">组件和提示信息字典</param>
|
|
|
+ public static void SettingMutiTipInfo<T>(Dictionary<T, string> dic) where T : Control
|
|
|
+ {
|
|
|
+ if (dic == null || dic.Count <= 0) return;
|
|
|
+
|
|
|
+ foreach (var item in dic)
|
|
|
+ {
|
|
|
+ _toolTip.SetToolTip(item.Key, item.Value);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion
|
|
|
+ }
|
|
|
}
|