using System; using HH.WCS.Mobox3.DSZSH.AppStart; using HH.WCS.Mobox3.DSZSH.Consts; using HH.WCS.Mobox3.DSZSH.Helpers.Model; using HH.WCS.Mobox3.DSZSH.Helpers; using HH.WCS.Mobox3.DSZSH.Models; using HH.WCS.Mobox3.DSZSH.Helper; using System.Collections.Generic; namespace HH.WCS.Mobox3.DSZSH.ServiceCore { /// /// 定时轮询任务:托盘下线任务核心 /// public class OfflineCore { /// /// 获取输送线发送的成品胶下线请求 /// /// /// 流程一 成品胶下线
/// 4) AMS收到请求,生成成品下线指令,并将指令发送到WMS系统 ///
public static void CheckPlcOfflineRequest() { try { foreach (var prodLineInfo in AppStart.Settings.Config.ProductionLines) { var db = DbHelper.GetDbClient(); // TODO 等待输送线协议完成后再补充具体逻辑 // 判断输送线当前是否有下线信号 var readFlag = ModbusHelper.ReadHoldingRegisters(15, 1, prodLineInfo.PlcIp, prodLineInfo.PlcPort); if (readFlag[0] == 0) { continue; } // 读取输送线下线请求信息 var cgId = ModbusHelper.ReadHoldingRegistersToString(20, 20, prodLineInfo.PlcIp, prodLineInfo.PlcPort); var cntrId = ModbusHelper.ReadHoldingRegistersToString(40, 20, prodLineInfo.PlcIp, prodLineInfo.PlcPort); var cgDetail = db.Queryable() .Where(cd => cd.S_CG_ID == cgId && cd.S_CNTR_CODE == cntrId).First(); // 绑定 物料信息 和 容器信息 cgDetail = new TN_CG_Detail { S_CG_ID = cgId, S_CNTR_CODE = cntrId, }; if (db.Insertable(cgDetail).ExecuteCommand() > 0) { LogHelper.Info($"绑定物料 '{cgId}' 与容器 '{cntrId}' 成功"); } else { LogHelper.Info($"绑定物料 '{cgId}' 与容器 '{cntrId}' 失败"); } } } catch (Exception ex) { LogHelper.InfoEx(ex); } } /// /// 轮询托盘入库任务并执行 /// public static void CheckInboundTask() { //var db = DbHelper.GetDbClient(); //var inboundOrder = db.Queryable() // .Where(i => i.S_B_STATE == "等待执行").First(); //TaskHelper.LogCreateTask() } } }