Commit 2974d919 LN

增加出料线禁用框

1 个父辈 5b55cc5a
...@@ -75,7 +75,14 @@ namespace OnlineStore.AssemblyLine ...@@ -75,7 +75,14 @@ namespace OnlineStore.AssemblyLine
{ {
启用蜂鸣器ToolStripMenuItem.Text = "启用蜂鸣器"; 启用蜂鸣器ToolStripMenuItem.Text = "启用蜂鸣器";
} }
if (TrayManager.DisTraySave)
{
自动保存托盘信息ToolStripMenuItem.Text = "自动保存托盘信息";
}
else
{
自动保存托盘信息ToolStripMenuItem.Text = gouStr + "自动保存托盘信息";
}
LogUtil.logBox = this.logBox; LogUtil.logBox = this.logBox;
lastLogTime = DateTime.Now.AddMinutes(-10); lastLogTime = DateTime.Now.AddMinutes(-10);
this.Opacity = 100; this.Opacity = 100;
...@@ -1014,9 +1021,8 @@ namespace OnlineStore.AssemblyLine ...@@ -1014,9 +1021,8 @@ namespace OnlineStore.AssemblyLine
} }
} }
} }
#endregion
#endregion
#region ListView显示 #region ListView显示
...@@ -1243,5 +1249,58 @@ namespace OnlineStore.AssemblyLine ...@@ -1243,5 +1249,58 @@ namespace OnlineStore.AssemblyLine
//} //}
#endregion #endregion
private void 自动保存托盘信息ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (!LoadOk)
{
return;
}
bool result = 自动保存托盘信息ToolStripMenuItem.Text.Contains(gouStr);
if (result.Equals( TrayManager.DisTraySave))
{
return;
}
TrayManager.DisTraySave = result;
ConfigAppSettings.SaveValue(Setting_Init.DisTraySave, (TrayManager.DisTraySave ? 1 : 0));
if (TrayManager.DisTraySave)
{
自动保存托盘信息ToolStripMenuItem.Text = "自动保存托盘信息";
}
else
{
自动保存托盘信息ToolStripMenuItem.Text = gouStr + " 自动保存托盘信息";
}
LogUtil.info(Name + " 点击:" + 自动保存托盘信息ToolStripMenuItem.Text);
}
private void chbLeftDis_CheckedChanged(object sender, EventArgs e)
{
if (!LoadOk)
{
return;
}
if (LineManager.DisLeftOutLine.Equals(chbLeftDis.Checked))
{
return;
}
LineManager.DisLeftOutLine = chbLeftDis.Checked;
LogUtil.error("用户点击勾选:" + chbLeftDis.Text+"="+ LineManager.DisLeftOutLine);
}
private void chbRightDis_CheckedChanged(object sender, EventArgs e)
{
if (!LoadOk)
{
return;
}
if (LineManager.DisRightOutLine.Equals(chbRightDis.Checked))
{
return;
}
LineManager.DisRightOutLine = chbRightDis.Checked;
LogUtil.error("用户点击勾选:" + chbRightDis.Text + "="+ LineManager.DisRightOutLine);
}
} }
} }
...@@ -101,5 +101,7 @@ namespace OnlineStore.Common ...@@ -101,5 +101,7 @@ namespace OnlineStore.Common
public static string UseHCBoard = "UseHCBoard"; public static string UseHCBoard = "UseHCBoard";
public static string ConfigPath_TrayList = "ConfigPath_TrayList"; public static string ConfigPath_TrayList = "ConfigPath_TrayList";
public static string DisTraySave = "DisTraySave";
} }
} }
...@@ -309,11 +309,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -309,11 +309,11 @@ namespace OnlineStore.DeviceLibrary
TrayManager.TrayErrorMsg = DateTime.Now.ToLongTimeString() + " " + Name + "托盘号出现错乱:上一个托盘[" + preTrayNum + "] 当前托盘 [" + currTrayNum + "],连续两个托盘号一样"; TrayManager.TrayErrorMsg = DateTime.Now.ToLongTimeString() + " " + Name + "托盘号出现错乱:上一个托盘[" + preTrayNum + "] 当前托盘 [" + currTrayNum + "],连续两个托盘号一样";
LogUtil.error(Name + "托盘号错乱:上一个托盘[" + preTrayNum + "] 当前托盘 [" + currTrayNum + "],连续两个托盘号一样"); LogUtil.error(Name + "托盘号错乱:上一个托盘[" + preTrayNum + "] 当前托盘 [" + currTrayNum + "],连续两个托盘号一样");
} }
else if (!TrayManager.CheckIsRightNum(currTrayNum, preTrayNum)) //else if (!TrayManager.CheckIsRightNum(currTrayNum, preTrayNum))
{ //{
TrayManager.TrayErrorMsg = DateTime.Now.ToLongTimeString() + " " + Name + "托盘号出现错乱:上一个托盘[" + preTrayNum + "] 当前托盘 [" + currTrayNum + "],托盘号不连续"; // TrayManager.TrayErrorMsg = DateTime.Now.ToLongTimeString() + " " + Name + "托盘号出现错乱:上一个托盘[" + preTrayNum + "] 当前托盘 [" + currTrayNum + "],托盘号不连续";
LogUtil.error(Name + "托盘号错乱:上一个托盘[" + preTrayNum + "] 当前托盘 [" + currTrayNum + "],托盘号不连续"); // LogUtil.error(Name + "托盘号错乱:上一个托盘[" + preTrayNum + "] 当前托盘 [" + currTrayNum + "],托盘号不连续");
} //}
return true; return true;
} }
internal void ClearTrayRFID() internal void ClearTrayRFID()
......
...@@ -757,6 +757,16 @@ namespace OnlineStore.DeviceLibrary ...@@ -757,6 +757,16 @@ namespace OnlineStore.DeviceLibrary
{ {
try try
{ {
//判断是否禁用
if(LineManager.DisLeftOutLine&&(DeviceID.Equals(204) || DeviceID.Equals(209)))
{
return false;
}
if(LineManager.DisRightOutLine&& (DeviceID.Equals(213) || DeviceID.Equals(216)))
{
return false;
}
if (Config.IsOutLineIn && trayNum > 0) if (Config.IsOutLineIn && trayNum > 0)
{ {
//测线满时不需要横移 //测线满时不需要横移
......
...@@ -142,6 +142,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -142,6 +142,7 @@ namespace OnlineStore.DeviceLibrary
private int GetRobotIndex() private int GetRobotIndex()
{ {
//机器人索引号
int robotIndex = 1; int robotIndex = 1;
if (DeviceID.Equals(212)) if (DeviceID.Equals(212))
{ {
......
...@@ -746,24 +746,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -746,24 +746,15 @@ namespace OnlineStore.DeviceLibrary
bool isNeed = false; bool isNeed = false;
UpdateTrayNum(); UpdateTrayNum();
bool isFull = TrayManager.TrayIsFull(currTrayNum); bool isFull = TrayManager.TrayIsFull(currTrayNum);
if (TrayManager.RightTrayCode(currTrayNum, preTrayNum, false))
//出库中,需要拦盘
if (CheckIsNeedOutStore())
{ {
//出库中,需要拦盘 isNeed = true;
if (CheckIsNeedOutStore())
{
isNeed = true;
}
else if (isFull && IsInStoreNeed())
{
isNeed = true;
}
} }
else else if (isFull && IsInStoreNeed())
{ {
string msg = Name + " 托盘顺序错乱,上个托盘号【" + preTrayNum + "】当前托盘号 【" + currTrayNum + "】最大盘号【" + TrayManager.MaxTrayNum + "】"; isNeed = true;
TrayManager.UpdateTrayNumError(DeviceID, msg);
LogUtil.error(msg);
return;
} }
if (isNeed) if (isNeed)
{ {
...@@ -780,9 +771,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -780,9 +771,7 @@ namespace OnlineStore.DeviceLibrary
TrayManager.UpdateTrayNumError(-1, ""); TrayManager.UpdateTrayNumError(-1, "");
} }
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_15_WaitCanGo); SecondMoveInfo.NextMoveStep(LineMoveStep.MO_15_WaitCanGo);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(100)); SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(100));
//CheckLog("托盘放行 " + SecondMoveInfo.SLog + " ,等待 NextStopCheck=0");
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.NextStopCheck, IO_VALUE.LOW));
} }
} }
......
...@@ -14,6 +14,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -14,6 +14,10 @@ namespace OnlineStore.DeviceLibrary
{ {
public class LineManager public class LineManager
{ {
public static bool DisLeftOutLine = false ;
public static bool DisRightOutLine = false ;
public static bool UseBuzzer = ConfigAppSettings.GetIntValue(Setting_Init.UseBuzzer).Equals(1); public static bool UseBuzzer = ConfigAppSettings.GetIntValue(Setting_Init.UseBuzzer).Equals(1);
private static bool isInit = false; private static bool isInit = false;
public static bool IsConnectServer = !ConfigAppSettings.GetValue(Setting_Init.http_server).Equals(""); public static bool IsConnectServer = !ConfigAppSettings.GetValue(Setting_Init.http_server).Equals("");
......
...@@ -15,15 +15,16 @@ namespace OnlineStore.DeviceLibrary ...@@ -15,15 +15,16 @@ namespace OnlineStore.DeviceLibrary
{ {
public class TrayManager public class TrayManager
{ {
public static bool DisTraySave = ConfigAppSettings.GetIntValue(Setting_Init.DisTraySave).Equals(1);
/// <summary> /// <summary>
/// 托盘集合,key=托盘编号,value=托盘详细信息 /// 托盘集合,key=托盘编号,value=托盘详细信息
/// </summary> /// </summary>
private static ConcurrentDictionary<int, TrayInfo> TrayInfoMap = new ConcurrentDictionary<int, TrayInfo>(); private static ConcurrentDictionary<int, TrayInfo> TrayInfoMap = new ConcurrentDictionary<int, TrayInfo>();
/// <summary> ///// <summary>
/// 最大托盘号,必须按照顺序从1到6走过 ///// 最大托盘号,必须按照顺序从1到6走过
/// </summary> ///// </summary>
internal static int MaxTrayNum = 0; //internal static int MaxTrayNum = 0;
/// <summary> /// <summary>
/// 托盘错误消息 /// 托盘错误消息
/// </summary> /// </summary>
...@@ -123,33 +124,33 @@ namespace OnlineStore.DeviceLibrary ...@@ -123,33 +124,33 @@ namespace OnlineStore.DeviceLibrary
} }
public static bool NeedCheckTray = ConfigAppSettings.GetIntValue(Setting_Init.NeedCheckTray).Equals(1); public static bool NeedCheckTray = ConfigAppSettings.GetIntValue(Setting_Init.NeedCheckTray).Equals(1);
internal static bool CheckIsRightNum(int trayNum, int preTrayNum, bool isCanUpdateMax = true) //internal static bool CheckIsRightNum(int trayNum, int preTrayNum, bool isCanUpdateMax = true)
{ //{
if (!NeedCheckTray) // if (!NeedCheckTray)
{ // {
return true; // return true;
} // }
int defNext = preTrayNum + 1; // int defNext = preTrayNum + 1;
if (preTrayNum.Equals(0) || MaxTrayNum.Equals(0) || trayNum.Equals(defNext)) // if (preTrayNum.Equals(0) || MaxTrayNum.Equals(0) || trayNum.Equals(defNext))
{ // {
if (isCanUpdateMax && trayNum > MaxTrayNum) // if (isCanUpdateMax && trayNum > MaxTrayNum)
{ // {
MaxTrayNum = trayNum; // MaxTrayNum = trayNum;
LogUtil.info("更新MaxTrayNum=" + preTrayNum); // LogUtil.info("更新MaxTrayNum=" + preTrayNum);
} // }
return true; // return true;
} // }
else if (trayNum.Equals(1) && preTrayNum >= MaxTrayNum) // else if (trayNum.Equals(1) && preTrayNum >= MaxTrayNum)
{ // {
return true; // return true;
} // }
return false; // return false;
} //}
internal static bool RightTrayCode(int trayNum, int preTrayNum, bool isCanUpdateMax = true) //internal static bool RightTrayCode(int trayNum, int preTrayNum, bool isCanUpdateMax = true)
{ //{
return true; // return true;
return CheckIsRightNum(trayNum, preTrayNum, isCanUpdateMax); // //return CheckIsRightNum(trayNum, preTrayNum, isCanUpdateMax);
} //}
internal static void UpdateTrayNumError(int errorStoreID, string errorMsg) internal static void UpdateTrayNumError(int errorStoreID, string errorMsg)
{ {
...@@ -174,6 +175,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -174,6 +175,11 @@ namespace OnlineStore.DeviceLibrary
public static void InitFileData() public static void InitFileData()
{ {
TrayInfoMap = new ConcurrentDictionary<int, TrayInfo>(); TrayInfoMap = new ConcurrentDictionary<int, TrayInfo>();
if (DisTraySave)
{
LogUtil.error("禁用了托盘保存功能,不需要从文件夹加载托盘");
return;
}
FilePath = Application.StartupPath + ConfigAppSettings.GetValue(Setting_Init.ConfigPath_TrayList); FilePath = Application.StartupPath + ConfigAppSettings.GetValue(Setting_Init.ConfigPath_TrayList);
if (File.Exists(FilePath)) if (File.Exists(FilePath))
{ {
...@@ -186,6 +192,22 @@ namespace OnlineStore.DeviceLibrary ...@@ -186,6 +192,22 @@ namespace OnlineStore.DeviceLibrary
{ {
LogUtil.info("加载到缓存托盘:" + tray.ToStr()); LogUtil.info("加载到缓存托盘:" + tray.ToStr());
TrayInfoMap.TryAdd(tray.TrayNum, tray); TrayInfoMap.TryAdd(tray.TrayNum, tray);
if (tray.InOrOutStore.Equals(1)&&tray.InoutPar.InStoreNg.Equals(false) && (!tray.InoutPar.PosId.Equals("")) && (!tray.InoutPar.WareCode.Equals("")))
{
int storeId = tray.InoutPar.GetStoreId();
if (storeId > 0 && LineManager.Line.MoveEquipMap.ContainsKey(storeId))
{
MoveEquip moveEquip = LineManager.Line.MoveEquipMap[storeId];
lock (moveEquip.waitInListLock)
{
//如果当前正在出入库中,需要记录下来,等待空闲时执行
LogUtil.info(moveEquip.Name + " 将托盘入库任务["+tray.TrayNum+"]: " + tray.InoutPar.ToStr() + "加入等待列表中!");
moveEquip.waitInStoreList.Add(tray.InoutPar);
}
}
}
} }
} }
LogUtil.info("托盘加载完成"); LogUtil.info("托盘加载完成");
...@@ -195,7 +217,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -195,7 +217,7 @@ namespace OnlineStore.DeviceLibrary
public static void SaveMapToFile() public static void SaveMapToFile()
{ {
try try
{ {
List<TrayInfo> trayList = new List<TrayInfo>(); List<TrayInfo> trayList = new List<TrayInfo>();
List<string> lineList = new List<string>(); List<string> lineList = new List<string>();
foreach (TrayInfo tray in trayList) foreach (TrayInfo tray in trayList)
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!