Commit cd07a8bd 张东亮

1

1 个父辈 37bd1b5a
......@@ -87,6 +87,7 @@ namespace AGV_UI
/// <param name="state"></param>
public void SetConnectState(bool state = false)
{
if (!this.IsHandleCreated) return;
Image image = Manager.SetConnState(state);
this.Invoke(new Action(() =>
{
......
......@@ -232,7 +232,7 @@ namespace DeviceLibrary
{
Agv_Info agv = AGVManager.agvInfo[i];
if (!agv.IsCon) continue; //AGV网络连接
if (!AGVManager.agvInfo[i].IsUse) continue; //AGV是否可用
if (!agv.IsUse) continue; //AGV是否可用
//Ready,Pause,Executing,Error
if (!AGVManager.agvInfo[i].StateID.Equals(eAGVState.Ready) && !AGVManager.agvInfo[i].StateID.Equals(eAGVState.Pause)
......
......@@ -19,7 +19,7 @@ namespace DeviceLibrary
/// 载空料架返回任务
/// </summary>
/// <param name="lineName">产线的节点名称</param>
public EmptyShelfBackJob(string emptyShelfPlace, eShelfType shelfType,string emptyShelfTargetPlace)
public EmptyShelfBackJob(string emptyShelfPlace, eShelfType shelfType, string emptyShelfTargetPlace)
{
EmptyShelfPlace = emptyShelfPlace;
this.shelfType = shelfType;
......@@ -61,22 +61,21 @@ namespace DeviceLibrary
if (jobStep.IsStep(EMPTY_SHELF_BACK_STEP.NONE))
{
//if (AGVManager.CheckBoxNeedShelfState(agv, out string nodeName))
//{
// EmptyShelfTargetPlace = nodeName;
// jobStep.ToNextStep(EMPTY_SHELF_BACK_STEP.WAIT_AGV_REACH_Target);
// runInfo = "从线体 [" + EmptyShelfPlace + "]送往" + EmptyShelfTargetPlace;
// msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
// jobStep.Msg = msg;
// if (!EmptyShelfTargetPlace.Equals(""))
// {
// MissionSys.AssignMission(agv, EmptyShelfTargetPlace);
// UpdateJobTaskInfo(agv);
// }
if (EmptyShelfPlace.Equals(SettingString.A1) && AGVManager.CheckBoxNeedShelfState(agv, out string nodeName))
{
EmptyShelfTargetPlace = nodeName;
jobStep.ToNextStep(EMPTY_SHELF_BACK_STEP.WAIT_AGV_REACH_Target);
runInfo = "从线体 [" + EmptyShelfPlace + "]送往" + EmptyShelfTargetPlace;
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
if (!EmptyShelfTargetPlace.Equals(""))
{
MissionSys.AssignMission(agv, EmptyShelfTargetPlace);
UpdateJobTaskInfo(agv);
}
//}
//else
if (AGVManager.CheckShelfStorageInState(agv))
}
else if (AGVManager.CheckShelfStorageInState(agv))
{
jobStep.ToNextStep(EMPTY_SHELF_BACK_STEP.WAIT_AGV_REACH_Target);
EmptyShelfTargetPlace = SettingString.A2;
......@@ -104,7 +103,7 @@ namespace DeviceLibrary
{
EmptyShelfTargetPlace = nodeName;
jobStep.ToNextStep(EMPTY_SHELF_BACK_STEP.WAIT_AGV_REACH_Target);
runInfo = "待机位检测到"+ EmptyShelfTargetPlace + "需要料架,送往 " + EmptyShelfTargetPlace;
runInfo = "待机位检测到" + EmptyShelfTargetPlace + "需要料架,送往 " + EmptyShelfTargetPlace;
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, EmptyShelfTargetPlace);
......
......@@ -250,8 +250,8 @@ namespace DeviceLibrary
/// <returns></returns>
public static bool CheckNeedEmptyShelf(Agv_Info agv, out string nodeName)
{
if (!CheckBoxNeedShelfState(agv, out nodeName))
nodeName = "";
//if (!CheckBoxNeedShelfState(agv, out nodeName))
{
if (CheckShelfStorageInState(agv))
{
......
......@@ -41,9 +41,9 @@ namespace AGVControl
//agvRunStep = new string[Common.agvInfo.Count];
for (int i = 0; i < AGVManager.agvInfo.Count; i++)
{
MiR_API.Get_IO_Status(AGVManager.agvInfo[i], out bool[] input, out bool[] output);
if (input != null && input.Length == 4)
AGVManager.agvInfo[i].IsExistShelf = input[3];
//MiR_API.Get_IO_Status(AGVManager.agvInfo[i], out bool[] input, out bool[] output);
//if (input != null && input.Length == 4)
// AGVManager.agvInfo[i].IsExistShelf = input[3];
flowLayoutPanel1.Controls.Add(AGVManager.agvInfo[i].StateKanban);
AddForm(AGVManager.agvInfo[i].Name, new Manual(AGVManager.agvInfo[i]));
AGVManager.agvInfo[i].StateKanban.Init();
......@@ -182,140 +182,147 @@ namespace AGVControl
string line = "";
Invoke(new Action(() =>
{
node = AGVManager.nodeInfo.Find(s => s.Name.Equals(SettingString.D1) && s.RFID.StartsWith(SettingString.ReelString_RFID_Prefix));
if (node != null)
try
{
if (!destInfoMap.ContainsKey(SettingString.D1))
node = AGVManager.nodeInfo.Find(s => s.Name.Equals(SettingString.D1) && s.RFID.StartsWith(SettingString.ReelString_RFID_Prefix));
if (node != null)
{
FindFullShelfTarget(node.RFID, out destInfo);
if (destInfo != null)
if (!destInfoMap.ContainsKey(SettingString.D1))
{
lblD1.Text = destInfo.ToString();
destInfoMap.Add(SettingString.D1, node.RFID);
if (!destInfo.data.ToLower().Equals("none") && !AGVManager.GetLineNameByNodeName(destInfo.data, out line))
FindFullShelfTarget(node.RFID, out destInfo);
if (destInfo != null)
{
lblD1Warn.Text = string.Format("{0}的料架[{1}]目的地不存在:{2}\r\n", node.LineName, node.RFID, destInfo.data);
}
lblD1.Text = destInfo.ToString();
destInfoMap.Add(SettingString.D1, node.RFID);
if (!destInfo.data.ToLower().Equals("none") && !AGVManager.GetLineNameByNodeName(destInfo.data, out line))
{
lblD1Warn.Text = string.Format("{0}的料架[{1}]目的地不存在:{2}\r\n", node.LineName, node.RFID, destInfo.data);
}
}
else
{
lblD1Warn.Text = string.Format("{0}的料架[{1}]请求服务端无反馈\r\n", node.LineName, node.RFID);
}
}
else if (!destInfoMap[SettingString.D1].Equals(node.RFID))
{
FindFullShelfTarget(node.RFID, out destInfo);
if (destInfo != null)
{
lblD1.Text = destInfo.ToString();
destInfoMap[SettingString.D1] = node.RFID;
if (!destInfo.data.ToLower().Equals("none") && !AGVManager.GetLineNameByNodeName(destInfo.data, out line))
{
lblD1Warn.Text = string.Format("{0}的料架[{1}]目的地不存在:{2}\r\n", node.LineName, destInfo.data);
}
else
{
lblD1Warn.Text = string.Format("{0}的料架[{1}]请求服务端无反馈\r\n", node.LineName, node.RFID);
}
}
else if (!destInfoMap[SettingString.D1].Equals(node.RFID))
{
FindFullShelfTarget(node.RFID, out destInfo);
if (destInfo != null)
{
lblD1.Text = destInfo.ToString();
destInfoMap[SettingString.D1] = node.RFID;
if (!destInfo.data.ToLower().Equals("none") && !AGVManager.GetLineNameByNodeName(destInfo.data, out line))
{
lblD1Warn.Text = string.Format("{0}的料架[{1}]目的地不存在:{2}\r\n", node.LineName, destInfo.data);
}
else
{
lblD1Warn.Text = string.Format("{0}的料架[{1}]请求服务端无反馈\r\n", node.LineName, node.RFID);
}
}
}
}
else
{
lblD1.Text = "";
lblD1Warn.Text = "";
if (destInfoMap.ContainsKey(SettingString.D1))
destInfoMap.Remove(SettingString.D1);
}
}
else
{
lblD1.Text = "";
lblD1Warn.Text = "";
if (destInfoMap.ContainsKey(SettingString.D1))
destInfoMap.Remove(SettingString.D1);
}
node = AGVManager.nodeInfo.Find(s => s.Name.Equals(SettingString.D2) && s.RFID.StartsWith(SettingString.ReelString_RFID_Prefix));
if (node != null)
{
if (!destInfoMap.ContainsKey(SettingString.D2))
node = AGVManager.nodeInfo.Find(s => s.Name.Equals(SettingString.D2) && s.RFID.StartsWith(SettingString.ReelString_RFID_Prefix));
if (node != null)
{
FindFullShelfTarget(node.RFID, out destInfo);
if (destInfo != null)
if (!destInfoMap.ContainsKey(SettingString.D2))
{
lblD2.Text = destInfo.ToString();
destInfoMap.Add(SettingString.D2, node.RFID);
if (!destInfo.data.ToLower().Equals("none") && !AGVManager.GetLineNameByNodeName(destInfo.data, out line))
FindFullShelfTarget(node.RFID, out destInfo);
if (destInfo != null)
{
lblD2Warn.Text = string.Format("{0}的料架[{1}]目的地不存在:{2}\r\n", node.LineName, node.RFID, destInfo.data);
lblD2.Text = destInfo.ToString();
destInfoMap.Add(SettingString.D2, node.RFID);
if (!destInfo.data.ToLower().Equals("none") && !AGVManager.GetLineNameByNodeName(destInfo.data, out line))
{
lblD2Warn.Text = string.Format("{0}的料架[{1}]目的地不存在:{2}\r\n", node.LineName, node.RFID, destInfo.data);
}
}
else
{
lblD2Warn.Text = string.Format("{0}的料架[{1}]请求服务端无反馈\r\n", node.LineName, node.RFID);
}
}
else
{
lblD2Warn.Text = string.Format("{0}的料架[{1}]请求服务端无反馈\r\n", node.LineName, node.RFID);
}
}
else if (!destInfoMap[SettingString.D2].Equals(node.RFID))
{
FindFullShelfTarget(node.RFID, out destInfo);
if (destInfo != null)
else if (!destInfoMap[SettingString.D2].Equals(node.RFID))
{
lblD2.Text = destInfo.ToString();
destInfoMap[SettingString.D2] = node.RFID;
if (!destInfo.data.ToLower().Equals("none") && !AGVManager.GetLineNameByNodeName(destInfo.data, out line))
FindFullShelfTarget(node.RFID, out destInfo);
if (destInfo != null)
{
lblD2Warn.Text = string.Format("{0}的料架[{1}]目的地不存在:{2}\r\n", node.LineName, node.RFID, destInfo.data);
lblD2.Text = destInfo.ToString();
destInfoMap[SettingString.D2] = node.RFID;
if (!destInfo.data.ToLower().Equals("none") && !AGVManager.GetLineNameByNodeName(destInfo.data, out line))
{
lblD2Warn.Text = string.Format("{0}的料架[{1}]目的地不存在:{2}\r\n", node.LineName, node.RFID, destInfo.data);
}
}
else
lblD2Warn.Text = string.Format("{0}的料架[{1}]请求服务端无反馈\r\n", node.LineName, node.RFID);
}
else
lblD2Warn.Text = string.Format("{0}的料架[{1}]请求服务端无反馈\r\n", node.LineName, node.RFID);
}
}
else
{
lblD2.Text = "";
lblD2Warn.Text = "";
if (destInfoMap.ContainsKey(SettingString.D2))
destInfoMap.Remove(SettingString.D2);
}
else
{
lblD2.Text = "";
lblD2Warn.Text = "";
if (destInfoMap.ContainsKey(SettingString.D2))
destInfoMap.Remove(SettingString.D2);
}
node = AGVManager.nodeInfo.Find(s => s.Name.Equals(SettingString.D3) && s.RFID.StartsWith(SettingString.ReelString_RFID_Prefix));
if (node != null)
{
if (!destInfoMap.ContainsKey(SettingString.D3))
node = AGVManager.nodeInfo.Find(s => s.Name.Equals(SettingString.D3) && s.RFID.StartsWith(SettingString.ReelString_RFID_Prefix));
if (node != null)
{
FindFullShelfTarget(node.RFID, out destInfo);
if (destInfo != null)
if (!destInfoMap.ContainsKey(SettingString.D3))
{
lblD3.Text = destInfo.ToString();
destInfoMap.Add(SettingString.D3, node.RFID);
if (!destInfo.data.ToLower().Equals("none") && !AGVManager.GetLineNameByNodeName(destInfo.data, out line))
FindFullShelfTarget(node.RFID, out destInfo);
if (destInfo != null)
{
lblD3Warn.Text = string.Format("{0}的料架[{1}]目的地不存在:{2}\r\n", node.LineName, node.RFID, destInfo.data);
lblD3.Text = destInfo.ToString();
destInfoMap.Add(SettingString.D3, node.RFID);
if (!destInfo.data.ToLower().Equals("none") && !AGVManager.GetLineNameByNodeName(destInfo.data, out line))
{
lblD3Warn.Text = string.Format("{0}的料架[{1}]目的地不存在:{2}\r\n", node.LineName, node.RFID, destInfo.data);
}
}
else
lblD3Warn.Text = string.Format("{0}的料架[{1}]请求服务端无反馈\r\n", node.LineName, node.RFID);
}
else
lblD3Warn.Text = string.Format("{0}的料架[{1}]请求服务端无反馈\r\n", node.LineName, node.RFID);
}
else if (!destInfoMap[SettingString.D3].Equals(node.RFID))
{
FindFullShelfTarget(node.RFID, out destInfo);
if (destInfo != null)
else if (!destInfoMap[SettingString.D3].Equals(node.RFID))
{
lblD3.Text = destInfo.ToString();
destInfoMap[SettingString.D3] = node.RFID;
if (!destInfo.data.ToLower().Equals("none") && !AGVManager.GetLineNameByNodeName(destInfo.data, out line))
FindFullShelfTarget(node.RFID, out destInfo);
if (destInfo != null)
{
lblD3Warn.Text = string.Format("{0}的料架[{1}]目的地不存在:{2}\r\n", node.LineName, node.RFID, destInfo.data);
lblD3.Text = destInfo.ToString();
destInfoMap[SettingString.D3] = node.RFID;
if (!destInfo.data.ToLower().Equals("none") && !AGVManager.GetLineNameByNodeName(destInfo.data, out line))
{
lblD3Warn.Text = string.Format("{0}的料架[{1}]目的地不存在:{2}\r\n", node.LineName, node.RFID, destInfo.data);
}
}
else
lblD3Warn.Text = string.Format("{0}的料架[{1}]请求服务端无反馈\r\n", node.LineName, node.RFID);
}
else
lblD3Warn.Text = string.Format("{0}的料架[{1}]请求服务端无反馈\r\n", node.LineName, node.RFID);
}
}
else
else
{
lblD3.Text = "";
lblD3Warn.Text = "";
if (destInfoMap.ContainsKey(SettingString.D3))
destInfoMap.Remove(SettingString.D3);
}
}catch(Exception ex)
{
lblD3.Text = "";
lblD3Warn.Text = "";
if (destInfoMap.ContainsKey(SettingString.D3))
destInfoMap.Remove(SettingString.D3);
LogUtil.error("ShowTimer_Elapsed", ex);
}
Application.DoEvents();
}));
......
......@@ -146,8 +146,10 @@ namespace AGVControl
if (taskName.Equals(SettingString.Enter) || taskName.Equals(SettingString.Leave))
if (MessageBox.Show("确定对小车发送进/出任务?", Agv.Name, MessageBoxButtons.YesNo) == DialogResult.No)
return;
MissionSys.AssignMission(Agv, taskName);
LogUtil.info(string.Format("{0} 手动发任务 [{1}]", Agv.Name, cmbBxMission.SelectedItem.ToString()));
Task.Factory.StartNew(delegate {
MissionSys.AssignMission(Agv, taskName);
LogUtil.info(string.Format("{0} 手动发任务 [{1}]", Agv.Name, taskName));
});
}
}
catch (Exception ex)
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!