change-提交520测试

master
liuwf 7 months ago
parent 75283b1895
commit c45080e27f

@ -156,6 +156,36 @@ namespace SlnMesnac.Business.@base
} }
} }
/// <summary>
/// 使用---根据RFID Key读取RFID信息
/// </summary>
/// <param name="rfidKey"></param>
/// <param name="epcStr"></param>
/// <exception cref="InvalidOperationException"></exception>
public string ReadEpcStrByRfidKey(string rfidKey)
{
try
{
string epcStr = string.Empty;
var rfidEquip = GetRfidByKey(rfidKey);
if (rfidEquip == null || rfidEquip.GetOnlineStatus() == false)
{
return "";
}
List<TagInfo> tagInfoList = rfidEquip.GetRFID();
if (tagInfoList == null || tagInfoList.Count == 0) return "";
epcStr = tagInfoList.OrderByDescending(x => x.Count).First().EPCstring;
epcStr = epcStr.Replace(" ", "").Replace("\r\n", "").Replace("\0", "").Replace("\n", "");
return epcStr;
}
catch (Exception ex)
{
// throw new InvalidOperationException($"根据RFID Key读取RFID信息异常:{ex.Message}");
return "";
}
}
/// <summary> /// <summary>
/// 使用---根据RFID Key读取光电信号 /// 使用---根据RFID Key读取光电信号
/// 有物体返回true /// 有物体返回true

@ -1,4 +1,5 @@
using SlnMesnac.Common; using Microsoft.IdentityModel.Logging;
using SlnMesnac.Common;
using SlnMesnac.Model.dto; using SlnMesnac.Model.dto;
using SlnMesnac.Rfid.Dto; using SlnMesnac.Rfid.Dto;
using SlnMesnac.Rfid.Enum; using SlnMesnac.Rfid.Enum;
@ -229,6 +230,65 @@ namespace SlnMesnac.Rfid.Factory
} }
} }
public override List<TagInfo> GetRFID(int timeout = 3000)
{
byte[] u16byte = new byte[2];
byte[] bCRC = new byte[4];
try
{
#region 指令封装
MessagePack pMessagePack = new MessagePack();
pMessagePack.m_pData = new byte[8];
pMessagePack.m_pData[0] = 0xAA;
pMessagePack.m_pData[1] = 0x55;
pMessagePack.m_pData[2] = 0x02;
pMessagePack.m_pData[3] = 0x02;
//1s
pMessagePack.m_pData[4] = 0x03;
pMessagePack.m_pData[5] = 0xE8;
//2s
//pMessagePack.m_pData[4] = 0x07;
//pMessagePack.m_pData[5] = 0xD0;
//3s
//pMessagePack.m_pData[4] = 0x0B;
//pMessagePack.m_pData[5] = 0xA0;
Array.Copy(pMessagePack.m_pData, 2, bCRC, 0, 4);
pMessagePack.m_pData[6] = _stringChange.CalculateVerify(bCRC, bCRC.Length);
pMessagePack.m_pData[7] = 0x0D;
#endregion 指令封装
var waitClient = _tcpClient.CreateWaitingClient(new WaitingOptions()
{
FilterFunc = response =>
{
// 检查响应数据是否符合预期
if (response.Data != null && response.Data.Length > 0)
{
// 可以根据实际情况添加更多的检查逻辑
return true;
}
return false;
}
});
// 使用同步方法发送数据并获取响应
byte[] reciveBuffer = waitClient.SendThenReturn(pMessagePack.m_pData, timeout);
byte[] resultBuffer = PareReceiveBufferData(reciveBuffer, reciveBuffer.Length);
List<TagInfo> tagInfoList = Device_DealTagInfoList(resultBuffer);
return tagInfoList;
}
catch (Exception e)
{
throw new InvalidOperationException($"按时间段盘点异常:{e.Message}");
}
}
/// <summary> /// <summary>
/// 使用--异步获取光电状态 /// 使用--异步获取光电状态
/// </summary> /// </summary>

