Files
52-NingdePDC-MesProject/MisDataFunction/Function1062/MesServerFunction/Function1062.cs
2026-05-31 10:22:04 +08:00

129 lines
3.9 KiB
C#

using MesServerWork;
using MisDataFunDll;
using System;
using System.Collections.Generic;
using System.Threading;
namespace MesServerFunctions
{
public partial class FunctionMES
{
public void FunWork(string recData)
{
List<string> dataArray = MisDataFun.GetCmdStringList(recData);
string source = dataArray[0].ToString();
string command = dataArray[1].ToString();
string opName = dataArray[2].ToString();
string value = dataArray[3].ToString();
var e = new DeviceDriver_BasicData.CustomeEvetnArgs();
switch (source)
{
case "WEB":
e.OpName = opName;
e.TagValue = command + "|" + value;
fun_WebSubmit(e);
break;
case "PLC":
e = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceDriver_BasicData.CustomeEvetnArgs>(value);
e.TagValue = NormalizeTagValue(e.TagValue);
RoutePlcSignal(e, opName);
break;
}
}
private string NormalizeTagValue(object tagValue)
{
string value = Convert.ToString(tagValue);
switch (value.ToLower())
{
case "false":
return "0";
case "true":
return "1";
default:
return value;
}
}
private void RoutePlcSignal(DeviceDriver_BasicData.CustomeEvetnArgs e, string opName)
{
switch (e.TagTypeCodeID.ToString())
{
// PLC 工件到位
case "2":
fun_WorkStart(e);
break;
// PLC 允许保存质量数据
case "19":
fun_MesRead(e);
break;
// PLC 申请上线
case "43":
PartLoad(e);
break;
// PLC 传递机型
case "44":
fun_EngineTypeGetOverPLC(e);
break;
// PLC/MES 系统健康心跳
case "14":
fun_HeartBeatMIS(e);
break;
// MES 设备报警复位
case "61":
MIS_BASE.Write_MesErrorType(opName, 0);
break;
}
}
/// <summary>
/// 传递机型
/// </summary>
public void fun_EngineTypeGetOverPLC(DeviceDriver_BasicData.CustomeEvetnArgs e)
{
ThreadPool.QueueUserWorkItem(EngineTypeGetOver_PLC, e);
}
/// <summary>
/// 保存完成 19
/// </summary>
public void fun_MesRead(DeviceDriver_BasicData.CustomeEvetnArgs e)
{
ThreadPool.QueueUserWorkItem(MesRead, e);
}
/// <summary>
/// 工件到位离开,清空 MES 信号
/// </summary>
public void fun_WorkStart(DeviceDriver_BasicData.CustomeEvetnArgs e)
{
ThreadPool.QueueUserWorkItem(WorkStart, e);
}
/// <summary>
/// 处理 WEB/PAD 页面传递过来的数据
/// </summary>
public void fun_WebSubmit(DeviceDriver_BasicData.CustomeEvetnArgs e)
{
ThreadPool.QueueUserWorkItem(WebSubmit, e);
}
/// <summary>
/// MES 系统健康心跳监测
/// </summary>
public void fun_HeartBeatMIS(DeviceDriver_BasicData.CustomeEvetnArgs e)
{
ThreadPool.QueueUserWorkItem(HeartBeatMES, e);
}
/// <summary>
/// PLC 系统健康心跳监测
/// </summary>
public void fun_HeartBeatPLC(DeviceDriver_BasicData.CustomeEvetnArgs e)
{
ThreadPool.QueueUserWorkItem(HeartBeatPLC, e);
}
}
}