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 {
|
/// <summary>
|
/// 定时轮询任务:托盘下线任务核心
|
/// </summary>
|
public class OfflineCore
|
{
|
/// <summary>
|
/// 获取输送线发送的成品胶下线请求
|
/// </summary>
|
/// <remarks>
|
/// 流程一 成品胶下线<br/>
|
/// 4) AMS收到请求,生成成品下线指令,并将指令发送到WMS系统
|
/// </remarks>
|
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<TN_CG_Detail>()
|
.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<TN_CG_Detail>(cgDetail).ExecuteCommand() > 0) {
|
LogHelper.Info($"绑定物料 '{cgId}' 与容器 '{cntrId}' 成功");
|
}
|
else {
|
LogHelper.Info($"绑定物料 '{cgId}' 与容器 '{cntrId}' 失败");
|
}
|
}
|
}
|
catch (Exception ex) {
|
LogHelper.InfoEx(ex);
|
}
|
}
|
|
/// <summary>
|
/// 轮询托盘入库任务并执行
|
/// </summary>
|
public static void CheckInboundTask() {
|
//var db = DbHelper.GetDbClient();
|
|
//var inboundOrder = db.Queryable<TN_Inbound_Order>()
|
// .Where(i => i.S_B_STATE == "等待执行").First();
|
|
//TaskHelper.LogCreateTask()
|
|
}
|
|
|
}
|
}
|