using HH.WCS.Mobox3.pinggao.device;
using HH.WCS.Mobox3.pinggao.dispatch;
using HH.WCS.Mobox3.pinggao.util;
using HH.WCS.Mobox3.pinggao.wms;
using S7.Net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
namespace HH.WCS.Mobox3.pinggao.process
{
///
/// 设备信号处理,主要是tcp信号,我们做server被动接收信号来处理,根据项目定制的
///
internal class DeviceProcess
{
internal static void Analysis(string data, string ip)
{
if (data.Length >= 6)
{
//去掉消息头3F 00
data = data.Substring(4);
//Console.WriteLine($"{ip}-{data}");
var plc = Settings.deviceInfos.Where(a => a.address == ip && a.enable == 1).FirstOrDefault();
if (plc != null)
{
if (plc.deviceType == 1)
{
AnalysisBottleCapmolding(data, plc);
}
}
else
{
Console.WriteLine($"TCP信号处理:未查询到IP为{ip}的数据,请检查deviceInfo配置中心是否存在该IP的数据!");
}
}
}
internal static void Traffic(string forkliftNo, string lockNo, bool v)
{
}
///
/// 接收PLC注塑机信号
///
///
///
private static void AnalysisBottleCapmolding(string data, Settings.deviceInfo plc)
{
LogHelper.Info($"{plc.deviceName}--IP={plc.address}--msg={data}", "注塑机");
//下满框信号生成下满框任务 待取货完成解绑起点货位 生成送空任务
if (data.Substring(0, 2) == "11")
{
if (moldingFull(plc, plc.location[0]))
{
LogHelper.Info($"{plc.deviceName}--IP={plc.address}--msg=注塑机A口生成取满任务", "注塑机");
}
}
if (data.Substring(2, 2) == "21")
{
if (moldingFull(plc, plc.location[1]))
{
LogHelper.Info($"{plc.deviceName}--IP={plc.address}--msg=注塑机B口生成取满任务", "注塑机");
}
}
}
private static bool moldingFull(Settings.deviceInfo plc, string location)
{
//通过站点编号查询工单
//通过工单获取物料编码、批号(前期富勒没上线批号自行编写)
var result = false;
var db = new SqlHelper