Commit 6df6eeae 张东亮

一台车等电梯去充电-返回车遇移远成品-钢网接口地点优化

1 个父辈 75c914d5
...@@ -123,7 +123,7 @@ namespace Common ...@@ -123,7 +123,7 @@ namespace Common
try try
{ {
var wc = new MyWebClient(10000); var wc = new MyWebClient(30000);
if (string.IsNullOrEmpty(wc.Headers["Content-Type"])) if (string.IsNullOrEmpty(wc.Headers["Content-Type"]))
wc.Headers.Add("Content-Type", "application/json;charset=UTF-8"); wc.Headers.Add("Content-Type", "application/json;charset=UTF-8");
wc.Encoding = encoding; wc.Encoding = encoding;
......
...@@ -5,6 +5,7 @@ using DeviceLibrary.manager; ...@@ -5,6 +5,7 @@ using DeviceLibrary.manager;
using DeviceLibrary.service.model; using DeviceLibrary.service.model;
using log4net.Util; using log4net.Util;
using System; using System;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Web.UI.WebControls.WebParts; using System.Web.UI.WebControls.WebParts;
using System.Windows.Forms; using System.Windows.Forms;
...@@ -39,7 +40,7 @@ namespace DeviceLibrary ...@@ -39,7 +40,7 @@ namespace DeviceLibrary
/// <summary> /// <summary>
/// 等待人员操作超时时间 /// 等待人员操作超时时间
/// </summary> /// </summary>
public int WaitTimeOut = AppConfigHelper.GetIntValue(SettingString.WaitTimeout,5); public int WaitTimeOut = AppConfigHelper.GetIntValue(SettingString.WaitTimeout, 5);
/// <summary> /// <summary>
/// 根据任务状态继续执行任务 /// 根据任务状态继续执行任务
/// </summary> /// </summary>
...@@ -384,7 +385,7 @@ namespace DeviceLibrary ...@@ -384,7 +385,7 @@ namespace DeviceLibrary
{ {
AllocateTask(agv, $"{SettingString.PutShelfOn}"); AllocateTask(agv, $"{SettingString.PutShelfOn}");
} }
else if ((JobParam.GetMissionInfo().projectType.Equals(ProjectType.空台车领用)) && (JobParam.GetMissionInfo().shelfType==1)) else if ((JobParam.GetMissionInfo().projectType.Equals(ProjectType.空台车领用)) && (JobParam.GetMissionInfo().shelfType == 1))
{ {
AllocateTask(agv, $"{SettingString.PutShelfOn}{SettingString._Big}"); AllocateTask(agv, $"{SettingString.PutShelfOn}{SettingString._Big}");
} }
...@@ -425,7 +426,7 @@ namespace DeviceLibrary ...@@ -425,7 +426,7 @@ namespace DeviceLibrary
{ {
AllocateTask(agv, $"{SettingString.PutShelfOn}{SettingString._Big}"); AllocateTask(agv, $"{SettingString.PutShelfOn}{SettingString._Big}");
} }
else if ((missionInfo.projectType.Equals(ProjectType.空台车领用)) && (missionInfo.shelfType==1)) else if ((missionInfo.projectType.Equals(ProjectType.空台车领用)) && (missionInfo.shelfType == 1))
{ {
AllocateTask(agv, $"{SettingString.PutShelfOn}{SettingString._Big}"); AllocateTask(agv, $"{SettingString.PutShelfOn}{SettingString._Big}");
} }
...@@ -773,6 +774,18 @@ namespace DeviceLibrary ...@@ -773,6 +774,18 @@ namespace DeviceLibrary
{ {
JobParam.CallbackJob = new JobCallBack(type, callbackStep); JobParam.CallbackJob = new JobCallBack(type, callbackStep);
} }
protected bool HasMultiAgvs(AgvInfo agv)
{
try
{
var agvs = AGVManager.agvInfo.FindAll(s => s.Scope.Workshop.Equals(agv.Scope.Workshop));
if (agvs != null && agvs.Count > 1)
return true;
}
catch { }
return false;
}
} }
} }
...@@ -371,9 +371,26 @@ namespace DeviceLibrary ...@@ -371,9 +371,26 @@ namespace DeviceLibrary
{ {
if (LiftContext.CheckHasEmptyFinished(agv, JobParam.SrcNode.Name, out JobParam.LiftStatus)) if (LiftContext.CheckHasEmptyFinished(agv, JobParam.SrcNode.Name, out JobParam.LiftStatus))
{ {
JobParam.CurTargetNode = JobParam.SrcNode; MissionInfo missionInfo = MissionManager.GetMission(JobParam.LiftStatus?.missionId ?? "");
MissionManager.SetMissionOccupied(JobParam.GetMissionInfo().missionId, agv); if (missionInfo != null)
job = new SwitchShelfJob(JobParam); {
JobRunStep.ToNextStep(RunStep.SD_LiftToLine_23_ToShelfPlace);
runInfo = $"{JobParam.CurTargetNode.AliceName}已开门,内有成品空料车{missionInfo.missionId},去料架缓存点";//
ToTakeShelfOff(agv, SettingString.ShelfBuff);
JobRunStep.Msg = runInfo;
}
else
{
JobRunStep.ToNextStep(RunStep.SD_LiftToLine_22_ToStandby);
//设置电梯占用
//SetLiftOccupied(JobParam.CurTargetNode.Name, agv);
runInfo = $"{JobParam.CurTargetNode.AliceName}已开门,内有成品空料车但无工单信息,去待机点,需要手动清空电梯缓存并关闭电梯门";//
ToStandby(agv);
JobRunStep.Msg = runInfo;
}
//JobParam.CurTargetNode = JobParam.SrcNode;
//MissionManager.SetMissionOccupied(JobParam.GetMissionInfo().missionId, agv);
//job = new SwitchShelfJob(JobParam);
} }
else if (lift.LiftContext.IsDoorOpen(JobParam.SrcNode.Name, JobParam.GetMissionInfo().destinationFloor, agv)) else if (lift.LiftContext.IsDoorOpen(JobParam.SrcNode.Name, JobParam.GetMissionInfo().destinationFloor, agv))
{ {
...@@ -395,7 +412,7 @@ namespace DeviceLibrary ...@@ -395,7 +412,7 @@ namespace DeviceLibrary
return job; return job;
} }
} }
else if(agv.Battery>50&& agv.IsInCharge) else if(agv.Battery>50&& agv.IsInCharge && HasMultiAgvs(agv))
{ {
ChargePileManager.StopCharge(agv); ChargePileManager.StopCharge(agv);
ToStandby(agv); return job; ToStandby(agv); return job;
......
...@@ -224,7 +224,7 @@ namespace DeviceLibrary ...@@ -224,7 +224,7 @@ namespace DeviceLibrary
return job; return job;
} }
} }
else if (agv.Battery > 50 && agv.IsInCharge) else if (agv.Battery > 50 && agv.IsInCharge && HasMultiAgvs(agv))
{ {
ChargePileManager.StopCharge(agv); ChargePileManager.StopCharge(agv);
ToStandby(agv); return job; ToStandby(agv); return job;
......
...@@ -378,7 +378,7 @@ namespace DeviceLibrary.bean.job ...@@ -378,7 +378,7 @@ namespace DeviceLibrary.bean.job
return job; return job;
} }
} }
else if (agv.Battery > 50 && agv.IsInCharge) else if (agv.Battery > 50 && agv.IsInCharge&&HasMultiAgvs(agv))
{ {
ChargePileManager.StopCharge(agv); ChargePileManager.StopCharge(agv);
ToStandby(agv); return job; ToStandby(agv); return job;
......
...@@ -208,7 +208,7 @@ namespace DeviceLibrary ...@@ -208,7 +208,7 @@ namespace DeviceLibrary
return job; return job;
} }
} }
else if (agv.Battery > 50 && agv.IsInCharge) else if (agv.Battery > 50 && agv.IsInCharge && HasMultiAgvs(agv))
{ {
ChargePileManager.StopCharge(agv); ChargePileManager.StopCharge(agv);
ToStandby(agv); return job; ToStandby(agv); return job;
......
...@@ -22,16 +22,14 @@ namespace DeviceLibrary.bean.jobType ...@@ -22,16 +22,14 @@ namespace DeviceLibrary.bean.jobType
service.model.MissionInfo missionInfo = manager.MissionManager.ShelfBackMission(agv); service.model.MissionInfo missionInfo = manager.MissionManager.ShelfBackMission(agv);
if (missionInfo != null) if (missionInfo != null)
{ {
//if (!liftname.Equals(missionInfo?.liftName)) if (!liftname.Equals(missionInfo?.liftName))
// return null; return null;
if (CheckHasSameJob(agv,liftname)) if (CheckHasSameJob(agv, missionInfo.liftName))
{ {
return null; return null;
} }
if (AgvAtPlace(agv, liftname)) if (AgvAtPlace(agv, liftname))
return null; return null;
//if (service.model.MissionInfo.IsFinishedProdcut(missionInfo))
// return null;
Node src = manager.NodeManager.GetNode(liftname, NodeType.Lift); Node src = manager.NodeManager.GetNode(liftname, NodeType.Lift);
string[] dests = lift.destinationPoint.Split(','); string[] dests = lift.destinationPoint.Split(',');
Node dest = manager.NodeManager.GetNode(dests.Length > 1 ? dests[0] : lift.destinationPoint, NodeType.Node); Node dest = manager.NodeManager.GetNode(dests.Length > 1 ? dests[0] : lift.destinationPoint, NodeType.Node);
......
...@@ -20,6 +20,8 @@ namespace DeviceLibrary.bean.jobType ...@@ -20,6 +20,8 @@ namespace DeviceLibrary.bean.jobType
service.model.MissionInfo missionInfo = manager.MissionManager.GetSteelToLinesReceiveMission(agv); service.model.MissionInfo missionInfo = manager.MissionManager.GetSteelToLinesReceiveMission(agv);
if (missionInfo != null) if (missionInfo != null)
{ {
if (!liftname.Equals(missionInfo?.liftName))
return null;
Node src = manager.NodeManager.GetNode(liftname, NodeType.Lift); Node src = manager.NodeManager.GetNode(liftname, NodeType.Lift);
string[] dests = missionInfo.destinationPoint.Split(','); string[] dests = missionInfo.destinationPoint.Split(',');
Node dest = manager.NodeManager.GetNode(dests.Length > 1 ? dests[0] : lift.destinationPoint, NodeType.Node); Node dest = manager.NodeManager.GetNode(dests.Length > 1 ? dests[0] : lift.destinationPoint, NodeType.Node);
......
...@@ -485,7 +485,7 @@ namespace DeviceLibrary.lift ...@@ -485,7 +485,7 @@ namespace DeviceLibrary.lift
{ {
if (lifts.ContainsKey(liftId)) if (lifts.ContainsKey(liftId))
{ {
return lifts[liftId].LiftStatus; return lifts[liftId].LiftStatus.ToCopy();
} }
else else
return new LiftStatus(); return new LiftStatus();
......
using System; using Common;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
...@@ -48,5 +49,11 @@ namespace DeviceLibrary.lift ...@@ -48,5 +49,11 @@ namespace DeviceLibrary.lift
/// 成品空架子标识 /// 成品空架子标识
/// </summary> /// </summary>
public bool HasEmptyFinishedShelf { get; set; } = false; public bool HasEmptyFinishedShelf { get; set; } = false;
public LiftStatus ToCopy()
{
string str = JsonHelper.SerializeObject(this);
return JsonHelper.DeserializeJsonToObject<LiftStatus>(str);
}
} }
} }
...@@ -214,7 +214,7 @@ namespace DeviceLibrary ...@@ -214,7 +214,7 @@ namespace DeviceLibrary
StealResult stealResult = new StealResult(); StealResult stealResult = new StealResult();
stealResult.Msg = $"OK,3D"; stealResult.Msg = $"OK,3D";
//Place:3D_Enter:3D的⼩车⼊库 //Place:3D_Enter:3D的⼩车⼊库
if (Place.Equals("3D_Enter"))//立库出库,呼叫AGV if (Place.ToUpper().Equals("3D_ENTER"))//立库出库,呼叫AGV
{ {
MissionInfo missionInfo = new MissionInfo() MissionInfo missionInfo = new MissionInfo()
{ {
...@@ -237,20 +237,20 @@ namespace DeviceLibrary ...@@ -237,20 +237,20 @@ namespace DeviceLibrary
return stealResult; return stealResult;
} }
//DI_On/DI_Off 信号亮DI_On,没信号DI_Off //DI_On/DI_Off 信号亮DI_On,没信号DI_Off
if (Place.Equals("DI_Off")) if (Place.ToUpper().Equals("DI_OFF"))
{ {
manager.DataBufferManager.DockingOk = false; manager.DataBufferManager.DockingOk = false;
} }
else if (Place.Equals("DI_On")) else if (Place.ToUpper().Equals("DI_ON"))
{ {
manager.DataBufferManager.DockingOk = true; manager.DataBufferManager.DockingOk = true;
} }
//Leave 出料架,小车可以接料架离开 //Leave 出料架,小车可以接料架离开
else if (Place.Equals("Leave")) else if (Place.ToUpper().Equals("LEAVE"))
{ {
manager.DataBufferManager.LeaveLiku = true; manager.DataBufferManager.LeaveLiku = true;
} }
else if (Place.Equals("Detach"))//Detach 脱离架子 else if (Place.ToUpper().Equals("DETACH"))//Detach 脱离架子
{ {
if (!manager.DataBufferManager.DetachShelf) if (!manager.DataBufferManager.DetachShelf)
{ {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!