Commit 54be25c3 张东亮

运行版1

1 个父辈 c0e49397
......@@ -451,7 +451,7 @@ namespace AGVControl
{
Msg1 msgs = JsonHelper.DeserializeJsonToObject<Msg1>(result);
if (msgs == null)
return ",,,D22";
return ",,,";
else
{
Common.log.Debug(string.Format("{0}接驳台状态:{1}",lineName,msgs.Msg));
......@@ -463,9 +463,58 @@ namespace AGVControl
catch (Exception ex)
{
Common.log.Error(ex.Message);
return ",,,D22";
return ",,,";
}
return ",,,D22";
return ",,,";
}
/// <summary>
/// 获取接驳台最外面料架
/// </summary>
/// <param name="lineName"></param>
/// <returns></returns>
public static string GetFirstRFID(string lineName)
{
string addr = "";
if (lineName.StartsWith(SettingString.D4_Name_Prefix))
{
addr = string.Format("http://{0}/LineGetRFID?line={1}", ConfigAppSettings.GetValue(SettingString.IP_4D_Light), lineName);
}
else if (lineName.StartsWith(SettingString.C4_Name_Prefix))
{
addr = string.Format("http://{0}/LineGetRFID?line={1}", ConfigAppSettings.GetValue(SettingString.IP_4C_Light), lineName);
}
try
{
string result = HttpHelper.Get(addr);
if (!result.Equals(""))
{
Msg1 msgs = JsonHelper.DeserializeJsonToObject<Msg1>(result);
if (msgs == null)
return "";
else
{
Common.log.Debug(string.Format("{0}接驳台状态:{1}", lineName, msgs.Msg));
string rfid = "";
foreach (string item in msgs.Msg.Split(','))
{
if(!item.Equals(""))
{
rfid = item;
}
}
return rfid;
}
}
}
catch (Exception ex)
{
Common.log.Error(ex.Message);
return "";
}
return "";
}
/// <summary>
/// 删除接驳台料架
......
......@@ -617,8 +617,8 @@ namespace AGVControl
if (!Common.missionManager.GetUnlockRfids(Common.nodeInfo[idx].Name).Contains(nodeInfo[idx].RFID))
{
warnMsg = string.Format("料架{0}在接驳台{1}最外侧,但没有解绑信息,请检查", nodeInfo[idx].RFID, nodeInfo[idx].Name);
Common.log.Error(warnMsg);
return false;
Common.LogInfo(warnMsg);
return true;
}
rfid = nodeInfo[idx].RFID;
warnMsg = "";
......@@ -664,8 +664,8 @@ namespace AGVControl
if (!Common.missionManager.GetUnlockRfids(Common.nodeInfo[idx].Name).Contains(nodeInfo[idx].RFID))
{
warnMsg = string.Format("料架{0}在接驳台{1}最外侧,但没有解绑信息,请检查", nodeInfo[idx].RFID, nodeInfo[idx].Name);
Common.log.Error(warnMsg);
return false;
Common.LogInfo(warnMsg);
return true;
}
rfid = nodeInfo[idx].RFID;
warnMsg = "";
......@@ -705,8 +705,8 @@ namespace AGVControl
if (!Common.missionManager.GetUnlockRfids(Common.nodeInfo[idx].Name).Contains(nodeInfo[idx].RFID))
{
warnMsg = string.Format("料架{0}在接驳台{1}最外侧,但没有解绑信息,请检查", nodeInfo[idx].RFID, nodeInfo[idx].Name);
Common.log.Error(warnMsg);
return false;
Common.LogInfo(warnMsg);
return true;
}
rfid = nodeInfo[idx].RFID;
warnMsg = "";
......@@ -727,8 +727,8 @@ namespace AGVControl
if (!Common.missionManager.GetUnlockRfids(Common.nodeInfo[idx].Name).Contains(nodeInfo[idx].RFID))
{
warnMsg = string.Format("料架{0}在接驳台{1}最外侧,但没有解绑信息,请检查", nodeInfo[idx].RFID, nodeInfo[idx].Name);
Common.log.Error(warnMsg);
return false;
Common.LogInfo(warnMsg);
return true;
}
rfid = nodeInfo[idx].RFID;
warnMsg = "";
......@@ -757,8 +757,8 @@ namespace AGVControl
if (!Common.missionManager.GetUnlockRfids(Common.nodeInfo[idx].Name).Contains(nodeInfo[idx].RFID))
{
warnMsg = string.Format("料架{0}在接驳台{1}最外侧,但没有解绑信息,请检查", nodeInfo[idx].RFID, nodeInfo[idx].Name);
Common.log.Error(warnMsg);
return false;
Common.LogInfo(warnMsg);
return true;
}
rfid = nodeInfo[idx].RFID;
warnMsg = "";
......@@ -779,8 +779,8 @@ namespace AGVControl
if (!Common.missionManager.GetUnlockRfids(Common.nodeInfo[idx].Name).Contains(nodeInfo[idx].RFID))
{
warnMsg = string.Format("料架{0}在接驳台{1}最外侧,但没有解绑信息,请检查", nodeInfo[idx].RFID, nodeInfo[idx].Name);
Common.log.Error(warnMsg);
return false;
Common.LogInfo(warnMsg);
return true;
}
rfid = nodeInfo[idx].RFID;
warnMsg = "";
......@@ -796,12 +796,14 @@ namespace AGVControl
//4C车间备料区寻找
if (SettingString.C4_AGV_IPs.Contains(agv.IP))
{
idx = nodeInfo.FindIndex(s => s.EmptyShelfCnt > 0 && s.Name.Equals(SettingString.C4FeederOut) && s.IsUse);
idx = nodeInfo.FindIndex(s => s.EmptyShelfCnt > 0 && s.Name.Equals(SettingString.C4FeederOut) && !s.RFID.StartsWith("0") && s.IsUse);
if (idx > -1)
{
int idx1 = agvInfo.FindIndex(s => s.CurJob is EnterLeaveShelfJob && ((EnterLeaveShelfJob)s.CurJob).LineName.Equals(SettingString.C4FeederOut));
if (idx1 == -1)
{
rfid = nodeInfo[idx].RFID;
warnMsg = "";
nodeName = nodeInfo[idx].Name;
Common.log.Debug(agv.Name + " 双层线右侧需要料架,准备去4C-" + nodeName);
return true;
......@@ -812,9 +814,11 @@ namespace AGVControl
//4D车间备料区寻找
if (!SettingString.C4_AGV_IPs.Contains(agv.IP))
{
idx = nodeInfo.FindIndex(s => s.EmptyShelfCnt > 0 && s.Name.Equals(SettingString.D4FeederOut) && s.IsUse);
idx = nodeInfo.FindIndex(s => s.EmptyShelfCnt > 0 && s.Name.Equals(SettingString.D4FeederOut) && !s.RFID.StartsWith("0")&& s.IsUse);
if (idx > -1)
{
rfid = nodeInfo[idx].RFID;
warnMsg = "";
nodeName = nodeInfo[idx].Name;
Common.log.Debug(agv.Name + " 双层线右侧需要料架,准备去4D-" + nodeName);
return true;
......@@ -891,8 +895,8 @@ namespace AGVControl
if (!Common.missionManager.GetUnlockRfids(Common.nodeInfo[idx].Name).Contains(nodeInfo[idx].RFID))
{
warnMsg = string.Format("料架{0}在接驳台{1}最外侧,但没有解绑信息,请检查", nodeInfo[idx].RFID, nodeInfo[idx].Name);
Common.log.Error(warnMsg);
return false;
Common.LogInfo(warnMsg);
return true;
}
rfid = nodeInfo[idx].RFID;
warnMsg = "";
......
......@@ -18,6 +18,7 @@ namespace AGVControl.BLL
//private int areaC_Index;
private System.Timers.Timer AgvCallTimer;
private System.Timers.Timer AgvStateTimer;
private System.Timers.Timer NodeStateTimer;
//public List<string> Marks;
private const int REG_STATUS = 20;
//private List<string> shelfLockedNodeNames;
......@@ -42,6 +43,13 @@ namespace AGVControl.BLL
Enabled = false
};
AgvStateTimer.Elapsed += AgvStateTimer_Elapsed;
NodeStateTimer = new System.Timers.Timer
{
Interval = 5000,
AutoReset = true,
Enabled = false
};
NodeStateTimer.Elapsed += NodeStateTimer_Elapsed;
}
......@@ -49,19 +57,67 @@ namespace AGVControl.BLL
{
AgvCallTimer.Enabled = true;
AgvStateTimer.Enabled = true;
NodeStateTimer.Enabled = true;
AgvCallTimer.Start();
AgvStateTimer.Start();
NodeStateTimer.Start();
}
public void Stop()
{
AgvCallTimer.Enabled = false;
AgvStateTimer.Enabled = false;
NodeStateTimer.Enabled = false;
AgvCallTimer.Stop();
AgvStateTimer.Stop();
NodeStateTimer.Stop();
}
private bool NodeStateInProcess = false;
private void NodeStateTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
if (NodeStateInProcess) return;
NodeStateInProcess = true;
try
{
String tmp = "";
for (int j = 0; j < Common.nodeInfo.Count; j++)
{
if (Common.nodeInfo[j].Name.StartsWith(SettingString.D4_Name_Prefix) || Common.nodeInfo[j].Name.StartsWith(SettingString.C4_Name_Prefix))
{
if (!Common.nodeInfo[j].Name.Equals(SettingString.C4FeederIn) && !Common.nodeInfo[j].Name.Equals(SettingString.C4FeederOut) &&
!Common.nodeInfo[j].Name.Equals(SettingString.D4FeederIn) && !Common.nodeInfo[j].Name.Equals(SettingString.D4FeederOut))
{
tmp = AGVManager.GetFirstRFID(Common.nodeInfo[j].Name);
if (!tmp.Equals(Common.nodeInfo[j].RFID))
{
Common.nodeInfo[j].RFID = tmp;
NodeChangedEvent?.Invoke(j);
}
}
if (Common.nodeInfo[j].Name.Equals(SettingString.C4FeederOut) || Common.nodeInfo[j].Name.Equals(SettingString.D4FeederOut))
{
if (Common.missionManager.GetUnlockCnt(Common.nodeInfo[j].Name) > 0)
{
tmp = Common.missionManager.GetUnlockRfids(Common.nodeInfo[j].Name)[0];
if (!tmp.Equals(Common.nodeInfo[j].RFID))
{
Common.nodeInfo[j].RFID = tmp;
NodeChangedEvent?.Invoke(j);
}
}
}
}
}
}
catch(Exception ex)
{
Common.log.Error("NodeStateTimer " + ex.Message + ex.StackTrace);
}
NodeStateInProcess = false;
}
private bool AgvStateInProcess = false;
private eAGVState preAGVState = eAGVState.None;
private void AgvStateTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
......@@ -73,20 +129,6 @@ namespace AGVControl.BLL
String tmp = "";
for (int j = 0; j < Common.nodeInfo.Count; j++)
{
if(Common.nodeInfo[j].Name.StartsWith(SettingString.D4_Name_Prefix) || Common.nodeInfo[j].Name.StartsWith(SettingString.C4_Name_Prefix))
{
if(!Common.nodeInfo[j].Name.Equals(SettingString.C4FeederIn) && !Common.nodeInfo[j].Name.Equals(SettingString.C4FeederOut) &&
!Common.nodeInfo[j].Name.Equals(SettingString.D4FeederIn) && !Common.nodeInfo[j].Name.Equals(SettingString.D4FeederOut))
{
tmp = AGVManager.GetRFIDs(Common.nodeInfo[j].Name).Split(',')[3];
if(!tmp.Equals(Common.nodeInfo[j].RFID))
{
Common.nodeInfo[j].RFID = tmp;
NodeChangedEvent?.Invoke(j);
}
}
}
if (!Common.nodeInfo[j].Online)
{
msglist.Add(new AlarmMsg(Common.nodeInfo[j].AliceName, "lineAgv." + Common.nodeInfo[j].Name + ".OffLine", "离线"));
......@@ -116,7 +158,7 @@ namespace AGVControl.BLL
{
AgvChanged?.Invoke(i);
}
Common.log.Debug("获取AGV状态");
Common.log.Debug("获取AGV状态");
Thread.Sleep(50);
rtn = Common.mir.Get_IO_Status(Common.agvInfo[i], out bool[] input, out bool[] output);
......
......@@ -82,7 +82,6 @@
this.btnDeleteMission = new System.Windows.Forms.Button();
this.btnAddMission = new System.Windows.Forms.Button();
this.cmbBoxLineName = new System.Windows.Forms.ComboBox();
this.groupBox7 = new System.Windows.Forms.GroupBox();
this.txtBoxLineName = new System.Windows.Forms.TextBox();
this.label8 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
......@@ -103,6 +102,11 @@
this.label3 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
this.btnGetStationRfid = new System.Windows.Forms.Button();
this.label11 = new System.Windows.Forms.Label();
this.btnClearStationRFID = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.DgvAgv)).BeginInit();
this.tableLayoutPanel3.SuspendLayout();
this.tabControl1.SuspendLayout();
......@@ -123,10 +127,10 @@
this.groupBox8.SuspendLayout();
this.tabPage3.SuspendLayout();
this.groupBox6.SuspendLayout();
this.groupBox7.SuspendLayout();
this.groupBox2.SuspendLayout();
this.tableLayoutPanel4.SuspendLayout();
this.tableLayoutPanel6.SuspendLayout();
this.groupBox4.SuspendLayout();
this.SuspendLayout();
//
// DgvAgv
......@@ -160,7 +164,7 @@
this.DgvAgv.RowHeadersVisible = false;
this.DgvAgv.RowHeadersWidth = 51;
this.DgvAgv.RowTemplate.Height = 23;
this.DgvAgv.Size = new System.Drawing.Size(1061, 125);
this.DgvAgv.Size = new System.Drawing.Size(1105, 141);
this.DgvAgv.TabIndex = 3;
this.DgvAgv.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DgvAgv_CellClick);
//
......@@ -266,7 +270,7 @@
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 30F));
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel3.Size = new System.Drawing.Size(1067, 656);
this.tableLayoutPanel3.Size = new System.Drawing.Size(1111, 735);
this.tableLayoutPanel3.TabIndex = 7;
//
// tabControl1
......@@ -275,10 +279,10 @@
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Controls.Add(this.tabPage3);
this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tabControl1.Location = new System.Drawing.Point(3, 330);
this.tabControl1.Location = new System.Drawing.Point(3, 370);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(1061, 323);
this.tabControl1.Size = new System.Drawing.Size(1105, 362);
this.tabControl1.TabIndex = 7;
//
// tabPage1
......@@ -287,7 +291,7 @@
this.tabPage1.Location = new System.Drawing.Point(4, 22);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
this.tabPage1.Size = new System.Drawing.Size(1053, 297);
this.tabPage1.Size = new System.Drawing.Size(1097, 336);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "节点状态&产线任务";
this.tabPage1.UseVisualStyleBackColor = true;
......@@ -305,7 +309,7 @@
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
this.tableLayoutPanel2.RowCount = 1;
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel2.Size = new System.Drawing.Size(1047, 291);
this.tableLayoutPanel2.Size = new System.Drawing.Size(1091, 330);
this.tableLayoutPanel2.TabIndex = 34;
//
// DgvNode
......@@ -337,7 +341,7 @@
this.DgvNode.RowHeadersVisible = false;
this.DgvNode.RowHeadersWidth = 50;
this.DgvNode.RowTemplate.Height = 23;
this.DgvNode.Size = new System.Drawing.Size(584, 285);
this.DgvNode.Size = new System.Drawing.Size(609, 324);
this.DgvNode.TabIndex = 1;
this.DgvNode.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DgvNode_CellClick);
//
......@@ -416,11 +420,11 @@
this.groupBox1.Controls.Add(this.tableLayoutPanel5);
this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill;
this.groupBox1.Font = new System.Drawing.Font("宋体", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.groupBox1.Location = new System.Drawing.Point(592, 2);
this.groupBox1.Location = new System.Drawing.Point(617, 2);
this.groupBox1.Margin = new System.Windows.Forms.Padding(2);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Padding = new System.Windows.Forms.Padding(2);
this.groupBox1.Size = new System.Drawing.Size(453, 287);
this.groupBox1.Size = new System.Drawing.Size(472, 326);
this.groupBox1.TabIndex = 33;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "任务信息";
......@@ -442,18 +446,18 @@
this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 15F));
this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 15F));
this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 55F));
this.tableLayoutPanel5.Size = new System.Drawing.Size(449, 266);
this.tableLayoutPanel5.Size = new System.Drawing.Size(468, 305);
this.tableLayoutPanel5.TabIndex = 2;
//
// groupBox5
//
this.groupBox5.Controls.Add(this.lblDestInfo);
this.groupBox5.Dock = System.Windows.Forms.DockStyle.Fill;
this.groupBox5.Location = new System.Drawing.Point(2, 41);
this.groupBox5.Location = new System.Drawing.Point(2, 47);
this.groupBox5.Margin = new System.Windows.Forms.Padding(2);
this.groupBox5.Name = "groupBox5";
this.groupBox5.Padding = new System.Windows.Forms.Padding(2);
this.groupBox5.Size = new System.Drawing.Size(445, 35);
this.groupBox5.Size = new System.Drawing.Size(464, 41);
this.groupBox5.TabIndex = 2;
this.groupBox5.TabStop = false;
this.groupBox5.Text = "出料信息";
......@@ -465,7 +469,7 @@
this.lblDestInfo.Location = new System.Drawing.Point(2, 19);
this.lblDestInfo.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblDestInfo.Name = "lblDestInfo";
this.lblDestInfo.Size = new System.Drawing.Size(441, 14);
this.lblDestInfo.Size = new System.Drawing.Size(460, 20);
this.lblDestInfo.TabIndex = 40;
this.lblDestInfo.Text = "lblDestInfo";
//
......@@ -477,7 +481,7 @@
this.groupBox3.Margin = new System.Windows.Forms.Padding(2);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Padding = new System.Windows.Forms.Padding(2);
this.groupBox3.Size = new System.Drawing.Size(445, 35);
this.groupBox3.Size = new System.Drawing.Size(464, 41);
this.groupBox3.TabIndex = 0;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "双层线工单信息";
......@@ -489,7 +493,7 @@
this.lblWO.Location = new System.Drawing.Point(2, 19);
this.lblWO.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblWO.Name = "lblWO";
this.lblWO.Size = new System.Drawing.Size(441, 14);
this.lblWO.Size = new System.Drawing.Size(460, 20);
this.lblWO.TabIndex = 40;
this.lblWO.Text = "lblWO";
//
......@@ -500,12 +504,12 @@
this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.tableLayoutPanel7.Controls.Add(this.lblWarn, 0, 0);
this.tableLayoutPanel7.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel7.Location = new System.Drawing.Point(2, 80);
this.tableLayoutPanel7.Location = new System.Drawing.Point(2, 92);
this.tableLayoutPanel7.Margin = new System.Windows.Forms.Padding(2);
this.tableLayoutPanel7.Name = "tableLayoutPanel7";
this.tableLayoutPanel7.RowCount = 1;
this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel7.Size = new System.Drawing.Size(445, 35);
this.tableLayoutPanel7.Size = new System.Drawing.Size(464, 41);
this.tableLayoutPanel7.TabIndex = 3;
//
// lblWarn
......@@ -516,7 +520,7 @@
this.lblWarn.Location = new System.Drawing.Point(2, 0);
this.lblWarn.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblWarn.Name = "lblWarn";
this.lblWarn.Size = new System.Drawing.Size(441, 35);
this.lblWarn.Size = new System.Drawing.Size(460, 41);
this.lblWarn.TabIndex = 41;
this.lblWarn.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
......@@ -525,9 +529,9 @@
this.grpUnlock.Controls.Add(this.tblLayoutUnlock);
this.grpUnlock.Dock = System.Windows.Forms.DockStyle.Fill;
this.grpUnlock.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.grpUnlock.Location = new System.Drawing.Point(3, 120);
this.grpUnlock.Location = new System.Drawing.Point(3, 138);
this.grpUnlock.Name = "grpUnlock";
this.grpUnlock.Size = new System.Drawing.Size(443, 143);
this.grpUnlock.Size = new System.Drawing.Size(462, 164);
this.grpUnlock.TabIndex = 4;
this.grpUnlock.TabStop = false;
this.grpUnlock.Text = "解绑信息";
......@@ -545,7 +549,7 @@
this.tblLayoutUnlock.Name = "tblLayoutUnlock";
this.tblLayoutUnlock.RowCount = 1;
this.tblLayoutUnlock.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tblLayoutUnlock.Size = new System.Drawing.Size(437, 121);
this.tblLayoutUnlock.Size = new System.Drawing.Size(456, 142);
this.tblLayoutUnlock.TabIndex = 1;
//
// dgvUnlockDetail
......@@ -554,13 +558,13 @@
this.dgvUnlockDetail.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
this.dgvUnlockDetail.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvUnlockDetail.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvUnlockDetail.Location = new System.Drawing.Point(221, 3);
this.dgvUnlockDetail.Location = new System.Drawing.Point(231, 3);
this.dgvUnlockDetail.Name = "dgvUnlockDetail";
this.dgvUnlockDetail.ReadOnly = true;
this.dgvUnlockDetail.RowHeadersVisible = false;
this.dgvUnlockDetail.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
this.dgvUnlockDetail.RowTemplate.Height = 23;
this.dgvUnlockDetail.Size = new System.Drawing.Size(213, 115);
this.dgvUnlockDetail.Size = new System.Drawing.Size(222, 136);
this.dgvUnlockDetail.TabIndex = 1;
//
// dgvUnlockInfo
......@@ -574,7 +578,7 @@
this.dgvUnlockInfo.ReadOnly = true;
this.dgvUnlockInfo.RowHeadersVisible = false;
this.dgvUnlockInfo.RowTemplate.Height = 23;
this.dgvUnlockInfo.Size = new System.Drawing.Size(212, 115);
this.dgvUnlockInfo.Size = new System.Drawing.Size(222, 136);
this.dgvUnlockInfo.TabIndex = 0;
//
// tabPage2
......@@ -677,15 +681,15 @@
//
// tabPage3
//
this.tabPage3.Controls.Add(this.groupBox4);
this.tabPage3.Controls.Add(this.groupBox6);
this.tabPage3.Controls.Add(this.groupBox7);
this.tabPage3.Controls.Add(this.groupBox2);
this.tabPage3.Controls.Add(this.BtnMissionAdd);
this.tabPage3.Controls.Add(this.LstAgvPlace);
this.tabPage3.Location = new System.Drawing.Point(4, 22);
this.tabPage3.Name = "tabPage3";
this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
this.tabPage3.Size = new System.Drawing.Size(1053, 297);
this.tabPage3.Size = new System.Drawing.Size(1097, 336);
this.tabPage3.TabIndex = 2;
this.tabPage3.Text = "手动";
this.tabPage3.UseVisualStyleBackColor = true;
......@@ -764,25 +768,9 @@
this.cmbBoxLineName.Size = new System.Drawing.Size(137, 20);
this.cmbBoxLineName.TabIndex = 39;
//
// groupBox7
//
this.groupBox7.Controls.Add(this.txtBoxLineName);
this.groupBox7.Controls.Add(this.label8);
this.groupBox7.Controls.Add(this.label7);
this.groupBox7.Controls.Add(this.btnUpdateStatus);
this.groupBox7.Controls.Add(this.txtBoxRFID);
this.groupBox7.Location = new System.Drawing.Point(593, 24);
this.groupBox7.Margin = new System.Windows.Forms.Padding(2);
this.groupBox7.Name = "groupBox7";
this.groupBox7.Padding = new System.Windows.Forms.Padding(2);
this.groupBox7.Size = new System.Drawing.Size(153, 121);
this.groupBox7.TabIndex = 36;
this.groupBox7.TabStop = false;
this.groupBox7.Text = "物料状态上报";
//
// txtBoxLineName
//
this.txtBoxLineName.Location = new System.Drawing.Point(60, 50);
this.txtBoxLineName.Location = new System.Drawing.Point(55, 57);
this.txtBoxLineName.Margin = new System.Windows.Forms.Padding(2);
this.txtBoxLineName.Name = "txtBoxLineName";
this.txtBoxLineName.Size = new System.Drawing.Size(77, 21);
......@@ -791,7 +779,7 @@
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(4, 58);
this.label8.Location = new System.Drawing.Point(4, 66);
this.label8.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(47, 12);
......@@ -801,7 +789,7 @@
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(4, 24);
this.label7.Location = new System.Drawing.Point(6, 34);
this.label7.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(35, 12);
......@@ -810,18 +798,18 @@
//
// btnUpdateStatus
//
this.btnUpdateStatus.Location = new System.Drawing.Point(37, 78);
this.btnUpdateStatus.Location = new System.Drawing.Point(8, 102);
this.btnUpdateStatus.Margin = new System.Windows.Forms.Padding(2);
this.btnUpdateStatus.Name = "btnUpdateStatus";
this.btnUpdateStatus.Size = new System.Drawing.Size(75, 39);
this.btnUpdateStatus.Size = new System.Drawing.Size(125, 39);
this.btnUpdateStatus.TabIndex = 41;
this.btnUpdateStatus.Text = "上报";
this.btnUpdateStatus.Text = "物料状态上报";
this.btnUpdateStatus.UseVisualStyleBackColor = true;
this.btnUpdateStatus.Click += new System.EventHandler(this.btnUpdateStatus_Click);
//
// txtBoxRFID
//
this.txtBoxRFID.Location = new System.Drawing.Point(60, 19);
this.txtBoxRFID.Location = new System.Drawing.Point(55, 26);
this.txtBoxRFID.Margin = new System.Windows.Forms.Padding(2);
this.txtBoxRFID.Name = "txtBoxRFID";
this.txtBoxRFID.Size = new System.Drawing.Size(77, 21);
......@@ -833,18 +821,18 @@
this.groupBox2.Controls.Add(this.BtnClearError);
this.groupBox2.Controls.Add(this.BtnMissionReady);
this.groupBox2.Controls.Add(this.BtnMissionPause);
this.groupBox2.Location = new System.Drawing.Point(770, 24);
this.groupBox2.Location = new System.Drawing.Point(583, 24);
this.groupBox2.Margin = new System.Windows.Forms.Padding(2);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Padding = new System.Windows.Forms.Padding(2);
this.groupBox2.Size = new System.Drawing.Size(262, 177);
this.groupBox2.Size = new System.Drawing.Size(193, 177);
this.groupBox2.TabIndex = 32;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "操作";
this.groupBox2.Text = "小车操作";
//
// btnReSendTask
//
this.btnReSendTask.Location = new System.Drawing.Point(152, 102);
this.btnReSendTask.Location = new System.Drawing.Point(96, 102);
this.btnReSendTask.Margin = new System.Windows.Forms.Padding(2);
this.btnReSendTask.Name = "btnReSendTask";
this.btnReSendTask.Size = new System.Drawing.Size(75, 52);
......@@ -855,7 +843,7 @@
//
// BtnClearError
//
this.BtnClearError.Location = new System.Drawing.Point(35, 102);
this.BtnClearError.Location = new System.Drawing.Point(5, 102);
this.BtnClearError.Name = "BtnClearError";
this.BtnClearError.Size = new System.Drawing.Size(75, 52);
this.BtnClearError.TabIndex = 19;
......@@ -865,7 +853,7 @@
//
// BtnMissionReady
//
this.BtnMissionReady.Location = new System.Drawing.Point(35, 19);
this.BtnMissionReady.Location = new System.Drawing.Point(5, 23);
this.BtnMissionReady.Name = "BtnMissionReady";
this.BtnMissionReady.Size = new System.Drawing.Size(75, 52);
this.BtnMissionReady.TabIndex = 1;
......@@ -875,7 +863,7 @@
//
// BtnMissionPause
//
this.BtnMissionPause.Location = new System.Drawing.Point(152, 15);
this.BtnMissionPause.Location = new System.Drawing.Point(96, 23);
this.BtnMissionPause.Name = "BtnMissionPause";
this.BtnMissionPause.Size = new System.Drawing.Size(75, 52);
this.BtnMissionPause.TabIndex = 2;
......@@ -901,7 +889,7 @@
this.LstAgvPlace.ItemHeight = 12;
this.LstAgvPlace.Location = new System.Drawing.Point(3, 3);
this.LstAgvPlace.Name = "LstAgvPlace";
this.LstAgvPlace.Size = new System.Drawing.Size(150, 291);
this.LstAgvPlace.Size = new System.Drawing.Size(150, 330);
this.LstAgvPlace.TabIndex = 0;
//
// tableLayoutPanel4
......@@ -910,13 +898,13 @@
this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel4.Controls.Add(this.tableLayoutPanel6, 0, 0);
this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel4.Location = new System.Drawing.Point(2, 133);
this.tableLayoutPanel4.Location = new System.Drawing.Point(2, 149);
this.tableLayoutPanel4.Margin = new System.Windows.Forms.Padding(2);
this.tableLayoutPanel4.Name = "tableLayoutPanel4";
this.tableLayoutPanel4.RowCount = 1;
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 169F));
this.tableLayoutPanel4.Size = new System.Drawing.Size(1063, 192);
this.tableLayoutPanel4.Size = new System.Drawing.Size(1107, 216);
this.tableLayoutPanel4.TabIndex = 8;
//
// tableLayoutPanel6
......@@ -940,7 +928,7 @@
this.tableLayoutPanel6.RowCount = 2;
this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel6.Size = new System.Drawing.Size(1059, 188);
this.tableLayoutPanel6.Size = new System.Drawing.Size(1103, 212);
this.tableLayoutPanel6.TabIndex = 0;
//
// label6
......@@ -948,10 +936,10 @@
this.label6.AutoSize = true;
this.label6.Dock = System.Windows.Forms.DockStyle.Fill;
this.label6.Font = new System.Drawing.Font("宋体", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label6.Location = new System.Drawing.Point(708, 95);
this.label6.Location = new System.Drawing.Point(737, 107);
this.label6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(346, 90);
this.label6.Size = new System.Drawing.Size(361, 102);
this.label6.TabIndex = 5;
this.label6.Text = "label6";
//
......@@ -960,10 +948,10 @@
this.label5.AutoSize = true;
this.label5.Dock = System.Windows.Forms.DockStyle.Fill;
this.label5.Font = new System.Drawing.Font("宋体", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label5.Location = new System.Drawing.Point(356, 95);
this.label5.Location = new System.Drawing.Point(371, 107);
this.label5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(345, 90);
this.label5.Size = new System.Drawing.Size(359, 102);
this.label5.TabIndex = 4;
this.label5.Text = "label5";
//
......@@ -972,10 +960,10 @@
this.label4.AutoSize = true;
this.label4.Dock = System.Windows.Forms.DockStyle.Fill;
this.label4.Font = new System.Drawing.Font("宋体", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label4.Location = new System.Drawing.Point(5, 95);
this.label4.Location = new System.Drawing.Point(5, 107);
this.label4.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(344, 90);
this.label4.Size = new System.Drawing.Size(359, 102);
this.label4.TabIndex = 3;
this.label4.Text = "label4";
//
......@@ -984,10 +972,10 @@
this.label3.AutoSize = true;
this.label3.Dock = System.Windows.Forms.DockStyle.Fill;
this.label3.Font = new System.Drawing.Font("宋体", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label3.Location = new System.Drawing.Point(708, 3);
this.label3.Location = new System.Drawing.Point(737, 3);
this.label3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(346, 89);
this.label3.Size = new System.Drawing.Size(361, 101);
this.label3.TabIndex = 2;
this.label3.Text = "label3";
//
......@@ -996,10 +984,10 @@
this.label2.AutoSize = true;
this.label2.Dock = System.Windows.Forms.DockStyle.Fill;
this.label2.Font = new System.Drawing.Font("宋体", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label2.Location = new System.Drawing.Point(356, 3);
this.label2.Location = new System.Drawing.Point(371, 3);
this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(345, 89);
this.label2.Size = new System.Drawing.Size(359, 101);
this.label2.TabIndex = 1;
this.label2.Text = "label2";
//
......@@ -1011,15 +999,62 @@
this.label1.Location = new System.Drawing.Point(5, 3);
this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(344, 89);
this.label1.Size = new System.Drawing.Size(359, 101);
this.label1.TabIndex = 0;
this.label1.Text = "label1";
//
// groupBox4
//
this.groupBox4.Controls.Add(this.btnClearStationRFID);
this.groupBox4.Controls.Add(this.label11);
this.groupBox4.Controls.Add(this.txtBoxLineName);
this.groupBox4.Controls.Add(this.btnUpdateStatus);
this.groupBox4.Controls.Add(this.btnGetStationRfid);
this.groupBox4.Controls.Add(this.label8);
this.groupBox4.Controls.Add(this.label7);
this.groupBox4.Controls.Add(this.txtBoxRFID);
this.groupBox4.Location = new System.Drawing.Point(800, 24);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(291, 185);
this.groupBox4.TabIndex = 38;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "操作";
//
// btnGetStationRfid
//
this.btnGetStationRfid.Location = new System.Drawing.Point(161, 23);
this.btnGetStationRfid.Margin = new System.Windows.Forms.Padding(2);
this.btnGetStationRfid.Name = "btnGetStationRfid";
this.btnGetStationRfid.Size = new System.Drawing.Size(125, 35);
this.btnGetStationRfid.TabIndex = 41;
this.btnGetStationRfid.Text = "获取接驳台RFID";
this.btnGetStationRfid.UseVisualStyleBackColor = true;
this.btnGetStationRfid.Click += new System.EventHandler(this.btnGetStationRfid_Click);
//
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(6, 155);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(0, 12);
this.label11.TabIndex = 45;
//
// btnClearStationRFID
//
this.btnClearStationRFID.Location = new System.Drawing.Point(161, 67);
this.btnClearStationRFID.Margin = new System.Windows.Forms.Padding(2);
this.btnClearStationRFID.Name = "btnClearStationRFID";
this.btnClearStationRFID.Size = new System.Drawing.Size(125, 35);
this.btnClearStationRFID.TabIndex = 46;
this.btnClearStationRFID.Text = "清除接驳台RFID";
this.btnClearStationRFID.UseVisualStyleBackColor = true;
this.btnClearStationRFID.Click += new System.EventHandler(this.btnClearStationRFID_Click);
//
// FrmMain
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1067, 656);
this.ClientSize = new System.Drawing.Size(1111, 735);
this.Controls.Add(this.tableLayoutPanel3);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmMain";
......@@ -1051,12 +1086,12 @@
this.tabPage3.ResumeLayout(false);
this.groupBox6.ResumeLayout(false);
this.groupBox6.PerformLayout();
this.groupBox7.ResumeLayout(false);
this.groupBox7.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.tableLayoutPanel4.ResumeLayout(false);
this.tableLayoutPanel6.ResumeLayout(false);
this.tableLayoutPanel6.PerformLayout();
this.groupBox4.ResumeLayout(false);
this.groupBox4.PerformLayout();
this.ResumeLayout(false);
}
......@@ -1100,7 +1135,6 @@
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5;
private System.Windows.Forms.GroupBox groupBox5;
private System.Windows.Forms.Label lblDestInfo;
private System.Windows.Forms.GroupBox groupBox7;
private System.Windows.Forms.Button btnUpdateStatus;
private System.Windows.Forms.TextBox txtBoxRFID;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel7;
......@@ -1136,6 +1170,11 @@
private System.Windows.Forms.DataGridView dgvUnlockInfo;
private System.Windows.Forms.TableLayoutPanel tblLayoutUnlock;
private System.Windows.Forms.DataGridView dgvUnlockDetail;
private System.Windows.Forms.GroupBox groupBox4;
private System.Windows.Forms.Button btnGetStationRfid;
private System.ComponentModel.BackgroundWorker backgroundWorker1;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.Button btnClearStationRFID;
}
}
......@@ -214,9 +214,9 @@ namespace AGVControl
}
dgvUnlockInfo.DataSource = bs; //赋值控件自动更新
dgvUnlockDetail.DataSource = bs2;
dgvUnlockDetail.DataSource = bs2;
}));
this.Invoke(new Action(()=>
this.Invoke(new Action(() =>
{
//grpUnlock.Text = "解绑总数:"+count;
}
......@@ -616,9 +616,11 @@ namespace AGVControl
{
Task.Factory.StartNew(() =>
{
AGVManager.UpdateStatus(txtBoxRFID.Text.ToUpper(), txtBoxLineName.Text.ToUpper());
bool rtn = AGVManager.UpdateStatus(txtBoxRFID.Text.ToUpper(), txtBoxLineName.Text.ToUpper());
this.Invoke(new Action(() => { label11.Text = rtn ? "状态上报成功" : "状态上报失败"; }));
Common.LogInfo(string.Format("手动上报状态 产线{0} 物料状态更新成功[{1}]", txtBoxLineName.Text.ToUpper(), txtBoxRFID.Text.ToUpper()));
txtBoxLineName.Text = "";
txtBoxRFID.Text = "";
});
}
catch (Exception ex)
......@@ -662,5 +664,23 @@ namespace AGVControl
}
}
private void btnGetStationRfid_Click(object sender, EventArgs e)
{
if (txtBoxLineName.Text.Equals(""))
return;
string res = AGVManager.GetRFIDs(txtBoxLineName.Text.ToUpper());
this.Invoke(new Action(() => { label11.Text = string.Format("由里到外料架顺序:{0}", res); }));
}
private void btnClearStationRFID_Click(object sender, EventArgs e)
{
if (!txtBoxLineName.Text.Equals("") && !txtBoxRFID.Text.Equals(""))
{
bool rtn = AGVManager.ClearRFID(txtBoxLineName.Text.ToUpper(), txtBoxRFID.Text.ToUpper());
this.Invoke(new Action(() => { label11.Text = rtn ? "清除接驳RFID成功:" + txtBoxLineName.Text + " " + txtBoxRFID.Text : "清除接驳RFID失败:" + txtBoxLineName.Text + " " + txtBoxRFID.Text; }));
txtBoxLineName.Text = "";
txtBoxRFID.Text = "";
}
}
}
}
......@@ -174,6 +174,9 @@
<metadata name="Column16.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="backgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
......
......@@ -51,7 +51,7 @@ namespace AGVControl
Common.control = new BLL.Control();
//获取节点位置
//Common.GetNodesPosition();
Common.GetNodesPosition();
Common.control.Start();
Common.server = new AgvServer();
Common.server.Start();
......
......@@ -56,7 +56,7 @@ namespace AGVControl
System.Threading.Interlocked.Increment(ref tmp);
EmptyCnt = tmp;
Rfids.Add(rfid, DateTime.Now.ToString("yyyy/MM/dd/HH:mm:ss,fff"));
// Common.WriteIni(NodeName, SettingString.EmptyShelfCnt, emptyCnt.ToString());
Common.WriteIni(NodeName, SettingString.EmptyShelfCnt, EmptyCnt.ToString());
//using (System.IO.StreamWriter file = new System.IO.StreamWriter(Common.CONFIG_PATH + "UnlockInfo.txt"))
//{
// foreach (var item in Rfids.Keys)
......@@ -83,8 +83,12 @@ namespace AGVControl
int tmp = EmptyCnt;
System.Threading.Interlocked.Decrement(ref tmp);
EmptyCnt = tmp;
Rfids.Remove(rfid);
//Common.WriteIni(nodeName, SettingString.EmptyShelfCnt, emptyCnt.ToString());
if (EmptyCnt.Equals(0) && Rfids.Count >0)
{
Rfids.Clear();
}
//Rfids.Remove(rfid);
Common.WriteIni(NodeName, SettingString.EmptyShelfCnt, EmptyCnt.ToString());
//using (System.IO.StreamWriter file = new System.IO.StreamWriter(Common.CONFIG_PATH + "UnlockInfo.txt"))
//{
// foreach (var item in Rfids.Keys)
......
......@@ -19,7 +19,7 @@ namespace AGVControl
/// </summary>
/// <param name="agvPlae">小车当前位置,空表示在待机位</param>
/// <param name="palce">空料架位置点</param>
public GoEmptyShelfLineJob(string agvPlae, string palce,string rfid)
public GoEmptyShelfLineJob(string agvPlae, string palce, string rfid)
{
EmptyShelfPlace = palce;
this.agvPlae = agvPlae;
......@@ -63,10 +63,12 @@ namespace AGVControl
// CurTaskState = st;
if (TakeEmptyStep.IsStep(TAKE_EMPTY_STEP.NONE))
{
if (nodeIdx == -1)
return null;
if (agvPlae.StartsWith(SettingString.C4_Name_Prefix) && EmptyShelfPlace.StartsWith(SettingString.D4_Name_Prefix))//4C->4D
{
TakeEmptyStep.ToNextStep(TAKE_EMPTY_STEP.WAIT_AGV_REACH_4D_DOOR);
runInfo = "去空料架产线" + EmptyShelfPlace + ",先前往4D门[" + agvPlae + "->" + EmptyShelfPlace + "]"+"[RFID="+RFID+"]";
runInfo = "去空料架产线" + EmptyShelfPlace + ",先前往4D门[" + agvPlae + "->" + EmptyShelfPlace + "]" + "[RFID=" + RFID + "]";
msg += runInfo;
TakeEmptyStep.Msg = msg;
Common.DoorMission(agv, SettingString.DoorCToD);
......@@ -76,15 +78,15 @@ namespace AGVControl
&& EmptyShelfPlace.StartsWith(SettingString.C4_Name_Prefix))//4D->4C
{
TakeEmptyStep.ToNextStep(TAKE_EMPTY_STEP.WAIT_AGV_REACH_4C_DOOR);
runInfo= "去空料架产线" + EmptyShelfPlace + ",先前往4C门[" + agvPlae + "->" + EmptyShelfPlace + "]" + "[RFID=" + RFID + "]";
runInfo = "去空料架产线" + EmptyShelfPlace + ",先前往4C门[" + agvPlae + "->" + EmptyShelfPlace + "]" + "[RFID=" + RFID + "]";
msg += runInfo;
TakeEmptyStep.Msg = msg;
Common.DoorMission(agv, SettingString.DoorDToC);
UpdateJobTaskInfo(agv.CurTaskName, agv.CurTaskID);
}
else if(agvPlae.StartsWith(SettingString.C4_Name_Prefix) && EmptyShelfPlace.StartsWith(SettingString.C4_Name_Prefix))
else if (agvPlae.StartsWith(SettingString.C4_Name_Prefix) && EmptyShelfPlace.StartsWith(SettingString.C4_Name_Prefix))
{
if(Common.Check4CTarget(agv, EmptyShelfPlace))//被占用
if (Common.Check4CTarget(agv, EmptyShelfPlace))//被占用
{
TakeEmptyStep.ToNextStep(TAKE_EMPTY_STEP.WAIT_REACH_TEMP_PLACE);
runInfo = "目的地" + EmptyShelfPlace + "有小车占用,先到临时待机位" + "[RFID=" + RFID + "]";
......@@ -92,8 +94,8 @@ namespace AGVControl
TakeEmptyStep.Msg = msg;
Common.MoveTo4CStandy(agv);
UpdateJobTaskInfo(agv.CurTaskName, agv.CurTaskID);
}
else
}
else
{
TakeEmptyStep.ToNextStep(TAKE_EMPTY_STEP.ASSIGN_AGV_TASK);
runInfo = "开始执行回收空料架任务[" + agvPlae + "->" + EmptyShelfPlace + "]" + "[RFID=" + RFID + "]";
......@@ -104,7 +106,7 @@ namespace AGVControl
else
{
TakeEmptyStep.ToNextStep(TAKE_EMPTY_STEP.ASSIGN_AGV_TASK);
runInfo= "开始执行回收空料架任务[" + agvPlae + "->" + EmptyShelfPlace + "]" + "[RFID=" + RFID + "]";
runInfo = "开始执行回收空料架任务[" + agvPlae + "->" + EmptyShelfPlace + "]" + "[RFID=" + RFID + "]";
msg += runInfo;
TakeEmptyStep.Msg = msg;
}
......@@ -164,7 +166,7 @@ namespace AGVControl
if (nodeIdx > -1)
{
TakeEmptyStep.ToNextStep(TAKE_EMPTY_STEP.WAIT_AGV_START_TASK);
runInfo= "AGV 添加任务:移动到" + EmptyShelfPlace + "[RFID=" + RFID + "]";
runInfo = "AGV 添加任务:移动到" + EmptyShelfPlace + "[RFID=" + RFID + "]";
msg += runInfo;
TakeEmptyStep.Msg = msg;
Common.MoveToNode(agv, EmptyShelfPlace);
......@@ -173,7 +175,7 @@ namespace AGVControl
else
{
TakeEmptyStep.ToNextStep(TAKE_EMPTY_STEP.ASSIGN_AGV_TASK);
runInfo= EmptyShelfPlace + " 不存在或未开启调用";
runInfo = EmptyShelfPlace + " 不存在或未开启调用";
msg += runInfo;
TakeEmptyStep.Msg = msg;
}
......@@ -183,7 +185,7 @@ namespace AGVControl
if (agv.CurTaskState.Equals(SettingString.Executing))
{
TakeEmptyStep.ToNextStep(TAKE_EMPTY_STEP.WAIT_REACH_PLACE);
runInfo= "AGV开始向目的地[" + EmptyShelfPlace + "]移动" + "[RFID=" + RFID + "]";
runInfo = "AGV开始向目的地[" + EmptyShelfPlace + "]移动" + "[RFID=" + RFID + "]";
msg += runInfo;
TakeEmptyStep.Msg = msg;
}
......@@ -203,7 +205,7 @@ namespace AGVControl
//else
{
TakeEmptyStep.ToNextStep(TAKE_EMPTY_STEP.WAIT_LINE_RESPONSE);
runInfo= "AGV到达 " + EmptyShelfPlace + " 向产线发送出料架请求[ReadyLeave]" + "[RFID=" + RFID + "]";
runInfo = "AGV到达 " + EmptyShelfPlace + " 向产线发送出料架请求[ReadyLeave]" + "[RFID=" + RFID + "]";
msg += runInfo;
TakeEmptyStep.Msg = msg;
if (nodeIdx == -1)
......@@ -222,9 +224,9 @@ namespace AGVControl
}
else if (TakeEmptyStep.IsStep(TAKE_EMPTY_STEP.WAIT_LINE_RESPONSE))
{
if(nodeIdx==-1)
if (nodeIdx == -1)
{
runInfo= EmptyShelfPlace + " 未开启调用";
runInfo = EmptyShelfPlace + " 未开启调用";
msg += runInfo;
TakeEmptyStep.Msg = msg;
return this;
......@@ -260,18 +262,23 @@ namespace AGVControl
{
ClientNode node = Common.nodeInfo[nodeIdx];
//回收空料架数量减少1
Common.missionManager.DelMission(EmptyShelfPlace,RFID);
runInfo= "空料架在[" + EmptyShelfPlace + "]进入小车完成" + "[RFID=" + RFID + "]";
Common.missionManager.DelMission(EmptyShelfPlace, RFID);
if (!agvPlae.Equals(SettingString.D4FeederOut) && !agvPlae.Equals(SettingString.C4FeederOut))
AGVManager.ClearRFID(EmptyShelfPlace, RFID);
runInfo = "空料架在[" + EmptyShelfPlace + "]进入小车完成" + "[RFID=" + RFID + "]";
msg += runInfo;
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);
else if (agv.RFID.StartsWith("D"))
//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"))
{
AGVManager.ClearRFID(EmptyShelfPlace, RFID);
return new EmptyShelfBackJob(EmptyShelfPlace, eShelfType.SmallShelf);
}
else if (agv.RFID.StartsWith("C"))
......@@ -285,7 +292,7 @@ namespace AGVControl
{
//链条停止
runInfo = "空料架在[" + EmptyShelfPlace + "]进入小车超时[" + timeOutValue.ToString("f1") + "秒],请检查料架进入小车的情况" + "[RFID=" + RFID + "]";
// msg += runInfo;
// msg += runInfo;
//TakeEmptyStep.Msg = msg;
}
......
......@@ -60,7 +60,7 @@ namespace AGVControl
{
return Common.missionManager.GetUnlockCnt(Name);
}
return -1;
return 0;
}
}
public string AliceName { get; set; }
......
......@@ -35,15 +35,12 @@ namespace AGVControl
{
if (!SettingString.C4_AGV_IPs.Contains(agv.IP))
continue;
if (agv.CurJob is GoEmptyShelfLineJob || agv.CurJob is EmptyShelfBackJob)
if (agv.CurJob is GoEmptyShelfLineJob)//|| agv.CurJob is EmptyShelfBackJob
{
emptyJobCnt++;
}
}
if ((SettingString.AGVCNT - emptyJobCnt).Equals(2))//保留2辆小车出满料架
{
return null;
}
//出工单料的目的地是否有空料架
if (Common.FindEmptyShelfBeforeSendFullShelf(out string nodeName,out rfid))
{
......@@ -61,6 +58,10 @@ namespace AGVControl
}
if (cnt < clientNode.EmptyShelfCnt)
{
if ((SettingString.AGVCNT / 2 - emptyJobCnt).Equals(2))//保留1辆小车出满料架
{
return null;
}
return new GoEmptyShelfLineJob(currentAgv.Place, nodeName,rfid);
}
}
......@@ -74,7 +75,13 @@ namespace AGVControl
{
int i = Common.agvInfo.FindIndex(s => s.CurJob is GoEmptyShelfLineJob && ((GoEmptyShelfLineJob)s.CurJob).EmptyShelfPlace.Equals(emptyNodeName));
if (i == -1)
return new GoEmptyShelfLineJob(currentAgv.Place, emptyNodeName,rfid);
{
if ((SettingString.AGVCNT / 2 - emptyJobCnt).Equals(2))//保留1辆小车出满料架
{
return null;
}
return new GoEmptyShelfLineJob(currentAgv.Place, emptyNodeName, rfid);
}
}
}
......
......@@ -38,15 +38,11 @@ namespace AGVControl
{
if (SettingString.C4_AGV_IPs.Contains(agv.IP))
continue;
if (agv.CurJob is GoEmptyShelfLineJob || agv.CurJob is EmptyShelfBackJob)
if (agv.CurJob is GoEmptyShelfLineJob)//|| agv.CurJob is EmptyShelfBackJob
{
emptyJobCnt++;
}
}
if ((SettingString.AGVCNT / 2 - emptyJobCnt).Equals(1))//保留1辆小车出满料架
{
return null;
}
//出工单料的目的地是否有空料架
if (Common.FindEmptyShelfBeforeSendFullShelf(out string nodeName,out rfid))
{
......@@ -66,6 +62,10 @@ namespace AGVControl
}
if (cnt < clientNode.EmptyShelfCnt)
{
if ((SettingString.AGVCNT / 2 - emptyJobCnt).Equals(1))//保留1辆小车出满料架
{
return null;
}
return new GoEmptyShelfLineJob(currentAgv.Place, nodeName,rfid);
}
}
......@@ -78,7 +78,13 @@ namespace AGVControl
{
int i = Common.agvInfo.FindIndex(s => s.CurJob is GoEmptyShelfLineJob && ((GoEmptyShelfLineJob)s.CurJob).EmptyShelfPlace.Equals(emptyNodeName));
if (i == -1)
return new GoEmptyShelfLineJob(currentAgv.Place, emptyNodeName,rfid);
{
if ((SettingString.AGVCNT / 2 - emptyJobCnt).Equals(1))//保留1辆小车出满料架
{
return null;
}
return new GoEmptyShelfLineJob(currentAgv.Place, emptyNodeName, rfid);
}
}
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!