|
|
|
@ -7,6 +7,7 @@ using Aucma.Core.HwPLc;
|
|
|
|
|
using log4net;
|
|
|
|
|
using Aucma.Core.SheetMetalTasks.Models;
|
|
|
|
|
using StackExchange.Profiling.Internal;
|
|
|
|
|
using NetTaste;
|
|
|
|
|
|
|
|
|
|
namespace Aucma.Core.SheetMetalTasks
|
|
|
|
|
{
|
|
|
|
@ -191,6 +192,13 @@ namespace Aucma.Core.SheetMetalTasks
|
|
|
|
|
Console.WriteLine($"【{DateTime.Now.ToString("HH:m:s")}】===>未获取到需要下发的前板任务");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
// 如果前板有正在执行的计划,不再下发新计划,直接开始读取plc数量
|
|
|
|
|
//if (planInfoList.FirstOrDefault().ExecuteStatus == 2)
|
|
|
|
|
//{
|
|
|
|
|
// //读取设备进度,完成后再次下发新任务
|
|
|
|
|
// ReadDeviceComplate_SidePanel(obj_sidePanel);
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
planInfoList = planInfoList.Where(d => d.PlanAmount > d.SidePanelAmount && (d.ExecuteStatus == 1 || d.ExecuteStatus == 2)).ToList();
|
|
|
|
|
if (planInfoList == null || planInfoList.Count == 0) return;
|
|
|
|
|
//planInfoList = planInfoList.Where(d => d.ExecuteStatus == 1 || d.ExecuteStatus == 2).ToList();
|
|
|
|
@ -298,8 +306,23 @@ namespace Aucma.Core.SheetMetalTasks
|
|
|
|
|
obj_sidePanel.plc.WriteInt16("D6022", SmProductId.ToString());//产品号
|
|
|
|
|
string processNumber = GetProcessNumberBy(planInfo.MaterialCode);
|
|
|
|
|
obj_sidePanel.plc.WriteString("D6010", planInfo.MaterialSpecificatons);
|
|
|
|
|
//int surplus = planInfo.PlanAmount-planInfo.CompleteAmount;
|
|
|
|
|
|
|
|
|
|
// 如果没有计划执行或者是切换新计划,需要将剩余数量写入PLC
|
|
|
|
|
// 如果是当前计划继续执行,写入计划数量
|
|
|
|
|
int surplus = planInfo.PlanAmount;
|
|
|
|
|
byte[] info = obj_sidePanel.plc.Read("D6030", 40);
|
|
|
|
|
string planCode = Encoding.ASCII.GetString(info.Skip(0).Take(20).ToArray()).Replace("\0", "").Trim();
|
|
|
|
|
if(planCode==planInfo.TaskCode)
|
|
|
|
|
{
|
|
|
|
|
surplus = planInfo.PlanAmount;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
surplus = planInfo.PlanAmount - planInfo.CompleteAmount;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
obj_sidePanel.plc.WriteInt16("D6020", surplus.ToString());
|
|
|
|
|
Thread.Sleep(500);
|
|
|
|
|
|
|
|
|
@ -607,8 +630,23 @@ namespace Aucma.Core.SheetMetalTasks
|
|
|
|
|
obj_backPanel.plc.WriteInt16("D4022", productId.ToString());
|
|
|
|
|
string processNumber = GetProcessNumberBy(planInfo.MaterialCode);
|
|
|
|
|
obj_backPanel.plc.WriteString("D4010", planInfo.MaterialSpecificatons);
|
|
|
|
|
// 如果没有计划执行或者是切换新计划,需要将剩余数量写入PLC
|
|
|
|
|
// 如果是当前计划继续执行,写入计划数量
|
|
|
|
|
int surplus = planInfo.PlanAmount;
|
|
|
|
|
byte[] info = obj_backPanel.plc.Read("D4030", 40);
|
|
|
|
|
string planCode = Encoding.ASCII.GetString(info.Skip(0).Take(20).ToArray()).Replace("\0", "").Trim();
|
|
|
|
|
if (planCode == planInfo.TaskCode)
|
|
|
|
|
{
|
|
|
|
|
surplus = planInfo.PlanAmount;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
surplus = planInfo.PlanAmount - planInfo.CompleteAmount;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//int surplus = planInfo.PlanAmount - planInfo.CompleteAmount;//剩余计划数量
|
|
|
|
|
int surplus = planInfo.PlanAmount;//剩余计划数量
|
|
|
|
|
|
|
|
|
|
obj_backPanel.plc.WriteInt16("D4020", surplus.ToString());
|
|
|
|
|
Thread.Sleep(500);
|
|
|
|
|
|
|
|
|
@ -1131,7 +1169,7 @@ namespace Aucma.Core.SheetMetalTasks
|
|
|
|
|
//D6030
|
|
|
|
|
//计划编号:D6030-D6039,物料编号:D6040-D6049,计划完成数:D6050,计划下线数:D6051,设备状态:D6052-D6056,生产节拍:D6057-D6058
|
|
|
|
|
byte[] info = obj.plc.Read("D6030", 59);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (info == null)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(1000);
|
|
|
|
@ -1960,6 +1998,7 @@ namespace Aucma.Core.SheetMetalTasks
|
|
|
|
|
{
|
|
|
|
|
string productId = obj_SidePanel.plc.ReadInt16("D1402").ToString();
|
|
|
|
|
Bin bin = new Bin();
|
|
|
|
|
bin.Id = 1;
|
|
|
|
|
bin.ProductId = productId;
|
|
|
|
|
bin.Status = startb0;
|
|
|
|
|
list.Add(bin);
|
|
|
|
@ -1969,6 +2008,7 @@ namespace Aucma.Core.SheetMetalTasks
|
|
|
|
|
{
|
|
|
|
|
string productId = obj_SidePanel.plc.ReadInt16("D1426").ToString();
|
|
|
|
|
Bin bin = new Bin();
|
|
|
|
|
bin.Id = 2;
|
|
|
|
|
bin.ProductId = productId;
|
|
|
|
|
bin.Status = startb0;
|
|
|
|
|
list.Add(bin);
|
|
|
|
@ -1976,8 +2016,10 @@ namespace Aucma.Core.SheetMetalTasks
|
|
|
|
|
var startb4 = obj_SidePanel.plc.ReadBool("M142");
|
|
|
|
|
if (startb4)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
string productId = obj_SidePanel.plc.ReadInt16("D1450").ToString();
|
|
|
|
|
Bin bin = new Bin();
|
|
|
|
|
bin.Id = 3;
|
|
|
|
|
bin.ProductId = productId;
|
|
|
|
|
bin.Status = startb4;
|
|
|
|
|
list.Add(bin);
|
|
|
|
@ -1987,6 +2029,7 @@ namespace Aucma.Core.SheetMetalTasks
|
|
|
|
|
{
|
|
|
|
|
string productId = obj_SidePanel.plc.ReadInt16("D1474").ToString();
|
|
|
|
|
Bin bin = new Bin();
|
|
|
|
|
bin.Id = 4;
|
|
|
|
|
bin.ProductId = productId;
|
|
|
|
|
bin.Status = startb6;
|
|
|
|
|
list.Add(bin);
|
|
|
|
|