Commit 53002f69 LN

入料四送出料串修改

1 个父辈 95d1ccd0
......@@ -205,8 +205,6 @@
// chbAGV
//
this.chbAGV.AutoSize = true;
this.chbAGV.Checked = true;
this.chbAGV.CheckState = System.Windows.Forms.CheckState.Checked;
this.chbAGV.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.chbAGV.Location = new System.Drawing.Point(20, 87);
this.chbAGV.Name = "chbAGV";
......
......@@ -11,7 +11,7 @@ namespace OnlineStore.DeviceLibrary
{
public class AgvClient
{
public static bool CurrCancelState = true;
public static bool CurrCancelState = false ;
private static string ServerIp = ConfigAppSettings.GetValue(Setting_Init.AgvServerIp);
private static Asa.AgvClient agvClient;
public static Dictionary<string, Asa.ClientAction> actionMap = new Dictionary<string, Asa.ClientAction>();
......@@ -33,18 +33,7 @@ namespace OnlineStore.DeviceLibrary
agvClient.CloseDoor += AgvClient_CloseDoor;
}
actionMap = new Dictionary<string, Asa.ClientAction>();
//foreach (string key in NodeList)
//{
// actionMap.Add(key, Asa.ClientAction.None);
//}
//if (!LineManager.Line.UseAgvClient)
//{
// LogUtil.info("LineManager.Line.UseAgvClient 未启用,直接返回");
// return;
//}
//else
//{
LogUtil.info(" 开始 agvClient.Connect");
//}
agvClient.Connect();
......
......@@ -841,7 +841,17 @@ namespace OnlineStore.DeviceLibrary
{
string msg = "";
int tLength = 15;
msg += "料架:" + CurrShelfId +"_"+ LastOutParam.rfid+ "\r\n";
string leftTask = "";
if (taskData != null)
{
leftTask = "剩余任务:" + taskData.ToStr();
}
msg += "料架:" + CurrShelfId + " "+leftTask + "\r\n";
if (LastOutParam.rfid != "")
{
msg += "出库信息:" + LastOutParam.ToShortStr() + "\r\n";
}
msg += "上个托盘:" + preTrayNum + "\n";
msg += "当前托盘:" + currTrayNum + "\n";
msg += "runS: " + runStatus + "\n";
......@@ -851,7 +861,7 @@ namespace OnlineStore.DeviceLibrary
msg += "MoveS :" + MoveInfo.SLog + "\n";
msg += "SMoveT:" + SecondMoveInfo.MoveType + "\n";
msg += "SMoveS:" + SecondMoveInfo.MoveStep + "\n";
// msg += "" + LastWidth + "X" + LastHeight + "="+ lastcode + "";
return msg;
}
......
......@@ -126,6 +126,29 @@ namespace OnlineStore.DeviceLibrary
{
if (OutStoreHeight >= 0)
{
//判断是否需要送出料架
if (CurrShelfId != "" && CurrShelfId != "00" && LastOutParam.rfid != "")
{
//重新获取剩余任务
string msg = SServerManager.afterPutCut(Name, CurrShelfId, "", "", 0, out taskData);
if (String.IsNullOrEmpty(msg).Equals(false) || taskData == null)
{
LogUtil.error(Name + "定时获取 " + LastOutParam.ToShortStr() + " 剩余任务出错:" + msg);
}
else if (LastOutParam.cutReel && taskData.cutTask <= 0)
{
MoveInfo.NewMove(LineMoveType.OutStore,LastOutParam);
LogUtil.info(Name + "定时获取到 " + LastOutParam.ToShortStr() + " 已无剩余任务:" + taskData.ToStr());
SendOutShelfOut("分盘料,cutTask=" + taskData.cutTask + ",需要送出料架");
}
else if (LastOutParam.urgentReel && taskData.urgentTask <= 0)
{
MoveInfo.NewMove(LineMoveType.OutStore,LastOutParam);
LogUtil.info(Name + "定时获取到 " + LastOutParam.ToShortStr() + " 已无剩余任务:" + taskData.ToStr());
SendOutShelfOut("紧急料,urgentTask=" + taskData.urgentTask + ",需要送出料架");
}
}
return;
}
//若定位工位,阻挡工位,有 料架,直接进入定位工位,并上升好位置,若需要出库,直接下降高度即可
......
......@@ -964,6 +964,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.EndMove();
mainTimer.Interval = 300;
maxSeconds = 3;
AgvClient.SetCancelState(AgvClient.CurrCancelState);
LogUtil.info(Name + "所有移栽模块复位完成,打开流水线,开始运转,定时器改为300,耗时 [" + FormUtil.GetSpanStr(span) + "]");
}
else if (span.TotalSeconds > 120)
......
......@@ -177,17 +177,7 @@ namespace OnlineStore.DeviceLibrary
outSize = 0;
string msg = "";
try
{
//string codeStr = "";
//List<string> list = new List<string>();
//foreach (string str in codeList)
//{
// if (list.Contains(str.Trim()) || String.IsNullOrEmpty(str.Trim()))
// {
// continue;
// }
// codeStr = codeStr + str.Trim() + spiltStr;
//}
{
if (String.IsNullOrEmpty(codeStr))
{
return msg = deviceName + "未扫到条码";
......@@ -269,50 +259,7 @@ namespace OnlineStore.DeviceLibrary
}
return msg;
}
//public static string PutShelfFinished(string deviceName, string barcode, string rfid, string rfidPosId, out ShelfData shelfData)
//{
// string msg = "";
// shelfData = null;
// try
// {
// Dictionary<string, string> paramMap = new Dictionary<string, string>();
// paramMap.Add("barcode", barcode); // 参数: barcode=料盘的条码
// paramMap.Add("rfid", rfid); // rfid = 料架的RFID信息
// paramMap.Add("rfidLoc", rfidPosId); // rfidLoc=料架的架位信息
// // paramMap.Add("robotIndex", "0"); // robotIndex = r机器人编号(非机器人放置时不传此参数), IP为51的机器人为1, 52的机器人为2, 53的机器人为3
// string server = GetAddr(Addr_putShelfFinished, paramMap);
// DateTime startTime = DateTime.Now;
// string resultStr = HttpHelper.Post(server, "");
// LogUtil.info("PutShelfFinished " + FormUtil.GetSpanStr(DateTime.Now - startTime) + " 【" + server + "】【" + resultStr + "】");
// // 返回: {"code": 0, "msg":"ok", "data":{"rfid":"xxx","smallEmpty":0,"bigEmpty":0, "packageEmpty":0,"cutPackageTask":0,"packageTask":10,"cutTask":10, "smallTask":5, "bigTask":5}
// PutFinishedData serverResult = JsonHelper.DeserializeJsonToObject<PutFinishedData>(resultStr);
// // string str = "{"code":0,"msg":"ok","data":{"smallTask":"1","cutPackageTask":"0","packageTask":"0","bigTask":"0","smallEmpty":"0","bigEmpty":"0","packageEmpty":"0","rfid":" - 1 - 1","cutTask":"0"}}";
// //PutShelfFinished 【http://localhost/myproject/rest/api/qisda/device/putShelfFinished?barcode=R008062019120301889&rfid=-1-1&rfidLoc=4】
// //【{"code":0,"msg":"ok","data":{"smallTask":"1","cutPackageTask":"0","packageTask":"0","bigTask":"0","smallEmpty":"0","bigEmpty":"0","packageEmpty":"0","rfid":"-1-1","cutTask":"0"}}】
// if (serverResult == null)
// {
// return msg = deviceName + "PutShelfFinished【 " + barcode + "】【" + rfid + "】【" + rfidPosId + "】没有收到服务器反馈";
// }
// else if (serverResult.code.Equals(0).Equals(false))
// {
// return msg = deviceName + " PutShelfFinished【 " + barcode + "】【" + rfid + "】【" + rfidPosId + "】 :" + serverResult.msg;
// }
// //if (String.IsNullOrEmpty(serverResult.data).Equals(false))
// //{
// // shelfData = JsonHelper.DeserializeJsonToObject<ShelfData>(serverResult.data);
// //}
// shelfData = serverResult.data;
// }
// catch (Exception ex)
// {
// LogUtil.error(deviceName + " ", ex);
// }
// return "";
//}
private static string Addr_clearPutInRfid = "/service/store/qisda/clearPutInRfid";
public static string clearPutInRfid(string deviceName, string rfid)
{
......@@ -398,7 +345,14 @@ namespace OnlineStore.DeviceLibrary
string server = GetAddr(Addr_afterPutCut, paramMap);
DateTime startTime = DateTime.Now;
string resultStr = HttpHelper.Post(server, "");
LogUtil.info("afterPutCut " + FormUtil.GetSpanStr(DateTime.Now - startTime) + " 【" + server + "】【" + resultStr + "】");
if (barcode != "")
{
LogUtil.info(deviceName+ "afterPutCut " + FormUtil.GetSpanStr(DateTime.Now - startTime) + " 【" + server + "】【" + resultStr + "】");
}
else
{
LogUtil.debug(deviceName + "afterPutCut " + FormUtil.GetSpanStr(DateTime.Now - startTime) + " 【" + server + "】【" + resultStr + "】");
}
//> 返回:
//>>` {"code": 0, "msg":"ok", "data":{"cutPackageTask":"0","urgentPackageTask":"20","cutTask":"21","urgentTask":"22"}} `
//>>
......@@ -545,63 +499,12 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
public int urgentTask { get; set; }
public string ToStr()
{
return "[分盘料=" + cutTask + "][紧急料=" + urgentTask+"]";
}
}
}
//public class PutFinishedData
//{
// public int code { get; set; }
// public string msg { get; set; }
// public ShelfData data { get; set; }
//}
//public class ShelfData
//{
// /// <summary>
// /// rfid: 当前料架的RFID
// /// </summary>
// public string rfid { get; set; }
// /// <summary>
// /// packageEmpty: 当前料架还可放置的包装料的数量(C料架和A料架有值, 其他料架为0)
// /// </summary>
// public int packageEmpty { get; set; }
// /// <summary>
// /// smallEmpty: 当前料架还可放置的小料盘(7x8)的数量(D料架, 其他料架为0)
// /// </summary>
// public int smallEmpty { get; set; }
// /// <summary>
// /// bigEmpty:当前料架还可放置的大料盘的数量(C料架, 其他料架为0)
// /// </summary>
// public int bigEmpty { get; set; }
// /// <summary>
// /// cutPackageTask:还有多少盘分盘的包装料任务(放到A料架上, 转运到分盘区)
// /// </summary>
// public int cutPackageTask { get; set; }
// /// <summary>
// /// packageTask:还有多少盘包装料任务(放到A料架上, 并转运到包装线, 最终到C料架)
// /// </summary>
// public int packageTask { get; set; }
// /// <summary>
// /// cutTask: 还有多少盘分盘料任务(放置到料串B上, 转运到分盘区)
// /// </summary>
// public int cutTask { get; set; }
// /// <summary>
// /// smallTask: 还有多少盘小料任务(放置到双层线的D料架上)
// /// </summary>
// public int smallTask { get; set; }
// /// <summary>
// /// bigTask: 还有多少盘大料任务(放置到C料架上)
// /// </summary>
// public int bigTask { get; set; }
// // rfid: 当前料架的RFID
// // packageEmpty: 当前料架还可放置的包装料的数量(C料架和A料架有值, 其他料架为0)
// // smallEmpty: 当前料架还可放置的小料盘(7x8)的数量(D料架, 其他料架为0)
// // bigEmpty:当前料架还可放置的大料盘的数量(C料架, 其他料架为0)
// // cutPackageTask:还有多少盘分盘的包装料任务(放到A料架上, 转运到分盘区)
// // packageTask:还有多少盘包装料任务(放到A料架上, 并转运到包装线, 最终到C料架)
// // cutTask: 还有多少盘分盘料任务(放置到料串B上, 转运到分盘区)
// // smallTask: 还有多少盘小料任务(放置到双层线的D料架上)
// // bigTask: 还有多少盘大料任务(放置到C料架上)
//}
......@@ -66,6 +66,10 @@ namespace OnlineStore.DeviceLibrary
return " [" + TrayNumber + "] [" + WareCode + "] [" + PosId + "] [" + PlateW + "x" + PlateH + "],InStoreNg [" + InStoreNg +
"],urgentReel [" + urgentReel + "],cutReel [" + cutReel + "],smallReel [" + smallReel + "],rfid [" + rfid + "],rfidLoc [" + rfidLoc + "]";
}
public string ToShortStr()
{
return " [" + rfid + "][" + WareCode + "] [" + PosId + "] [" + PlateW + "x" + PlateH + "] " + (urgentReel ? "[紧急料]" : "") + (cutReel ? "[分盘料]" : "");
}
/// <summary>
/// 根据PosId获取对应的料仓ID,若PosId=="",返回-1
/// </summary>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!