Commit 3806a146 LN

出库时未读到料架号,直接送出料架

1 个父辈 2cb0822d
......@@ -155,14 +155,17 @@ namespace OnlineStore.ACPackingStore
lblWarnMsg.Text = BoxBean.GetWarnMsg();
lblMoveInfo.Text = BoxBean.GetMoveStr();
if (BoxBean.MoveInfo.MoveType.Equals(StoreMoveType.OutStore) || BoxBean.MoveInfo.MoveType.Equals(StoreMoveType.InStore))
if ( BoxBean.MoveInfo.MoveType.Equals(StoreMoveType.InStore))
{
lblMoveEquipInfo.Text ="入库:"+ BoxBean.MoveInfo.MoveParam.ToShortStr();
lblMoveEquipInfo.Text = "入库:" + BoxBean.MoveInfo.MoveParam.ToShortStr();
}
else if (BoxBean.MoveInfo.MoveType.Equals(StoreMoveType.OutStore) )
{
lblMoveEquipInfo.Text = "出库:" + BoxBean.MoveInfo.MoveParam.ToShortStr();
}
else
{
lblMoveEquipInfo.Text ="";
lblMoveEquipInfo.Text = "";
// lblMoveEquipInfo.Text = "";
}
//ReadPosistion();
......
......@@ -109,7 +109,7 @@ BoxConfig_1.csv 和 BoxConfig_2.csv 需要增加一行配置:
PRO,压紧轴(轴4)七寸盘压紧前点相对压紧点的位置,CompAxis7_P3_P2_Value,-50000,,,,,,,
20200410
修改问题:
料架号不一致,送出料架时料架信息使用上次的。
出库时发现料架对不上,送出料架时发的mark应该用原来的
......@@ -118,7 +118,7 @@ PRO,压紧轴(轴4)七寸盘压紧前点相对压紧点的位置,CompAxis7_P
agv到达时,根据rfid判断是否有料架
出库时未读到料架号,直接送出料架
......
......@@ -995,17 +995,6 @@ namespace OnlineStore.DeviceLibrary
{
//判断是否需要送出料架
bool isNeedSend = false;
//包装料料仓料架=A
//if (AutoInout.autoNext)
//{
// InOutStoreLog("出库完成,自动出入库启动中,不需要送出料架");
// isNeedSend = false;
//}
//else if (EmprtShelfList.Count <= 0)
//{
// InOutStoreLog("出库完成,料架【" + CurrShelfID + "】没有剩余位置,送出料架");
// isNeedSend = true;
//}
string logName = "【" + CurrShelfID + "】【" + GetLastRfid() + "】";
//只有rfid不为空才需要送出料架
if (String.IsNullOrEmpty(MoveInfo.MoveParam.rfid))
......
......@@ -27,7 +27,7 @@ namespace OnlineStore.DeviceLibrary
private void ShelfEnterProcess()
{
string mark = GetMarkInfo();
string moveName = "入库料架[" + mark + "]";
string moveName = "入库料架[" + CurrShelfID + "]";
bool instoreShelf = true;
if (MoveInfo.MoveType.Equals(StoreMoveType.OutStore))
{
......@@ -70,7 +70,7 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_04_WaitTakeSingle))
{
MoveInfo.NextMoveStep(StoreMoveStep.BI_05_LineStop);
InOutStoreLog(moveName + MoveInfo.SLog + "调用AgvClient.FinishEnter,取料位检测到信号,停止线体正转");
InOutStoreLog(moveName + MoveInfo.SLog + "调用Agv "+ Config.AgvNodeName + " FinishEnter,取料位检测到信号,停止线体正转");
LineStop();
AgvClient.SetStatus(Config.AgvNodeName, mark, "", ClientAction.FinishEnter, ClientLevel.High, true);
......@@ -106,13 +106,33 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_07_LineRun))
{
LineStop();
UpdateShelfId();
//如果未读到料架号,将料架送出
if (CurrShelfID.EndsWith("00") && MoveInfo.MoveType.Equals(StoreMoveType.OutStore))
{
LogInfo(" 执行出库【" + MoveInfo.MoveParam.ToStr() + "】失败,料架号[" + CurrShelfID + "]无效,加入等待队列");
waitOutStoreList.Enqueue(MoveInfo.MoveParam);
LogUtil.error(Name + "出库 料架号[" + CurrShelfID + "]无效,送出料架,稍后重新出库");
MoveInfo.MoveParam.rfid = CurrShelfID;
//送出料架,并且记录出库信息,等会重新出库
StartShelfOut();
return;
}
MoveInfo.NextMoveStep(StoreMoveStep.BI_08_LocationUp);
InOutStoreLog(moveName + MoveInfo.SLog + "停止线体,读取料架,设置"+ Config.AgvNodeName + "=None");
InOutStoreLog(moveName + MoveInfo.SLog + "停止线体,读取料架"+CurrShelfID+",设置"+ Config.AgvNodeName + "=None");
AgvClient.SetStatus(Config.AgvNodeName);
// CylinderMove(MoveInfo, IO_Type.LocationCylinder_Down, IO_Type.LocationCylinder_Up);
if (!instoreShelf)
{
if (MoveInfo.MoveParam.ShelfPosID.Equals(""))
{
MoveInfo.MoveParam.UpdateShelfPosId(ShelfPosList[0]);
InOutStoreLog("出库 " + MoveInfo.SLog + ": ShelfPosID未设置,默认ShelfPosID=" + MoveInfo.MoveParam.ShelfPosID);
}
// LastRfidID = MoveInfo.MoveParam.rfid;
LastOutParam = MoveInfo.MoveParam;
InOutStoreLog("出库 " + MoveInfo.SLog + ":叉子进入库位中, 进出轴至P3(库位取放料点) ");
......@@ -123,7 +143,6 @@ namespace OnlineStore.DeviceLibrary
LastOutParam = new InOutParam();
// LastRfidID = "";
}
UpdateShelfId();
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_08_LocationUp))
{
......@@ -181,14 +200,19 @@ namespace OnlineStore.DeviceLibrary
{
string mark = defualtMark;
//如果料架号是空,需要送到VMI线
if (MoveInfo.MoveType.Equals(StoreMoveType.OutStore))
{
if (CurrShelfID.EndsWith("00"))
{
mark = defualtMark;
}
//包装料会发往分盘区, 紧急料区, 包装线区
// urgentReel 这个为true是紧急料 出到紧急料区
// cutReel 为true是分盘料,AGV会拉到到分盘区
//料串会发到分盘区和紧急料区
//两个都为false 包装料默认拉到包装线体, 料串默认拉到紧急料区
if (MoveInfo.MoveParam.urgentReel)
else if (MoveInfo.MoveParam.urgentReel)
{
//紧急料,需要到紧急料区
mark = MoveInfo.MoveParam.rfid + ",urgent";
......@@ -205,35 +229,7 @@ namespace OnlineStore.DeviceLibrary
}
return mark;
}
//private void LogCPU()
//{
// try
// {
// Process[] processes = Process.GetProcesses();
// long totalMemery = 0;
// StringBuilder sbResult = new StringBuilder();
// int interval = 1000;
// var prevCpuTime = TimeSpan.Zero;
// foreach (Process process in processes)
// {
// if (process.ProcessName.EndsWith("ACPackingStore"))
// {
// sbResult.AppendFormat(DateTime.Now.ToLongTimeString() + Name+ ", 名称:{0} 内存:{1}M ", process.ProcessName, process.PrivateMemorySize64 / 1024 / 1024F);
// totalMemery += process.PrivateMemorySize64 / 1024;
// double value = (process.TotalProcessorTime - prevCpuTime).TotalMilliseconds / interval / Environment.ProcessorCount;
// sbResult.AppendFormat(" CPU : " + Math.Round(value, 2) + "%");
// // string result = string.Format("进程总数 {0} 个,共占内存:{1}MB \n", processes.Length, totalMemery / 1024) + sbResult.ToString();
// LogUtil.info(sbResult.ToString());
// }
// }
// }
// catch (Exception ex)
// {
// LogUtil.error("LogM Error: " + ex.ToString());
// }
//}
private void ShelfOutProcess()
{
string mark = GetMarkInfo();
......
......@@ -161,7 +161,7 @@ namespace OnlineStore.DeviceLibrary
}
public string ToShortStr()
{
return " [" + PosID + "][" + ShelfPosID + "][" + PlateW + "x" + PlateH + "][" + WareCode + "]";
return "["+rfid+"][" + PosID + "][" + ShelfPosID + "][" + PlateW + "x" + PlateH + "][" + WareCode + "]";
}
internal void UpdateShelfPosId(string pId)
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!