@ -79,6 +79,8 @@ namespace SlnMesnac.Rfid
/// <exception cref="InvalidOperationException"></exception> /// <exception cref="InvalidOperationException"></exception>
public abstract Task<List<TagInfo>> GetRFIDAsync(int timeout = 5000); public abstract Task<List<TagInfo>> GetRFIDAsync(int timeout = 5000);
public abstract List<TagInfo> GetRFID(int timeout = 3000);
/// <summary> /// <summary>
/// 使用--异步获取光电状态 /// 使用--异步获取光电状态
/// </summary> /// </summary>

@ -87,6 +87,7 @@ namespace SlnMesnac.WCS
public void Start() public void Start()
{ {
StartCheckStatus(); StartCheckStatus();
GetAgvStatus();
DeleteTaskLogic(); DeleteTaskLogic();
//根据条件创建任务 //根据条件创建任务
@ -164,6 +165,7 @@ namespace SlnMesnac.WCS
//实时获取agv状态 //实时获取agv状态
MessageSynchronousLogic(agvEquipList); MessageSynchronousLogic(agvEquipList);
//色粉库位有未取走色粉声光报警
ListeningTonerLocation(); ListeningTonerLocation();
} }
catch (Exception ex) catch (Exception ex)
@ -175,6 +177,30 @@ namespace SlnMesnac.WCS
}); });
} }
/// <summary>
/// 获取agv状态
/// </summary>
private void GetAgvStatus()
{
List<WcsBaseEquip> agvEquipList = SqlSugarClient.Queryable<WcsBaseEquip>().Where(it => it.EquipType == 1).ToList();
Task.Run(async () =>
{
while (true)
{
try
{
//实时获取agv状态
MessageSynchronousLogic(agvEquipList);
}
catch (Exception ex)
{
_logger.Error($"获取agv状态异常:{ex.Message}");
}
await Task.Delay(1000 * 30);
}
});
}
#endregion #endregion
/// <summary> /// <summary>

