Commit be356711 张东亮

料架清除缓存,产线信息上报

1 个父辈 f7197e65
...@@ -43,7 +43,7 @@ namespace AGVControl ...@@ -43,7 +43,7 @@ namespace AGVControl
} }
else else
{ {
if(workOrder.data.line !=null) if (workOrder.data.line != null)
{ {
string tempLocation = workOrder.data.line; string tempLocation = workOrder.data.line;
if (workOrder.data.line.Equals("Feeder")) if (workOrder.data.line.Equals("Feeder"))
...@@ -91,7 +91,7 @@ namespace AGVControl ...@@ -91,7 +91,7 @@ namespace AGVControl
public string ToTxt(string nodeName) public string ToTxt(string nodeName)
{ {
return string.Format("[hSerial={0},line={1}[{3}],so={2}]", hSerial,line,so,nodeName); return string.Format("[hSerial={0},line={1}[{3}],so={2}]", hSerial, line, so, nodeName);
} }
} }
public static string A6_Target = ""; public static string A6_Target = "";
...@@ -168,7 +168,7 @@ namespace AGVControl ...@@ -168,7 +168,7 @@ namespace AGVControl
#endregion #endregion
res[0].location = loc; res[0].location = loc;
dest = res[0]; dest = res[0];
Common.GetLineNameByNodeName(loc,out string line); Common.GetLineNameByNodeName(loc, out string line);
A6_Target = res[0].ShowInfo(line); A6_Target = res[0].ShowInfo(line);
Common.log.Debug("查找满料架任务[RFID=" + rfid + "]:目的地为 " + loc + " [产线名 " + line + "]"); Common.log.Debug("查找满料架任务[RFID=" + rfid + "]:目的地为 " + loc + " [产线名 " + line + "]");
return true; return true;
...@@ -204,7 +204,7 @@ namespace AGVControl ...@@ -204,7 +204,7 @@ namespace AGVControl
public string ShowInfo(string loc) public string ShowInfo(string loc)
{ {
return string.Format("RFID={0},SO={1},location={2}[{3}]", id, SO, loc,location); return string.Format("RFID={0},SO={1},location={2}[{3}]", id, SO, loc, location);
} }
} }
...@@ -438,9 +438,9 @@ namespace AGVControl ...@@ -438,9 +438,9 @@ namespace AGVControl
if (lineName.StartsWith(SettingString.D4_Name_Prefix)) if (lineName.StartsWith(SettingString.D4_Name_Prefix))
{ {
addr = string.Format("http://{0}/LineGetRFID?line={1}",ConfigAppSettings.GetValue(SettingString.IP_4D_Light),lineName); addr = string.Format("http://{0}/LineGetRFID?line={1}", ConfigAppSettings.GetValue(SettingString.IP_4D_Light), lineName);
} }
else if(lineName.StartsWith(SettingString.C4_Name_Prefix)) else if (lineName.StartsWith(SettingString.C4_Name_Prefix))
{ {
addr = string.Format("http://{0}/LineGetRFID?line={1}", ConfigAppSettings.GetValue(SettingString.IP_4C_Light), lineName); addr = string.Format("http://{0}/LineGetRFID?line={1}", ConfigAppSettings.GetValue(SettingString.IP_4C_Light), lineName);
} }
...@@ -454,7 +454,7 @@ namespace AGVControl ...@@ -454,7 +454,7 @@ namespace AGVControl
return ",,,"; return ",,,";
else else
{ {
Common.log.Debug(string.Format("{0}接驳台状态:{1}",lineName,msgs.Msg)); Common.log.Debug(string.Format("{0}接驳台状态:{1}", lineName, msgs.Msg));
return msgs.Msg; return msgs.Msg;
} }
...@@ -499,7 +499,7 @@ namespace AGVControl ...@@ -499,7 +499,7 @@ namespace AGVControl
string rfid = ""; string rfid = "";
foreach (string item in msgs.Msg.Split(',')) foreach (string item in msgs.Msg.Split(','))
{ {
if(!item.Equals("")) if (!item.Equals(""))
{ {
rfid = item; rfid = item;
} }
...@@ -522,17 +522,17 @@ namespace AGVControl ...@@ -522,17 +522,17 @@ namespace AGVControl
/// <param name="lineName"></param> /// <param name="lineName"></param>
/// <param name="rfid"></param> /// <param name="rfid"></param>
/// <returns></returns> /// <returns></returns>
public static bool ClearRFID(string lineName,string rfid) public static bool ClearRFID(string lineName, string rfid)
{ {
string addr = ""; string addr = "";
if (lineName.StartsWith(SettingString.D4_Name_Prefix)) if (lineName.StartsWith(SettingString.D4_Name_Prefix))
{ {
addr = string.Format("http://{0}/LineClearRFID?line={1}&rfid={2}", ConfigAppSettings.GetValue(SettingString.IP_4D_Light), lineName,rfid); addr = string.Format("http://{0}/LineClearRFID?line={1}&rfid={2}", ConfigAppSettings.GetValue(SettingString.IP_4D_Light), lineName, rfid);
} }
else if (lineName.StartsWith(SettingString.C4_Name_Prefix)) else if (lineName.StartsWith(SettingString.C4_Name_Prefix))
{ {
addr = string.Format("http://{0}/LineClearRFID?line={1}&rfid={2}", ConfigAppSettings.GetValue(SettingString.IP_4C_Light), lineName,rfid); addr = string.Format("http://{0}/LineClearRFID?line={1}&rfid={2}", ConfigAppSettings.GetValue(SettingString.IP_4C_Light), lineName, rfid);
} }
try try
{ {
...@@ -544,7 +544,7 @@ namespace AGVControl ...@@ -544,7 +544,7 @@ namespace AGVControl
return false; return false;
else else
{ {
Common.log.Info(string.Format("删除{0}接驳台料架{1}:{2}", lineName,rfid, msgs.Msg)); Common.log.Info(string.Format("删除{0}接驳台料架{1}:{2}", lineName, rfid, msgs.Msg));
return true; return true;
} }
...@@ -557,6 +557,47 @@ namespace AGVControl ...@@ -557,6 +557,47 @@ namespace AGVControl
} }
return false; return false;
} }
private static string Addr_agvRemoveRfid = "/rest/api/qisda/device/agvRemoveRfid";
/// <summary>
/// 根据RFID清理料架的缓存信息
/// </summary>
/// <param name="rfid"></param>
/// <returns></returns>
public static bool AgvRemoveRfid(string rfid)
{
try
{
Dictionary<string, string> paramMap = new Dictionary<string, string>();
paramMap.Add("rfid", rfid.ToUpper());
string server = GetAddr(Addr_agvRemoveRfid, paramMap);
DateTime startTime = DateTime.Now;
string resultStr = HttpHelper.Get(server);
Common.log.Debug("清理料架的缓存信息【" + server + "】【" + resultStr + "】");
RfidData rfidData = JsonHelper.DeserializeJsonToObject<RfidData>(resultStr);
if (rfidData == null)
{
return false;
}
else
{
if (rfidData.code.Equals(0))
{
return true;
}
}
}
catch (Exception ex)
{
Common.log.Error(ex);
return false;
}
return false;
}
} }
public class ShelfLockInfo public class ShelfLockInfo
{ {
...@@ -651,7 +692,7 @@ namespace AGVControl ...@@ -651,7 +692,7 @@ namespace AGVControl
/// <param name="name">异常位置名称</param> /// <param name="name">异常位置名称</param>
/// <param name="key">异常信息唯一标识</param> /// <param name="key">异常信息唯一标识</param>
/// <param name="value">异常信息</param> /// <param name="value">异常信息</param>
public AlarmMsg(string name, string key, string value,int type=0) public AlarmMsg(string name, string key, string value, int type = 0)
{ {
this.name = name; this.name = name;
this.msgKey = key; this.msgKey = key;
......
...@@ -498,50 +498,31 @@ namespace AGVControl ...@@ -498,50 +498,31 @@ namespace AGVControl
} }
else if (shelfType.Equals(eShelfType.BigShelf)) else if (shelfType.Equals(eShelfType.BigShelf))
{ {
//int tarIdx = Common.nodeInfo.FindIndex(s => s.Name == SettingString.A5 int tarIdx = Common.nodeInfo.FindIndex(s => s.Name == SettingString.A5
// && (s.StateEquals(eNodeStatus.NeedC) || s.StateEquals(eNodeStatus.NeedEnter)) && s.IsUse); && (s.StateEquals(eNodeStatus.NeedC) || s.StateEquals(eNodeStatus.NeedEnter)) && s.IsUse);
//if (tarIdx == -1) if (tarIdx == -1)
//{ {
// Common.log.Debug(string.Format("{0} {1}不需要大料架", agv.Name, SettingString.A5)); Common.log.Debug(string.Format("{0} {1}不需要大料架", agv.Name, SettingString.A5));
//} }
//else else
//{ {
// nodeName = SettingString.A5; nodeName = SettingString.A5;
// Common.log.Debug(string.Format("{0} {1}需要大料架", agv.Name, SettingString.A5)); Common.log.Debug(string.Format("{0} {1}需要大料架", agv.Name, SettingString.A5));
// return true; return true;
//} }
int tarIdx = Common.nodeInfo.FindIndex(s => s.Name == SettingString.A6 && tarIdx = Common.nodeInfo.FindIndex(s => s.Name == SettingString.A6 &&
(s.StateEquals(eNodeStatus.NeedEnter) || s.StateEquals(eNodeStatus.NeedEnterLeave)) && s.IsUse); (s.StateEquals(eNodeStatus.NeedEnter) || s.StateEquals(eNodeStatus.NeedEnterLeave)) && s.IsUse);
if (tarIdx == -1) if (tarIdx == -1)
{ {
Common.log.Debug(string.Format("{0} {1}不需要大料架", agv.Name, SettingString.A6)); Common.log.Debug(string.Format("{0} {1}不需要料架", agv.Name, SettingString.A6));
//rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission[SettingString.MoveStandby]);
//if (rtn)
//{
// agv.NextPlace = "";
// agv.TaskSend = rtn ? SettingString.MoveStandby : "";
// agv.Msg = string.Format("{0} 在{1}已装载大料架,送往{2}", agv.Name, place, SettingString.MoveStandby);
// Common.LogInfo(string.Format("{0} 在{1}已装载大料架,送往{2}", agv.Name, place, SettingString.MoveStandby));
//}
} }
else else
{ {
nodeName = SettingString.A6; nodeName = SettingString.A6;
Common.log.Debug(string.Format("{0} {1}需要料架", agv.Name, SettingString.A6)); Common.log.Debug(string.Format("{0} {1}需要料架", agv.Name, SettingString.A6));
return true; return true;
//rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission[SettingString.Move + SettingString.A6]);
//if (rtn)
//{
// agv.NextPlace = "";
// tarNodeName = SettingString.A6;
// Common.nodeInfo[tarIdx].AgvName = agv.Name;
// agv.TaskSend = rtn ? SettingString.Move + SettingString.A6 : "";
// agv.Msg = string.Format("{0} 在{1}已装载大料架,送往{2}", agv.Name, place, SettingString.A6);
// Common.LogInfo(string.Format("{0} 在{1}已装载大料架,送往{2}", agv.Name, place, SettingString.A6));
// return true;
//}
} }
} }
...@@ -549,6 +530,7 @@ namespace AGVControl ...@@ -549,6 +530,7 @@ namespace AGVControl
return false; return false;
} }
/// <summary> /// <summary>
/// 检查AGV是否有负载 /// 检查AGV是否有负载
/// </summary> /// </summary>
...@@ -750,7 +732,7 @@ namespace AGVControl ...@@ -750,7 +732,7 @@ namespace AGVControl
} }
} }
else if (CheckA6State(agv, eShelfType.SmallShelf, out string lineNodeName1)) else if (CheckA6State(agv, eShelfType.BigShelf, out string lineNodeName1))
{ {
//4C车间备料区寻找 //4C车间备料区寻找
if (SettingString.C4_AGV_IPs.Contains(agv.IP)) if (SettingString.C4_AGV_IPs.Contains(agv.IP))
...@@ -875,13 +857,13 @@ namespace AGVControl ...@@ -875,13 +857,13 @@ namespace AGVControl
if (clientNode.Name.Equals(SettingString.C4FeederOut) || clientNode.Name.Equals(SettingString.D4FeederOut)) if (clientNode.Name.Equals(SettingString.C4FeederOut) || clientNode.Name.Equals(SettingString.D4FeederOut))
{ {
warnMsg = string.Format("[{1}]最外侧是料架[{0}],但没有解绑信息,请检查接驳台", clientNode.RFID, clientNode.Name); warnMsg = string.Format("[{1}]最外侧是料架[{0}],但没有解绑信息,请检查接驳台", clientNode.RFID, clientNode.Name);
Common.LogInfo(warnMsg); Common.log.Debug(warnMsg);
} }
else else
{ {
string res = AGVManager.GetRFIDs(clientNode.Name); string res = AGVManager.GetRFIDs(clientNode.Name);
warnMsg = string.Format("[{1}]最外侧是料架[{0}],但没有解绑信息,请检查接驳台:料架由里到外顺序:{2}", clientNode.RFID, clientNode.Name,res); warnMsg = string.Format("[{1}]最外侧是料架[{0}],但没有解绑信息,请检查接驳台:料架由里到外顺序:{2}", clientNode.RFID, clientNode.Name,res);
Common.LogInfo(warnMsg); Common.log.Debug(warnMsg);
} }
return false; return false;
} }
...@@ -889,6 +871,32 @@ namespace AGVControl ...@@ -889,6 +871,32 @@ namespace AGVControl
warnMsg = ""; warnMsg = "";
return true; return true;
} }
/// <summary>
/// 上报接驳台状态
/// </summary>
/// <param name="clientNode"></param>
/// <returns>true:表示正常</returns>
public static bool UpdateStationState(ClientNode clientNode)
{
if (!Common.missionManager.GetUnlockRfids(clientNode.Name).Contains(clientNode.RFID))
{
if (clientNode.Name.Equals(SettingString.C4FeederOut) || clientNode.Name.Equals(SettingString.D4FeederOut))
{
clientNode.WarnMsg = string.Format("接驳台最外侧料架[{0}]没有解绑信息,请检查接驳台状况", clientNode.RFID);
return false;
}
else
{
string res = AGVManager.GetRFIDs(clientNode.Name);
clientNode.WarnMsg = string.Format("接驳台最外侧料架[{0}]没有解绑信息,当前料架由里到外顺序:{1}", clientNode.RFID, res);
return false;
}
}
clientNode.WarnMsg = "";
return true;
}
/// <summary> /// <summary>
/// 出料前检查接驳台状态 /// 出料前检查接驳台状态
/// </summary> /// </summary>
......
...@@ -83,7 +83,13 @@ namespace AGVControl.BLL ...@@ -83,7 +83,13 @@ namespace AGVControl.BLL
String tmp = ""; String tmp = "";
for (int j = 0; j < Common.nodeInfo.Count; j++) for (int j = 0; j < Common.nodeInfo.Count; j++)
{ {
if (!Common.nodeInfo[j].Online) bool isAlarm = false;
if (!Common.UpdateStationState(Common.nodeInfo[j]))
{
isAlarm = true;
msglist.Add(new AlarmMsg(Common.nodeInfo[j].AliceName, "lineAgv." + Common.nodeInfo[j].Name + ".WarnMsg", Common.nodeInfo[j].WarnMsg));
}
if (!isAlarm && !Common.nodeInfo[j].Online)
{ {
msglist.Add(new AlarmMsg(Common.nodeInfo[j].AliceName, "lineAgv." + Common.nodeInfo[j].Name + ".OffLine", "离线")); msglist.Add(new AlarmMsg(Common.nodeInfo[j].AliceName, "lineAgv." + Common.nodeInfo[j].Name + ".OffLine", "离线"));
} }
...@@ -155,22 +161,18 @@ namespace AGVControl.BLL ...@@ -155,22 +161,18 @@ namespace AGVControl.BLL
} }
Thread.Sleep(50); Thread.Sleep(50);
//rtn = Common.mir.Get_IO_Status(Common.agvInfo[i], out bool[] input, out bool[] output); if (stateText.Equals("Error") || stateText.Equals("EmergencyStop") || stateText.Equals("Pause"))
//Common.log.Debug("获取IO状态");
//preAGVState = Common.agvInfo[i].StateID;
if (Common.agvInfo[i].StandTimeOut)
{ {
isAlarm = true; isAlarm = true;
msglist.Add(new AlarmMsg(Common.agvInfo[i].Name, "lineAgv." + Common.agvInfo[i].Name + ".StandTimeOut", "在" + Common.agvInfo[i].PlaceAliceName + "停留超时" + (DateTime.Now - Common.agvInfo[i].StandStartTime).TotalMinutes.ToString("f2") + "分钟")); msglist.Add(new AlarmMsg(Common.agvInfo[i].Name, "lineAgv." + Common.agvInfo[i].Name + ".Error.EmergencyStop", "agv状态:" + stateText + ""));
} }
if (stateText.Equals("Error") || stateText.Equals("EmergencyStop") || stateText.Equals("Pause")) if (!isAlarm && Common.agvInfo[i].StandTimeOut)
{ {
isAlarm = true; isAlarm = true;
msglist.Add(new AlarmMsg(Common.agvInfo[i].Name, "lineAgv." + Common.agvInfo[i].Name + ".Error.EmergencyStop", "agv状态:" + stateText + "")); msglist.Add(new AlarmMsg(Common.agvInfo[i].Name, "lineAgv." + Common.agvInfo[i].Name + ".StandTimeOut", "在" + Common.agvInfo[i].PlaceAliceName + "停留超时" + (DateTime.Now - Common.agvInfo[i].StandStartTime).TotalMinutes.ToString("f2") + "分钟"));
} }
if (!isAlarm) if (!isAlarm)
{ {
try try
......
...@@ -107,6 +107,8 @@ ...@@ -107,6 +107,8 @@
this.label2 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label();
this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker(); this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
this.agvRemoveRfid = new System.Windows.Forms.Button();
this.label12 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.DgvAgv)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.DgvAgv)).BeginInit();
this.tableLayoutPanel3.SuspendLayout(); this.tableLayoutPanel3.SuspendLayout();
this.tabControl1.SuspendLayout(); this.tabControl1.SuspendLayout();
...@@ -682,6 +684,7 @@ ...@@ -682,6 +684,7 @@
// //
// tabPage3 // tabPage3
// //
this.tabPage3.Controls.Add(this.label12);
this.tabPage3.Controls.Add(this.groupBox4); this.tabPage3.Controls.Add(this.groupBox4);
this.tabPage3.Controls.Add(this.groupBox6); this.tabPage3.Controls.Add(this.groupBox6);
this.tabPage3.Controls.Add(this.groupBox2); this.tabPage3.Controls.Add(this.groupBox2);
...@@ -697,6 +700,8 @@ ...@@ -697,6 +700,8 @@
// //
// groupBox4 // groupBox4
// //
this.groupBox4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.groupBox4.Controls.Add(this.agvRemoveRfid);
this.groupBox4.Controls.Add(this.btnClearStationRFID); this.groupBox4.Controls.Add(this.btnClearStationRFID);
this.groupBox4.Controls.Add(this.label11); this.groupBox4.Controls.Add(this.label11);
this.groupBox4.Controls.Add(this.txtBoxLineName); this.groupBox4.Controls.Add(this.txtBoxLineName);
...@@ -707,14 +712,14 @@ ...@@ -707,14 +712,14 @@
this.groupBox4.Controls.Add(this.txtBoxRFID); this.groupBox4.Controls.Add(this.txtBoxRFID);
this.groupBox4.Location = new System.Drawing.Point(800, 24); this.groupBox4.Location = new System.Drawing.Point(800, 24);
this.groupBox4.Name = "groupBox4"; this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(291, 185); this.groupBox4.Size = new System.Drawing.Size(291, 262);
this.groupBox4.TabIndex = 38; this.groupBox4.TabIndex = 38;
this.groupBox4.TabStop = false; this.groupBox4.TabStop = false;
this.groupBox4.Text = "操作"; this.groupBox4.Text = "操作";
// //
// btnClearStationRFID // btnClearStationRFID
// //
this.btnClearStationRFID.Location = new System.Drawing.Point(151, 91); this.btnClearStationRFID.Location = new System.Drawing.Point(8, 142);
this.btnClearStationRFID.Margin = new System.Windows.Forms.Padding(2); this.btnClearStationRFID.Margin = new System.Windows.Forms.Padding(2);
this.btnClearStationRFID.Name = "btnClearStationRFID"; this.btnClearStationRFID.Name = "btnClearStationRFID";
this.btnClearStationRFID.Size = new System.Drawing.Size(125, 35); this.btnClearStationRFID.Size = new System.Drawing.Size(125, 35);
...@@ -726,22 +731,23 @@ ...@@ -726,22 +731,23 @@
// label11 // label11
// //
this.label11.AutoSize = true; this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(6, 155); this.label11.Location = new System.Drawing.Point(4, 200);
this.label11.Name = "label11"; this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(0, 12); this.label11.Size = new System.Drawing.Size(29, 12);
this.label11.TabIndex = 45; this.label11.TabIndex = 45;
this.label11.Text = "null";
// //
// txtBoxLineName // txtBoxLineName
// //
this.txtBoxLineName.Location = new System.Drawing.Point(55, 57); this.txtBoxLineName.Location = new System.Drawing.Point(111, 54);
this.txtBoxLineName.Margin = new System.Windows.Forms.Padding(2); this.txtBoxLineName.Margin = new System.Windows.Forms.Padding(2);
this.txtBoxLineName.Name = "txtBoxLineName"; this.txtBoxLineName.Name = "txtBoxLineName";
this.txtBoxLineName.Size = new System.Drawing.Size(77, 21); this.txtBoxLineName.Size = new System.Drawing.Size(111, 21);
this.txtBoxLineName.TabIndex = 44; this.txtBoxLineName.TabIndex = 44;
// //
// btnUpdateStatus // btnUpdateStatus
// //
this.btnUpdateStatus.Location = new System.Drawing.Point(151, 23); this.btnUpdateStatus.Location = new System.Drawing.Point(147, 91);
this.btnUpdateStatus.Margin = new System.Windows.Forms.Padding(2); this.btnUpdateStatus.Margin = new System.Windows.Forms.Padding(2);
this.btnUpdateStatus.Name = "btnUpdateStatus"; this.btnUpdateStatus.Name = "btnUpdateStatus";
this.btnUpdateStatus.Size = new System.Drawing.Size(125, 35); this.btnUpdateStatus.Size = new System.Drawing.Size(125, 35);
...@@ -764,7 +770,7 @@ ...@@ -764,7 +770,7 @@
// label8 // label8
// //
this.label8.AutoSize = true; this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(4, 66); this.label8.Location = new System.Drawing.Point(60, 63);
this.label8.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.label8.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label8.Name = "label8"; this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(47, 12); this.label8.Size = new System.Drawing.Size(47, 12);
...@@ -774,7 +780,7 @@ ...@@ -774,7 +780,7 @@
// label7 // label7
// //
this.label7.AutoSize = true; this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(6, 34); this.label7.Location = new System.Drawing.Point(62, 31);
this.label7.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.label7.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label7.Name = "label7"; this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(35, 12); this.label7.Size = new System.Drawing.Size(35, 12);
...@@ -783,14 +789,15 @@ ...@@ -783,14 +789,15 @@
// //
// txtBoxRFID // txtBoxRFID
// //
this.txtBoxRFID.Location = new System.Drawing.Point(55, 26); this.txtBoxRFID.Location = new System.Drawing.Point(111, 23);
this.txtBoxRFID.Margin = new System.Windows.Forms.Padding(2); this.txtBoxRFID.Margin = new System.Windows.Forms.Padding(2);
this.txtBoxRFID.Name = "txtBoxRFID"; this.txtBoxRFID.Name = "txtBoxRFID";
this.txtBoxRFID.Size = new System.Drawing.Size(77, 21); this.txtBoxRFID.Size = new System.Drawing.Size(111, 21);
this.txtBoxRFID.TabIndex = 0; this.txtBoxRFID.TabIndex = 0;
// //
// groupBox6 // groupBox6
// //
this.groupBox6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.groupBox6.Controls.Add(this.label10); this.groupBox6.Controls.Add(this.label10);
this.groupBox6.Controls.Add(this.label9); this.groupBox6.Controls.Add(this.label9);
this.groupBox6.Controls.Add(this.txtRfid); this.groupBox6.Controls.Add(this.txtRfid);
...@@ -865,6 +872,7 @@ ...@@ -865,6 +872,7 @@
// //
// groupBox2 // groupBox2
// //
this.groupBox2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
this.groupBox2.Controls.Add(this.btnReSendTask); this.groupBox2.Controls.Add(this.btnReSendTask);
this.groupBox2.Controls.Add(this.BtnClearError); this.groupBox2.Controls.Add(this.BtnClearError);
this.groupBox2.Controls.Add(this.BtnMissionReady); this.groupBox2.Controls.Add(this.BtnMissionReady);
...@@ -1051,6 +1059,28 @@ ...@@ -1051,6 +1059,28 @@
this.label1.TabIndex = 0; this.label1.TabIndex = 0;
this.label1.Text = "label1"; this.label1.Text = "label1";
// //
// agvRemoveRfid
//
this.agvRemoveRfid.Location = new System.Drawing.Point(147, 142);
this.agvRemoveRfid.Margin = new System.Windows.Forms.Padding(2);
this.agvRemoveRfid.Name = "agvRemoveRfid";
this.agvRemoveRfid.Size = new System.Drawing.Size(125, 35);
this.agvRemoveRfid.TabIndex = 47;
this.agvRemoveRfid.Text = "清理料架的缓存信息";
this.agvRemoveRfid.UseVisualStyleBackColor = true;
this.agvRemoveRfid.Click += new System.EventHandler(this.agvRemoveRfid_Click);
//
// label12
//
this.label12.AutoSize = true;
this.label12.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(224)))), ((int)(((byte)(192)))));
this.label12.Location = new System.Drawing.Point(302, 224);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(407, 60);
this.label12.TabIndex = 46;
this.label12.Text = "说明:\r\n1、获取接驳台RFID:获取指定产线上的料架RFID信息\r\n2、物料状态上报:上报料车的产线信息\r\n3、清除接驳台RFID:清理指定产线的RFID信息\r" +
"\n4、清理料架的缓存信息:输入RFID,清除RFID的缓存信息,使料架可以复用\r\n";
//
// FrmMain // FrmMain
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
...@@ -1085,6 +1115,7 @@ ...@@ -1085,6 +1115,7 @@
this.groupBox8.ResumeLayout(false); this.groupBox8.ResumeLayout(false);
this.groupBox8.PerformLayout(); this.groupBox8.PerformLayout();
this.tabPage3.ResumeLayout(false); this.tabPage3.ResumeLayout(false);
this.tabPage3.PerformLayout();
this.groupBox4.ResumeLayout(false); this.groupBox4.ResumeLayout(false);
this.groupBox4.PerformLayout(); this.groupBox4.PerformLayout();
this.groupBox6.ResumeLayout(false); this.groupBox6.ResumeLayout(false);
...@@ -1176,6 +1207,8 @@ ...@@ -1176,6 +1207,8 @@
private System.ComponentModel.BackgroundWorker backgroundWorker1; private System.ComponentModel.BackgroundWorker backgroundWorker1;
private System.Windows.Forms.Label label11; private System.Windows.Forms.Label label11;
private System.Windows.Forms.Button btnClearStationRFID; private System.Windows.Forms.Button btnClearStationRFID;
private System.Windows.Forms.Button agvRemoveRfid;
private System.Windows.Forms.Label label12;
} }
} }
...@@ -714,5 +714,27 @@ namespace AGVControl ...@@ -714,5 +714,27 @@ namespace AGVControl
})); }));
} }
private void agvRemoveRfid_Click(object sender, EventArgs e)
{
try
{
Task.Factory.StartNew(() =>
{
if(txtBoxRFID.Text.StartsWith("C") || txtBoxRFID.Text.StartsWith("D"))
{
bool rtn = AGVManager.AgvRemoveRfid(txtBoxRFID.Text.ToUpper());
this.Invoke(new Action(() => { label11.Text = rtn ? "清理料架的缓存信息成功" : "清理料架的缓存信息失败"; }));
Common.LogInfo(string.Format("手动清理料架的缓存信息成功[{0}]", txtBoxRFID.Text.ToUpper()));
}
txtBoxLineName.Text = "";
txtBoxRFID.Text = "";
});
}
catch (Exception ex)
{
}
}
} }
} }
...@@ -348,39 +348,6 @@ namespace AGVControl ...@@ -348,39 +348,6 @@ namespace AGVControl
} }
Position = position; Position = position;
} }
//public void GetPlace(int value)
//{
// // Common.log.Debug(Name + " PLC20=" + value);
// if (value == 0)
// {
// Place = "";
// PlaceState = ePlaceState.None;
// }
// else if (value > 0 && value < 1000)
// {
// //Place = "";
// //PlaceState = PlaceState.None;
// //TaskSend = "";
// }
// else if (value >= 1000)
// {
// int a = value / 1000;
// int b = (value - a * 1000) / 10;
// int c = value - a * 1000 - b * 10;
// //if (c.Equals(1) || c.Equals(3) || c.Equals(5))//Move,Enter,Leave
// // TaskSend = "";
// Place = (char)(64 + a) + b.ToString();
// if (Common.nodeInfo != null && Common.nodeInfo.Count != 0)
// {
// ClientNode node = Common.nodeInfo.Find(s => s.Name == Place);
// if (node != null)
// PlaceAliceName = node.AliceName;
// else
// PlaceAliceName = Place;
// }
// PlaceState = (ePlaceState)c;
// }
//}
public string[] ToRow() public string[] ToRow()
{ {
......
...@@ -71,11 +71,12 @@ namespace AGVControl ...@@ -71,11 +71,12 @@ namespace AGVControl
int tmp = EmptyCnt; int tmp = EmptyCnt;
System.Threading.Interlocked.Decrement(ref tmp); System.Threading.Interlocked.Decrement(ref tmp);
EmptyCnt = tmp; EmptyCnt = tmp;
if (EmptyCnt.Equals(0) && Rfids.Count >0) if (EmptyCnt.Equals(0) && Rfids.Count > 0)
{ {
Rfids.Clear(); Rfids.Clear();
} }
//Rfids.Remove(rfid); if (rfid.Equals(SettingString.C4FeederOut) || rfid.Equals(SettingString.D4FeederOut))
Rfids.Remove(rfid);
return true; return true;
} }
} }
......
...@@ -390,9 +390,6 @@ namespace AGVControl ...@@ -390,9 +390,6 @@ namespace AGVControl
else if (TakeEmptyStep.IsTimeOut(15000, out double timeOutValue)) else if (TakeEmptyStep.IsTimeOut(15000, out double timeOutValue))
{ {
TakeEmptyStep.ToNextStep(TAKE_EMPTY_STEP.WAIT_REACH_PLACE); TakeEmptyStep.ToNextStep(TAKE_EMPTY_STEP.WAIT_REACH_PLACE);
//runInfo = "AGV到达 " + EmptyShelfPlace + ",15秒后重新向产线发送出料架请求[ReadyLeave]";
//msg += runInfo;
//TakeEmptyStep.Msg = msg;
} }
} }
else if (TakeEmptyStep.IsStep(TAKE_EMPTY_STEP.WAIT_TAKE_EMPTY_SHELF)) else if (TakeEmptyStep.IsStep(TAKE_EMPTY_STEP.WAIT_TAKE_EMPTY_SHELF))
...@@ -408,15 +405,6 @@ namespace AGVControl ...@@ -408,15 +405,6 @@ namespace AGVControl
runInfo = "空料架在[" + EmptyShelfPlace + "]进入小车完成" + "[RFID=" + RFID + "]"; runInfo = "空料架在[" + EmptyShelfPlace + "]进入小车完成" + "[RFID=" + RFID + "]";
msg += runInfo; msg += runInfo;
TakeEmptyStep.Msg = msg; TakeEmptyStep.Msg = msg;
//4DfeederOut默认大料架
//if (agv.Place.Equals(SettingString.D4FeederOut))
//{
// return new EmptyShelfBackJob(EmptyShelfPlace, eShelfType.BigShelf);
//}
//else if(agv.Place.Equals(SettingString.C4FeederOut))
//{
// return new EmptyShelfBackJob(EmptyShelfPlace, eShelfType.BigShelf);
//}
if (agv.RFID.StartsWith("D")) if (agv.RFID.StartsWith("D"))
{ {
return new EmptyShelfBackJob(EmptyShelfPlace, eShelfType.SmallShelf); return new EmptyShelfBackJob(EmptyShelfPlace, eShelfType.SmallShelf);
......
...@@ -301,11 +301,6 @@ namespace AGVControl ...@@ -301,11 +301,6 @@ namespace AGVControl
runInfo = FullShelfStationPlace + "满料架进入小车完成"; runInfo = FullShelfStationPlace + "满料架进入小车完成";
msg += runInfo; msg += runInfo;
GoFullShelfStationStep.Msg = msg; GoFullShelfStationStep.Msg = msg;
//if (FullShelfDestInfo.location.StartsWith("G"))
//{
// return new SendFullShelfToLineJob(FullShelfDestInfo, true);
//}
//else
return new SendFullShelfToLineJob(FullShelfDestInfo); return new SendFullShelfToLineJob(FullShelfDestInfo);
} }
else if (GoFullShelfStationStep.IsTimeOut(60000, out double timeOutValue)) else if (GoFullShelfStationStep.IsTimeOut(60000, out double timeOutValue))
......
...@@ -66,7 +66,7 @@ namespace AGVControl ...@@ -66,7 +66,7 @@ namespace AGVControl
// CurTaskState = st; // CurTaskState = st;
if (SendFullShelfStep.IsStep(SEND_FULL_SHELF_STEP.NONE)) if (SendFullShelfStep.IsStep(SEND_FULL_SHELF_STEP.NONE))
{ {
AGVManager.AgvRemoveRfid(RFID);
if (FullShelfPlace.StartsWith(SettingString.C4_Name_Prefix)) if (FullShelfPlace.StartsWith(SettingString.C4_Name_Prefix))
{ {
SendFullShelfStep.ToNextStep(SEND_FULL_SHELF_STEP.WAIT_AGV_REACH_DOOR); SendFullShelfStep.ToNextStep(SEND_FULL_SHELF_STEP.WAIT_AGV_REACH_DOOR);
......
...@@ -81,7 +81,7 @@ namespace AGVControl ...@@ -81,7 +81,7 @@ namespace AGVControl
this.Pos_guid = pos_guid; this.Pos_guid = pos_guid;
LineName = lineName; LineName = lineName;
} }
public string WarnMsg { get; set; } = "";
/// <summary> /// <summary>
/// 客户端节点 /// 客户端节点
/// </summary> /// </summary>
......
...@@ -71,3 +71,4 @@ E:\Neotel\Projects\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLi ...@@ -71,3 +71,4 @@ E:\Neotel\Projects\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLi
E:\Neotel\Projects\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\obj\Debug\AGVControl-ProductionLine.exe E:\Neotel\Projects\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\obj\Debug\AGVControl-ProductionLine.exe
E:\Neotel\Projects\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\obj\Debug\AGVControl-ProductionLine.pdb E:\Neotel\Projects\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\obj\Debug\AGVControl-ProductionLine.pdb
C:\myproject\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\obj\Debug\AGVControl-ProductionLine.csprojAssemblyReference.cache C:\myproject\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\obj\Debug\AGVControl-ProductionLine.csprojAssemblyReference.cache
E:\Neotel\Projects\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\obj\Debug\AGVControl-ProductionLine.csprojAssemblyReference.cache
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!