Commit 163e080f 张东亮

看板更新

1 个父辈 5f8512a7
...@@ -1342,6 +1342,7 @@ namespace AGVControl ...@@ -1342,6 +1342,7 @@ namespace AGVControl
return st; return st;
return SettingString.Wait; return SettingString.Wait;
} }
} }
public static class API public static class API
......
...@@ -76,7 +76,6 @@ namespace BLL ...@@ -76,7 +76,6 @@ namespace BLL
{ {
if (!Common.nodeInfo[j].Online) if (!Common.nodeInfo[j].Online)
{ {
isAlarm = true;
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", "离线"));
} }
} }
...@@ -111,43 +110,41 @@ namespace BLL ...@@ -111,43 +110,41 @@ namespace BLL
rtn = Common.mir.Get_IO_Status(Common.agvInfo[i], out bool[] input, out bool[] output); rtn = Common.mir.Get_IO_Status(Common.agvInfo[i], out bool[] input, out bool[] output);
Common.log.Debug("获取IO状态"); Common.log.Debug("获取IO状态");
//if (Common.agvInfo[i].StateID.Equals(eAGVState.Docking))
//{
// if (!Common.agvInfo[i].StateID.Equals(preAGVState))
// {
// Common.agvInfo[i].DockingStartTime = DateTime.Now;
// }
// else
// {
// if ((DateTime.Now - Common.agvInfo[i].DockingStartTime).TotalMinutes >= 1)
// {
// isAlarm = true;
// msglist.Add(new AlarmMsg(Common.agvInfo[i].Name, "lineAgv." + Common.agvInfo[i].Name + ".Docking", "停靠超时:" + (DateTime.Now - Common.agvInfo[i].DockingStartTime).TotalSeconds + "秒"));
// }
// }
//}
preAGVState = Common.agvInfo[i].StateID; preAGVState = Common.agvInfo[i].StateID;
if (Common.agvInfo[i].StandTimeOut)
{
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") + "分钟"));
}
//if (battery <= 10)
//{
// isAlarm = true;
// msglist.Add(new AlarmMsg(Common.agvInfo[i].Name, "lineAgv." + Common.agvInfo[i].Name + ".battery", "电量 " + battery.ToString() + "%"));
//}
if (stateText.Equals("Error") || stateText.Equals("EmergencyStop") || stateText.Equals("Pause")) if (stateText.Equals("Error") || stateText.Equals("EmergencyStop") || stateText.Equals("Pause"))
{ {
isAlarm = true; isAlarm = true;
msglist.Add(new AlarmMsg(Common.agvInfo[i].Name, "lineAgv." + Common.agvInfo[i].Name + ".Error.EmergencyStop", "agv状态:" + stateText + ";" + mission_text)); msglist.Add(new AlarmMsg(Common.agvInfo[i].Name, "lineAgv." + Common.agvInfo[i].Name + ".Error.EmergencyStop", "agv状态:" + stateText + ""));
}
if (!isAlarm)
{
try
{
if ((Common.agvInfo[i].Place.Contains(SettingString.AutoCharge) || Common.agvInfo[i].Place.Contains(SettingString.Standby)) && mission_text.Contains("正在等待新任务"))
{
msglist.Add(new AlarmMsg(Common.agvInfo[i].Name, "lineAgv." + Common.agvInfo[i].Name + ".Place", Common.agvInfo[i].Place, 1));
}
if (!Common.agvInfo[i].Msg.Equals(""))
msglist.Add(new AlarmMsg(Common.agvInfo[i].Name, "lineAgv." + Common.agvInfo[i].Name + ".Msg", Common.agvInfo[i].Msg, 1));
}
catch (Exception ex)
{
Common.log.Error(Common.agvInfo[i].Name + "上报小车运行步骤失败" + ex.Message + ex.StackTrace);
}
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
Common.log.Error("AgvStateTimer_" + Common.agvInfo[i].Name + ex.Message + ex.StackTrace); Common.log.Error("AgvStateTimer_" + Common.agvInfo[i].Name + ex.Message + ex.StackTrace);
} }
} }
if (isAlarm)
BLL.AGVManager.updateDeviceAlarmMsg(msglist); BLL.AGVManager.updateDeviceAlarmMsg(msglist);
......
...@@ -88,7 +88,6 @@ ...@@ -88,7 +88,6 @@
this.btnAddMission = new System.Windows.Forms.Button(); this.btnAddMission = new System.Windows.Forms.Button();
this.cmbBoxLineName = new System.Windows.Forms.ComboBox(); this.cmbBoxLineName = new System.Windows.Forms.ComboBox();
this.groupBox2 = new System.Windows.Forms.GroupBox(); this.groupBox2 = new System.Windows.Forms.GroupBox();
this.btnClearC4StandyInfo = new System.Windows.Forms.Button();
this.BtnMissionPause = new System.Windows.Forms.Button(); this.BtnMissionPause = new System.Windows.Forms.Button();
this.BtnClearError = new System.Windows.Forms.Button(); this.BtnClearError = new System.Windows.Forms.Button();
this.BtnMissionAdd = new System.Windows.Forms.Button(); this.BtnMissionAdd = new System.Windows.Forms.Button();
...@@ -102,6 +101,7 @@ ...@@ -102,6 +101,7 @@
this.label3 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label();
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.btnReSendTask = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.DgvAgv)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.DgvAgv)).BeginInit();
this.tableLayoutPanel3.SuspendLayout(); this.tableLayoutPanel3.SuspendLayout();
this.tabControl1.SuspendLayout(); this.tabControl1.SuspendLayout();
...@@ -662,11 +662,8 @@ ...@@ -662,11 +662,8 @@
this.tabPage3.Controls.Add(this.groupBox7); this.tabPage3.Controls.Add(this.groupBox7);
this.tabPage3.Controls.Add(this.groupBox6); this.tabPage3.Controls.Add(this.groupBox6);
this.tabPage3.Controls.Add(this.groupBox2); this.tabPage3.Controls.Add(this.groupBox2);
this.tabPage3.Controls.Add(this.BtnMissionPause);
this.tabPage3.Controls.Add(this.BtnClearError);
this.tabPage3.Controls.Add(this.BtnMissionAdd); this.tabPage3.Controls.Add(this.BtnMissionAdd);
this.tabPage3.Controls.Add(this.LstAgvPlace); this.tabPage3.Controls.Add(this.LstAgvPlace);
this.tabPage3.Controls.Add(this.BtnMissionReady);
this.tabPage3.Location = new System.Drawing.Point(4, 25); this.tabPage3.Location = new System.Drawing.Point(4, 25);
this.tabPage3.Margin = new System.Windows.Forms.Padding(4); this.tabPage3.Margin = new System.Windows.Forms.Padding(4);
this.tabPage3.Name = "tabPage3"; this.tabPage3.Name = "tabPage3";
...@@ -778,30 +775,22 @@ ...@@ -778,30 +775,22 @@
// //
// groupBox2 // groupBox2
// //
this.groupBox2.Controls.Add(this.btnClearC4StandyInfo); this.groupBox2.Controls.Add(this.btnReSendTask);
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(935, 30); this.groupBox2.Location = new System.Drawing.Point(935, 30);
this.groupBox2.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.groupBox2.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.groupBox2.Name = "groupBox2"; this.groupBox2.Name = "groupBox2";
this.groupBox2.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2); this.groupBox2.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.groupBox2.Size = new System.Drawing.Size(203, 151); this.groupBox2.Size = new System.Drawing.Size(349, 221);
this.groupBox2.TabIndex = 32; this.groupBox2.TabIndex = 32;
this.groupBox2.TabStop = false; this.groupBox2.TabStop = false;
this.groupBox2.Text = "操作"; this.groupBox2.Text = "操作";
// //
// btnClearC4StandyInfo
//
this.btnClearC4StandyInfo.Location = new System.Drawing.Point(21, 24);
this.btnClearC4StandyInfo.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnClearC4StandyInfo.Name = "btnClearC4StandyInfo";
this.btnClearC4StandyInfo.Size = new System.Drawing.Size(100, 65);
this.btnClearC4StandyInfo.TabIndex = 44;
this.btnClearC4StandyInfo.Text = "清除4C待机位占用";
this.btnClearC4StandyInfo.UseVisualStyleBackColor = true;
this.btnClearC4StandyInfo.Click += new System.EventHandler(this.btnClearC4StandyInfo_Click);
//
// BtnMissionPause // BtnMissionPause
// //
this.BtnMissionPause.Location = new System.Drawing.Point(691, 201); this.BtnMissionPause.Location = new System.Drawing.Point(202, 19);
this.BtnMissionPause.Margin = new System.Windows.Forms.Padding(4); this.BtnMissionPause.Margin = new System.Windows.Forms.Padding(4);
this.BtnMissionPause.Name = "BtnMissionPause"; this.BtnMissionPause.Name = "BtnMissionPause";
this.BtnMissionPause.Size = new System.Drawing.Size(100, 65); this.BtnMissionPause.Size = new System.Drawing.Size(100, 65);
...@@ -812,7 +801,7 @@ ...@@ -812,7 +801,7 @@
// //
// BtnClearError // BtnClearError
// //
this.BtnClearError.Location = new System.Drawing.Point(539, 201); this.BtnClearError.Location = new System.Drawing.Point(47, 128);
this.BtnClearError.Margin = new System.Windows.Forms.Padding(4); this.BtnClearError.Margin = new System.Windows.Forms.Padding(4);
this.BtnClearError.Name = "BtnClearError"; this.BtnClearError.Name = "BtnClearError";
this.BtnClearError.Size = new System.Drawing.Size(100, 65); this.BtnClearError.Size = new System.Drawing.Size(100, 65);
...@@ -846,7 +835,7 @@ ...@@ -846,7 +835,7 @@
// //
// BtnMissionReady // BtnMissionReady
// //
this.BtnMissionReady.Location = new System.Drawing.Point(396, 201); this.BtnMissionReady.Location = new System.Drawing.Point(47, 24);
this.BtnMissionReady.Margin = new System.Windows.Forms.Padding(4); this.BtnMissionReady.Margin = new System.Windows.Forms.Padding(4);
this.BtnMissionReady.Name = "BtnMissionReady"; this.BtnMissionReady.Name = "BtnMissionReady";
this.BtnMissionReady.Size = new System.Drawing.Size(100, 65); this.BtnMissionReady.Size = new System.Drawing.Size(100, 65);
...@@ -897,7 +886,7 @@ ...@@ -897,7 +886,7 @@
// //
this.label6.AutoSize = true; this.label6.AutoSize = true;
this.label6.Dock = System.Windows.Forms.DockStyle.Fill; this.label6.Dock = System.Windows.Forms.DockStyle.Fill;
this.label6.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 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(944, 119); this.label6.Location = new System.Drawing.Point(944, 119);
this.label6.Name = "label6"; this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(461, 114); this.label6.Size = new System.Drawing.Size(461, 114);
...@@ -908,7 +897,7 @@ ...@@ -908,7 +897,7 @@
// //
this.label5.AutoSize = true; this.label5.AutoSize = true;
this.label5.Dock = System.Windows.Forms.DockStyle.Fill; this.label5.Dock = System.Windows.Forms.DockStyle.Fill;
this.label5.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 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(475, 119); this.label5.Location = new System.Drawing.Point(475, 119);
this.label5.Name = "label5"; this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(460, 114); this.label5.Size = new System.Drawing.Size(460, 114);
...@@ -919,7 +908,7 @@ ...@@ -919,7 +908,7 @@
// //
this.label4.AutoSize = true; this.label4.AutoSize = true;
this.label4.Dock = System.Windows.Forms.DockStyle.Fill; this.label4.Dock = System.Windows.Forms.DockStyle.Fill;
this.label4.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 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(6, 119); this.label4.Location = new System.Drawing.Point(6, 119);
this.label4.Name = "label4"; this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(460, 114); this.label4.Size = new System.Drawing.Size(460, 114);
...@@ -930,7 +919,7 @@ ...@@ -930,7 +919,7 @@
// //
this.label3.AutoSize = true; this.label3.AutoSize = true;
this.label3.Dock = System.Windows.Forms.DockStyle.Fill; this.label3.Dock = System.Windows.Forms.DockStyle.Fill;
this.label3.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 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(944, 3); this.label3.Location = new System.Drawing.Point(944, 3);
this.label3.Name = "label3"; this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(461, 113); this.label3.Size = new System.Drawing.Size(461, 113);
...@@ -941,7 +930,7 @@ ...@@ -941,7 +930,7 @@
// //
this.label2.AutoSize = true; this.label2.AutoSize = true;
this.label2.Dock = System.Windows.Forms.DockStyle.Fill; this.label2.Dock = System.Windows.Forms.DockStyle.Fill;
this.label2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 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(475, 3); this.label2.Location = new System.Drawing.Point(475, 3);
this.label2.Name = "label2"; this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(460, 113); this.label2.Size = new System.Drawing.Size(460, 113);
...@@ -952,13 +941,24 @@ ...@@ -952,13 +941,24 @@
// //
this.label1.AutoSize = true; this.label1.AutoSize = true;
this.label1.Dock = System.Windows.Forms.DockStyle.Fill; this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
this.label1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.label1.Font = new System.Drawing.Font("宋体", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label1.Location = new System.Drawing.Point(6, 3); this.label1.Location = new System.Drawing.Point(6, 3);
this.label1.Name = "label1"; this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(460, 113); this.label1.Size = new System.Drawing.Size(460, 113);
this.label1.TabIndex = 0; this.label1.TabIndex = 0;
this.label1.Text = "label1"; this.label1.Text = "label1";
// //
// btnReSendTask
//
this.btnReSendTask.Location = new System.Drawing.Point(202, 128);
this.btnReSendTask.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnReSendTask.Name = "btnReSendTask";
this.btnReSendTask.Size = new System.Drawing.Size(100, 65);
this.btnReSendTask.TabIndex = 45;
this.btnReSendTask.Text = "任务重发";
this.btnReSendTask.UseVisualStyleBackColor = true;
this.btnReSendTask.Click += new System.EventHandler(this.btnReSendTask_Click);
//
// FrmMain // FrmMain
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
...@@ -1056,7 +1056,6 @@ ...@@ -1056,7 +1056,6 @@
private System.Windows.Forms.GroupBox groupBox8; private System.Windows.Forms.GroupBox groupBox8;
private System.Windows.Forms.Label lblCharge4; private System.Windows.Forms.Label lblCharge4;
private System.Windows.Forms.Label lblCharge3; private System.Windows.Forms.Label lblCharge3;
private System.Windows.Forms.Button btnClearC4StandyInfo;
private System.Windows.Forms.Label lblStandy2; private System.Windows.Forms.Label lblStandy2;
private System.Windows.Forms.Label lblStandy1; private System.Windows.Forms.Label lblStandy1;
private System.Windows.Forms.TextBox txtBoxLineName; private System.Windows.Forms.TextBox txtBoxLineName;
...@@ -1073,6 +1072,7 @@ ...@@ -1073,6 +1072,7 @@
private System.Windows.Forms.DataGridViewTextBoxColumn Column13; private System.Windows.Forms.DataGridViewTextBoxColumn Column13;
private System.Windows.Forms.DataGridViewTextBoxColumn Column19; private System.Windows.Forms.DataGridViewTextBoxColumn Column19;
private System.Windows.Forms.DataGridViewButtonColumn Column11; private System.Windows.Forms.DataGridViewButtonColumn Column11;
private System.Windows.Forms.Button btnReSendTask;
} }
} }
...@@ -233,7 +233,7 @@ namespace AGVControl ...@@ -233,7 +233,7 @@ namespace AGVControl
Common.LogInfo(string.Format("手动开启小车自动模式,并清除上一次的自动模式的运行信息{0} {1}", Common.agvInfo[e.RowIndex].Name, Common.agvInfo[e.RowIndex].RunInfo())); Common.LogInfo(string.Format("手动开启小车自动模式,并清除上一次的自动模式的运行信息{0} {1}", Common.agvInfo[e.RowIndex].Name, Common.agvInfo[e.RowIndex].RunInfo()));
Common.agvInfo[e.RowIndex].CurJob = null; Common.agvInfo[e.RowIndex].CurJob = null;
Common.agvInfo[e.RowIndex].RFID = ""; Common.agvInfo[e.RowIndex].RFID = "";
Common.agvInfo[e.RowIndex].Place = ""; // Common.agvInfo[e.RowIndex].Place = "";
Common.agvInfo[e.RowIndex].IsUse = true; Common.agvInfo[e.RowIndex].IsUse = true;
// } // }
//else //else
...@@ -313,15 +313,15 @@ namespace AGVControl ...@@ -313,15 +313,15 @@ namespace AGVControl
if (idx < 0) return; if (idx < 0) return;
if (Common.agvInfo[idx].IsCon) if (Common.agvInfo[idx].IsCon)
{ {
if (Common.agvInfo[idx].IsUse) if (!Common.agvInfo[idx].IsUse)
{ //{
if (MessageBox.Show("确定在自动模式下对小车手动分配任务?", Common.agvInfo[idx].Name, MessageBoxButtons.YesNo) == DialogResult.No) // if (MessageBox.Show("确定在自动模式下对小车手动分配任务?", Common.agvInfo[idx].Name, MessageBoxButtons.YesNo) == DialogResult.No)
return; // return;
Common.agvInfo[idx].Resend(); // Common.agvInfo[idx].Resend();
//Common.agvInfo[idx].TaskSend = LstAgvPlace.Text; // //Common.agvInfo[idx].TaskSend = LstAgvPlace.Text;
Common.LogInfo("手动添加任务:[" + Common.agvInfo[idx].Name + "][" + Common.agvInfo[idx].CurTaskName + "]"); // Common.LogInfo("手动添加任务:[" + Common.agvInfo[idx].Name + "][" + Common.agvInfo[idx].CurTaskName + "]");
} //}
else //else
{ {
bool rtn = Common.mir.Add_Mission_Fleet(Common.agvInfo[idx], Common.agvMission[Common.showNameMissionName[LstAgvPlace.Text]]); bool rtn = Common.mir.Add_Mission_Fleet(Common.agvInfo[idx], Common.agvMission[Common.showNameMissionName[LstAgvPlace.Text]]);
if (!rtn) if (!rtn)
...@@ -339,7 +339,7 @@ namespace AGVControl ...@@ -339,7 +339,7 @@ namespace AGVControl
//{ //{
// Common.StandbyStation.C4_Station2 = ""; // Common.StandbyStation.C4_Station2 = "";
//} //}
DgvAgv.Rows[idx].SetValues(Common.agvInfo[idx].ToRow());
} }
} }
...@@ -365,26 +365,16 @@ namespace AGVControl ...@@ -365,26 +365,16 @@ namespace AGVControl
Invoke(new Action(() => Invoke(new Action(() =>
{ {
List<AlarmMsg> msglist = new List<AlarmMsg>();
//bool change = false;
for (int i = 0; i < Common.agvInfo.Count; i++) for (int i = 0; i < Common.agvInfo.Count; i++)
{ {
try try
{ {
agvRunInfo[i].Text = Common.agvInfo[i].RunInfo(); agvRunInfo[i].Text = Common.agvInfo[i].RunInfo();
if (!Common.agvInfo[i].Msg.Equals(""))
msglist.Add(new AlarmMsg(Common.agvInfo[i].Name, "lineAgv." + Common.agvInfo[i].Name + ".Msg", Common.agvInfo[i].Msg, 1));
} }
catch (Exception ex) catch (Exception ex)
{ {
Common.log.Error("上报小车运行步骤失败" + ex.Message + ex.StackTrace);
} }
} }
//if (change)
BLL.AGVManager.updateDeviceAlarmMsg(msglist);
if (!Common.doubleLine_WO.Equals("")) if (!Common.doubleLine_WO.Equals(""))
lblWO.Text = Common.doubleLine_WO; lblWO.Text = Common.doubleLine_WO;
...@@ -632,5 +622,34 @@ namespace AGVControl ...@@ -632,5 +622,34 @@ namespace AGVControl
Common.StandbyStation.C4_Station1 = ""; Common.StandbyStation.C4_Station1 = "";
Common.StandbyStation.C4_Station2 = ""; Common.StandbyStation.C4_Station2 = "";
} }
private void btnReSendTask_Click(object sender, EventArgs e)
{
if (DgvAgv.SelectedCells.Count == 0) return;
int idx = DgvAgv.SelectedCells[0].RowIndex;
if (idx < 0) return;
if (Common.agvInfo[idx].IsCon)
{
if (Common.agvInfo[idx].IsUse)
{
if (MessageBox.Show("确定在自动模式下对小车重发任务?", Common.agvInfo[idx].Name, MessageBoxButtons.YesNo) == DialogResult.No)
return;
Common.agvInfo[idx].Resend();
Common.mir.State_Ready(Common.agvInfo[idx]);
//Common.agvInfo[idx].TaskSend = LstAgvPlace.Text;
Common.LogInfo("手动重发任务:[" + Common.agvInfo[idx].Name + "][" + Common.agvInfo[idx].CurTaskName + "]");
}
////清除4c临时待机位的占用
//if (Common.agvInfo[idx].Name.Equals(Common.StandbyStation.C4_Station1))
//{
// Common.StandbyStation.C4_Station1 = "";
//}
//else if (Common.agvInfo[idx].Name.Equals(Common.StandbyStation.C4_Station2))
//{
// Common.StandbyStation.C4_Station2 = "";
//}
DgvAgv.Rows[idx].SetValues(Common.agvInfo[idx].ToRow());
}
}
} }
} }
...@@ -183,23 +183,39 @@ namespace AGVControl ...@@ -183,23 +183,39 @@ namespace AGVControl
} }
if (RFID.StartsWith("C")) if (RFID.StartsWith("C"))
{ {
return string.Format("Name:{1}{0}RFID:{2}{0}CurJob:{3}{0}CurJobTaskInfo:[TaskName={4}][TaskID={5}][TaskState={6}]{0}RunInfo:{7}{0}BoxDestInfo:{8}{0}GetRack:{9}{0}MissionText:{10}", return string.Format("设备:{1}{0}RFID:{2}{0}任务信息:[任务名称={3}][任务状态:{4}]{0}当前步骤:{5}{0}执行信息:{6}",
"\r\n", Name, RFID, CurJob.ToString(), curJobTaskName, curJobTaskID, curJobTaskState, Msg, BoxDestInfo, BLL.AGVManager.GetRackBy(RFID), MissionText); "\r\n", Name, RFID, curJobTaskName, curJobTaskState, Msg, MissionText);
} }
else if (RFID.StartsWith("D")) else if (RFID.StartsWith("D"))
{ {
return string.Format("Name:{1}{0}RFID:{2}{0}CurJob:{3}{0}CurJobTaskInfo:[TaskName={4}][TaskID={5}][TaskState={6}]{0}RunInfo:{7}{0}BoxDestInfo:{8}{0}MissionText:{9}", return string.Format("设备:{1}{0}RFID:{2}{0}任务信息:[任务名称={3}][任务状态={4}]{0}当前步骤:{5}{0}执行信息:{6}",
"\r\n", Name, RFID, CurJob.ToString(), curJobTaskName, curJobTaskID, curJobTaskState, Msg, BoxDestInfo, MissionText); "\r\n", Name, RFID, curJobTaskName, curJobTaskState, Msg, MissionText);
} }
else else
return string.Format("Name:{1}{0}RFID:{2}{0}CurJob:{3}{0}CurJobTaskInfo:[TaskName={4}][TaskID={5}][TaskState={6}]{0}RunInfo:{7}{0}MissionText:{8}", return string.Format("设备:{1}{0}RFID:{2}{0}任务信息:[任务名称={3}][任务状态={4}]{0}当前步骤:{5}{0}执行信息:{6}",
"\r\n", Name, RFID, CurJob.ToString(), curJobTaskName, curJobTaskID, curJobTaskState, Msg, MissionText); "\r\n", Name, RFID, curJobTaskName, curJobTaskState, Msg, MissionText);
//if (RFID.StartsWith("C"))
//{
// return string.Format("Name:{1}{0}RFID:{2}{0}CurJob:{3}{0}CurJobTaskInfo:[TaskName={4}][TaskID={5}][TaskState={6}]{0}RunInfo:{7}{0}BoxDestInfo:{8}{0}GetRack:{9}{0}MissionText:{10}",
// "\r\n", Name, RFID, CurJob.ToString(), curJobTaskName, curJobTaskID, curJobTaskState, Msg, BoxDestInfo, BLL.AGVManager.GetRackBy(RFID), MissionText);
//}
//else if (RFID.StartsWith("D"))
//{
// return string.Format("Name:{1}{0}RFID:{2}{0}CurJob:{3}{0}CurJobTaskInfo:[TaskName={4}][TaskID={5}][TaskState={6}]{0}RunInfo:{7}{0}BoxDestInfo:{8}{0}MissionText:{9}",
// "\r\n", Name, RFID, CurJob.ToString(), curJobTaskName, curJobTaskID, curJobTaskState, Msg, BoxDestInfo, MissionText);
//}
//else
// return string.Format("Name:{1}{0}RFID:{2}{0}CurJob:{3}{0}CurJobTaskInfo:[TaskName={4}][TaskID={5}][TaskState={6}]{0}RunInfo:{7}{0}MissionText:{8}",
// "\r\n", Name, RFID, CurJob.ToString(), curJobTaskName, curJobTaskID, curJobTaskState, Msg, MissionText);
} }
else else
return string.Format("Name:{1}{0}RFID:{2}{0}CurTaskInfo:[TaskName={3}][TaskID={4}][TaskState={5}]{0}MissionText:{6}", return string.Format("设备:{1}{0}RFID:{2}{0}任务信息:[任务名称={3}][任务状态={4}]{0}执行信息:{5}",
"\r\n", Name, RFID, curJobTaskName, curJobTaskID, curJobTaskState, MissionText); "\r\n", Name, RFID, curJobTaskName, curJobTaskState, MissionText);
//return string.Format("Name:{1}{0}RFID:{2}{0}CurTaskInfo:[TaskName={3}][TaskID={4}][TaskState={5}]{0}MissionText:{6}",
// "\r\n", Name, RFID, curJobTaskName, curJobTaskID, curJobTaskState, MissionText);
} }
/// <summary> /// <summary>
/// 任务重发 /// 任务重发
...@@ -241,6 +257,10 @@ namespace AGVControl ...@@ -241,6 +257,10 @@ namespace AGVControl
} }
} }
/// <summary>
/// 停在同一处超时
/// </summary>
public bool StandTimeOut { get; set; } = false;
public Agv_Info(string id, string name, string ip, string authorization, string ioID, bool isUse, string rfid) public Agv_Info(string id, string name, string ip, string authorization, string ioID, bool isUse, string rfid)
{ {
ID = id; ID = id;
...@@ -258,6 +278,8 @@ namespace AGVControl ...@@ -258,6 +278,8 @@ namespace AGVControl
DateTime IoStartTime = DateTime.MaxValue; DateTime IoStartTime = DateTime.MaxValue;
int IoLastTime = 5000; int IoLastTime = 5000;
int StandLastTimeMinute = 5;
public DateTime StandStartTime = DateTime.MaxValue;
public bool SetState(eAGVState stateID, string stateText, int battery, string missionText, clsPosition position) public bool SetState(eAGVState stateID, string stateText, int battery, string missionText, clsPosition position)
{ {
bool isChange = false; bool isChange = false;
...@@ -300,10 +322,39 @@ namespace AGVControl ...@@ -300,10 +322,39 @@ namespace AGVControl
CurTaskState = stateText; CurTaskState = stateText;
Battery = battery; Battery = battery;
MissionText = missionText; MissionText = missionText;
Position = position; CheckStandTimeOut(position);
return isChange; return isChange;
} }
/// <summary>
/// 检查小车是否在原地停留超时
/// </summary>
/// <returns></returns>
private void CheckStandTimeOut(clsPosition position)
{
if (IsUse && CurJob !=null && !(CurJob is ChargeJob) && !CurTaskName.Contains(SettingString.AutoCharge) && !CurTaskName.Contains(SettingString.Standby))
{
if (Math.Abs(position.x - Position.x) < 1 && Math.Abs(position.y - Position.y) < 1)
{
//满足条件,计算持续时间
if (StandStartTime == DateTime.MaxValue)
{
StandStartTime = DateTime.Now;
}
TimeSpan lastTimeSpan = DateTime.Now - StandStartTime;
StandTimeOut = (lastTimeSpan.TotalMinutes >= StandLastTimeMinute);
}
else
{
//重新计时
StandStartTime = DateTime.Now;
StandTimeOut = false;
}
}
Position = position;
}
//public void GetPlace(int value) //public void GetPlace(int value)
//{ //{
// // Common.log.Debug(Name + " PLC20=" + value); // // Common.log.Debug(Name + " PLC20=" + value);
......
2020-08-29 21:42:35,E1
2020-08-29 21:42:49,E22
2020-08-29 21:42:55,G5
[MiR_R1763]
RFID=
IsUse=False
[MiR_R1764]
RFID=
[MiR_R1767]
RFID=
[MiR_R1768]
RFID=
[MiR_R1579]
RFID=
[MiR_R1580]
RFID=
IsUse=True
[E1]
EmptyShelfCnt=1
IsUse=True
[A5]
IsUse=False
[E2]
EmptyShelfCnt=0
IsUse=False
[E22]
EmptyShelfCnt=1
[G5]
EmptyShelfCnt=1
[G9]
IsUse=False
[A6]
IsUse=False
...@@ -54,4 +54,3 @@ D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine ...@@ -54,4 +54,3 @@ D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\bin\Debug\Newtonsoft.Json.dll D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\bin\Debug\Newtonsoft.Json.dll
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\bin\Debug\AsaPL.AgvClient.pdb D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\bin\Debug\AsaPL.AgvClient.pdb
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\obj\Debug\AGVControl-ProductionLine.csprojAssemblyReference.cache D:\OneDrive - 上海挚锦科技有限公司\SMD\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
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!