@ -478,6 +478,7 @@ namespace SlnMesnac.WCS.WCS
workShop3Plc.writeInt16ByAddress(StaticData.GetPlcAddress("3#接驳位到位信号"), 0); workShop3Plc.writeInt16ByAddress(StaticData.GetPlcAddress("3#接驳位到位信号"), 0);
workShop3Plc.writeBoolByAddress(StaticData.GetPlcAddress("3#出接驳位信号"), false); workShop3Plc.writeBoolByAddress(StaticData.GetPlcAddress("3#出接驳位信号"), false);
workShop3Plc.writeBoolByAddress(StaticData.GetPlcAddress("3#小料箱agv已取走反馈"), true); workShop3Plc.writeBoolByAddress(StaticData.GetPlcAddress("3#小料箱agv已取走反馈"), true);
_logger.Agv($"agv取走料{task.PalletInfoCode}3#忙碌状态清0");
} }
} }
} }
@ -489,8 +490,6 @@ namespace SlnMesnac.WCS.WCS
return; return;
} }
//workShop3Plc.writeStringByAddress(StaticData.GetPlcAddress("3#小料箱下料点机台号"), "", 6);
//workShop3Plc.writeStringByAddress(StaticData.GetPlcAddress("3#小料箱下料点RFID号"), "", 12);
//解锁起始库位忙碌状态 //解锁起始库位忙碌状态
WcsBaseEquip? startEquip = sqlSugarClient.Queryable<WcsBaseEquip>().First(it => it.AgvPositionCode == task.CurrPointNo); WcsBaseEquip? startEquip = sqlSugarClient.Queryable<WcsBaseEquip>().First(it => it.AgvPositionCode == task.CurrPointNo);
sqlSugarClient.AsTenant().BeginTran(); sqlSugarClient.AsTenant().BeginTran();
@ -616,6 +615,7 @@ namespace SlnMesnac.WCS.WCS
workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#取完成"), true); workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#取完成"), true);
workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#接驳位到位信号"), false); workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#接驳位到位信号"), false);
workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#缓存空进AGV任务反馈"), false); workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#缓存空进AGV任务反馈"), false);
workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#出接驳位信号"), false);
workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#出一个空托盘信号"), false); workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#出一个空托盘信号"), false);
} }
} }
@ -696,7 +696,15 @@ namespace SlnMesnac.WCS.WCS
} }
else if (outFlag == 1) else if (outFlag == 1)
{ //托盘已经离开wcs通知agv离开 { //托盘已经离开wcs通知agv离开
await ContinueTaskHandle(task); bool result = await ContinueTaskHandle(task);
if (result)
{
//从下料点直接取清空RFID及机台号条码等信息--ok
workShop3Plc.writeInt16ByAddress(StaticData.GetPlcAddress("3#线体忙碌状态"), 0);
workShop3Plc.writeInt16ByAddress(StaticData.GetPlcAddress("3#接驳位到位信号"), 0);
workShop3Plc.writeBoolByAddress(StaticData.GetPlcAddress("3#出接驳位信号"), false);
workShop3Plc.writeBoolByAddress(StaticData.GetPlcAddress("3#小料箱agv已取走反馈"), true);
}
} }
} }
else if (task.TaskStatus == 10) //任务完成wcs复位3#接驳位信号,删除任务 else if (task.TaskStatus == 10) //任务完成wcs复位3#接驳位信号,删除任务
@ -738,21 +746,16 @@ namespace SlnMesnac.WCS.WCS
} }
else if (task.TaskStatus == 2) //取完料箱前往目的地 else if (task.TaskStatus == 2) //取完料箱前往目的地
{ {
//解锁起始库位
WcsBaseEquip? baseEquip = sqlSugarClient.Queryable<WcsBaseEquip>().First(t => t.AgvPositionCode == task.CurrPointNo);
if (baseEquip != null) if (baseEquip != null)
{ {
sqlSugarClient.AsTenant().BeginTran(); sqlSugarClient.AsTenant().BeginTran();
try try
{ {
baseEquip.EquipStatus = 0;
baseEquip.ContainerCode = null;
task.TaskStatus = 3; task.TaskStatus = 3;
if (wcsTaskLog != null) if (wcsTaskLog != null)
{ {
wcsTaskLog.TaskStatus = task.TaskStatus; wcsTaskLog.TaskStatus = task.TaskStatus;
} }
sqlSugarClient.Updateable(baseEquip).ExecuteCommand();
sqlSugarClient.Updateable(task).ExecuteCommand(); sqlSugarClient.Updateable(task).ExecuteCommand();
sqlSugarClient.Updateable(wcsTaskLog).ExecuteCommand(); sqlSugarClient.Updateable(wcsTaskLog).ExecuteCommand();
sqlSugarClient.AsTenant().CommitTran(); sqlSugarClient.AsTenant().CommitTran();
@ -782,6 +785,14 @@ namespace SlnMesnac.WCS.WCS
busyFlag = workShop3Plc.readInt16ByAddress(StaticData.GetPlcAddress("3#线体忙碌状态")); busyFlag = workShop3Plc.readInt16ByAddress(StaticData.GetPlcAddress("3#线体忙碌状态"));
if (busyFlag == 0) if (busyFlag == 0)
{ {
//解锁起始库位
WcsBaseEquip? baseEquip = sqlSugarClient.Queryable<WcsBaseEquip>().First(t => t.AgvPositionCode == task.CurrPointNo);
if (baseEquip != null)
{
baseEquip.EquipStatus = 0;
baseEquip.ContainerCode = null;
sqlSugarClient.Updateable(baseEquip).ExecuteCommand();
}
//抢占线体状态agv进入接驳位 //抢占线体状态agv进入接驳位
workShop3Plc.writeInt16ByAddress(StaticData.GetPlcAddress("3#线体忙碌状态"), 1); workShop3Plc.writeInt16ByAddress(StaticData.GetPlcAddress("3#线体忙碌状态"), 1);
await ContinueTaskHandle(task); await ContinueTaskHandle(task);

@ -44,7 +44,10 @@ namespace SlnMesnac.WCS.WCS
CreateTaskByReadPlcSignal(); CreateTaskByReadPlcSignal();
//监听2#计量室旋转移栽plc信号处理相关流程 //监听2#计量室旋转移栽plc信号处理相关流程
ListeningWorkShop2TransplantingMachine(); var CreateProductTaskByLocationCodeThread = new Thread(ListeningWorkShop2TransplantingMachine);
CreateProductTaskByLocationCodeThread.IsBackground = true;
CreateProductTaskByLocationCodeThread.Name = "监听1#2#计量室旋转移栽plc信号处理连廊箱体旋转相关流程";
CreateProductTaskByLocationCodeThread.Start();
} }
/// <summary> /// <summary>
@ -135,8 +138,6 @@ namespace SlnMesnac.WCS.WCS
/// 监听2#计量室旋转移栽plc信号处理连廊箱体旋转相关流程 /// 监听2#计量室旋转移栽plc信号处理连廊箱体旋转相关流程
/// </summary> /// </summary>
private void ListeningWorkShop2TransplantingMachine() private void ListeningWorkShop2TransplantingMachine()
{
Task.Run(async () =>
{ {
while (true) while (true)
{ {
@ -152,7 +153,6 @@ namespace SlnMesnac.WCS.WCS
//2#接驳位色粉派送至色粉存放点任务 //2#接驳位色粉派送至色粉存放点任务
if (workShop2Plc != null && workShop2Plc.IsConnected) if (workShop2Plc != null && workShop2Plc.IsConnected)
{ {
_logger.Info("22222=============");
bool returnJudgeSignal = workShop2Plc.readBoolByAddress(StaticData.GetPlcAddress("2#料箱运回RFID读取")); bool returnJudgeSignal = workShop2Plc.readBoolByAddress(StaticData.GetPlcAddress("2#料箱运回RFID读取"));
int busy2Flag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态")); int busy2Flag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"));
int Amount = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#缓存链条线库存数")); int Amount = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#缓存链条线库存数"));
@ -160,15 +160,17 @@ namespace SlnMesnac.WCS.WCS
bool anyTonerPallet = HasAnyTonerInLine(); bool anyTonerPallet = HasAnyTonerInLine();
if (returnJudgeSignal && busy2Flag == 0 && (Amount < 3 || anyTonerPallet)) if (returnJudgeSignal && busy2Flag == 0 && (Amount < 3 || anyTonerPallet))
{ {
string rfid = await ReadEpcStrByRfidKeyAsync("2#Transplant"); string rfid = ReadEpcStrByRfidKey("2#Transplant");
if (string.IsNullOrEmpty(rfid)) if (string.IsNullOrEmpty(rfid))
{//二次读取 {//二次读取
rfid = await ReadEpcStrByRfidKeyAsync("2#Transplant"); rfid = ReadEpcStrByRfidKey("2#Transplant");
} }
if (!string.IsNullOrEmpty(rfid))
{
//让其他线程 //让其他线程
Thread.Sleep(4000); Thread.Sleep(4000);
busy2Flag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态")); busy2Flag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"));
if (!string.IsNullOrEmpty(rfid) && busy2Flag == 0) if (busy2Flag == 0)
{ {
// 判断有无色粉, 如果没有色粉wcs给 旋转移栽方向信号 写2plc将料箱运到 缓存皮带线。 // 判断有无色粉, 如果没有色粉wcs给 旋转移栽方向信号 写2plc将料箱运到 缓存皮带线。
WmsPalletInfo? wmsPalletInfo = sqlSugarClient.Queryable<WmsPalletInfo>().First(it => it.PalletInfoCode == rfid); WmsPalletInfo? wmsPalletInfo = sqlSugarClient.Queryable<WmsPalletInfo>().First(it => it.PalletInfoCode == rfid);
@ -180,6 +182,7 @@ namespace SlnMesnac.WCS.WCS
if (createResult) if (createResult)
{ {
//3色粉上提升机移栽等待 //3色粉上提升机移栽等待
_logger.Info($"2#移栽===={rfid}携带色粉去往色粉库位");
workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"), 1); workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"), 1);
workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#移栽平台任务"), 3); workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#移栽平台任务"), 3);
workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运回RFID读取"), false); workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运回RFID读取"), false);
@ -187,6 +190,7 @@ namespace SlnMesnac.WCS.WCS
else else
{ //色粉库位无空闲位置,空转一圈 { //色粉库位无空闲位置,空转一圈
//2空箱转运 //2空箱转运
_logger.Info($"2#移栽===={rfid}携带色粉,色粉库位无空闲位置,空转一圈");
workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"), 1); workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"), 1);
workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#移栽平台任务"), 2); workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#移栽平台任务"), 2);
workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运回RFID读取"), false); workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运回RFID读取"), false);
@ -195,6 +199,7 @@ namespace SlnMesnac.WCS.WCS
else if (wmsPalletInfo != null && wmsPalletInfo.Amount > 0 && wmsPalletInfo.TonerFlag == 0) //携带满料 else if (wmsPalletInfo != null && wmsPalletInfo.Amount > 0 && wmsPalletInfo.TonerFlag == 0) //携带满料
{ {
//2空箱转运 //2空箱转运
_logger.Info($"2#移栽===={rfid}携带满料,空转一圈");
workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"), 1); workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"), 1);
workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#移栽平台任务"), 2); workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#移栽平台任务"), 2);
workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运回RFID读取"), false); workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运回RFID读取"), false);
@ -204,6 +209,7 @@ namespace SlnMesnac.WCS.WCS
if (Amount < 3) if (Amount < 3)
{ {
//1上提升机去缓存线 //1上提升机去缓存线
_logger.Info($"2#移栽===={rfid}空箱,去缓存区");
workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"), 1); workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"), 1);
workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#移栽平台任务"), 1); workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#移栽平台任务"), 1);
workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运回RFID读取"), false); workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运回RFID读取"), false);
@ -211,15 +217,18 @@ namespace SlnMesnac.WCS.WCS
else else
{ {
//2空箱转运 //2空箱转运
_logger.Info($"2#移栽===={rfid}空箱,空箱转运");
workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"), 1); workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"), 1);
workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#移栽平台任务"), 2); workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#移栽平台任务"), 2);
workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运回RFID读取"), false); workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运回RFID读取"), false);
} }
} }
} }
}
else else
{ {
//没读到2空箱转运 //没读到2空箱转运
// _logger.Info($"1#移栽====没读到,空箱转运");
//workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"), 1); //workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"), 1);
//workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#移栽平台任务"), 2); //workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#移栽平台任务"), 2);
//workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运回RFID读取"), false); //workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运回RFID读取"), false);
@ -233,31 +242,39 @@ namespace SlnMesnac.WCS.WCS
if (workShop2Plc != null && workShop2Plc.IsConnected) if (workShop2Plc != null && workShop2Plc.IsConnected)
{ {
_logger.Info("11111=============");
bool returnJudgeSignal = workShop2Plc.readBoolByAddress(StaticData.GetPlcAddress("2#料箱运进计量室RFID读取")); bool returnJudgeSignal = workShop2Plc.readBoolByAddress(StaticData.GetPlcAddress("2#料箱运进计量室RFID读取"));
int busy1Flag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("1#提升机忙碌状态")); int busy1Flag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("1#提升机忙碌状态"));
if (returnJudgeSignal && busy1Flag == 0) if (returnJudgeSignal && busy1Flag == 0)
{ {
//test //test
string rfid = await ReadEpcStrByRfidKeyAsync("1#MetrologyRoom"); string rfid = ReadEpcStrByRfidKey("1#MetrologyRoom");
if (string.IsNullOrEmpty(rfid)) if (string.IsNullOrEmpty(rfid))
{ {
rfid = await ReadEpcStrByRfidKeyAsync("1#MetrologyRoom"); rfid = ReadEpcStrByRfidKey("1#MetrologyRoom");
} }
if (!string.IsNullOrEmpty(rfid)) if (!string.IsNullOrEmpty(rfid))
{ {
// 判断有无料, 如果没有料wcs下发空箱旋转信号有料通知plc上提升机计量室 // 判断有无料, 如果没有料wcs下发空箱旋转信号有料通知plc上提升机计量室
WmsPalletInfo? wmsPalletInfo = sqlSugarClient.Queryable<WmsPalletInfo>().First(it => it.PalletInfoCode == rfid); WmsPalletInfo? wmsPalletInfo = sqlSugarClient.Queryable<WmsPalletInfo>().First(it => it.PalletInfoCode == rfid);
if (wmsPalletInfo != null && wmsPalletInfo.Amount > 0 && wmsPalletInfo.TonerFlag == 1) //携带色粉
{
//2空箱转运
_logger.Info($"1#移栽===={rfid}携带色粉,空箱转运");
workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("1#移栽平台任务"), 2);
workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运进计量室RFID读取"), false);
}
if (wmsPalletInfo != null && wmsPalletInfo.Amount > 0 && wmsPalletInfo.TonerFlag == 0) //携带满料 if (wmsPalletInfo != null && wmsPalletInfo.Amount > 0 && wmsPalletInfo.TonerFlag == 0) //携带满料
{ {
//1#移栽平台任务1上提升机,2空箱转运 //1#移栽平台任务1上提升机,2空箱转运
_logger.Info($"1#移栽===={rfid}携带满料,去提升机计量室");
workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("1#移栽平台任务"), 1); workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("1#移栽平台任务"), 1);
workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运进计量室RFID读取"), false); workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运进计量室RFID读取"), false);
} }
else if (wmsPalletInfo != null && wmsPalletInfo.Amount == 0) else if (wmsPalletInfo != null && wmsPalletInfo.Amount == 0)
{ {
//1#移栽平台任务1上提升机,2空箱转运 //1#移栽平台任务1上提升机,2空箱转运
_logger.Info($"1#移栽===={rfid}空箱,空箱转运");
workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("1#移栽平台任务"), 2); workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("1#移栽平台任务"), 2);
workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运进计量室RFID读取"), false); workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运进计量室RFID读取"), false);
} }
@ -266,6 +283,7 @@ namespace SlnMesnac.WCS.WCS
{ {
//没读到,当成空箱子旋转一圈 //没读到,当成空箱子旋转一圈
//1#移栽平台任务1上提升机,2空箱转运 //1#移栽平台任务1上提升机,2空箱转运
// _logger.Info($"1#移栽====没读到,空箱转运");
//workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("1#移栽平台任务"), 2); //workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("1#移栽平台任务"), 2);
//workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运进计量室RFID读取"), false); //workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运进计量室RFID读取"), false);
} }
@ -326,10 +344,9 @@ namespace SlnMesnac.WCS.WCS
} }
finally finally
{ {
await Task.Delay(1000 * 2); Thread.Sleep(1000 * 2);
} }
} }
});
} }
#region 任务流程 #region 任务流程

@ -121,6 +121,7 @@ namespace SlnMesnac.WPF.ViewModel
private void Init() private void Init()
{ {
StartCheckStatus(); StartCheckStatus();
_timer = new DispatcherTimer(); _timer = new DispatcherTimer();
_timer.Interval = TimeSpan.FromSeconds(1); _timer.Interval = TimeSpan.FromSeconds(1);
_timer.Tick += Timer_Tick; _timer.Tick += Timer_Tick;

Loading…
Cancel
Save