Files
2026-05-29 10:07:05 +08:00

87 lines
3.1 KiB
C#

using MesServerWork;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SystemFramework;
namespace MisDataFunction
{
public partial class Function: MIS_BASE
{
/// <summary>
/// 处理MIS逻辑
/// </summary>
/// <param name="e"></param>
public static void MIS_Funtion(object e)
{
try
{
int tagType;
string opName;
string tagValue;
int tagid;
OpcData.CustomeEvetnArgs msgEvent = (OpcData.CustomeEvetnArgs)e;
if (msgEvent.TagValue == null) return;
tagType = Convert.ToInt32(msgEvent.TagType);
opName = msgEvent.OpName.ToString();
tagid = Convert.ToInt32(msgEvent.TagKey);
switch (Convert.ToInt32(msgEvent.TagValueType))
{
case 11:
tagValue = (Convert.ToInt32(msgEvent.TagValue)).ToString();
break;
default:
tagValue = msgEvent.TagValue.ToString();
break;
}
///根据信号处理逻辑
switch (tagType)
{
case 19:
//允许保存
MesRead(opName, tagValue, tagid.ToString());
break;
case 14:
//心跳
Heartbeat(opName, tagValue);
break;
case 44://PLC传递机型过后 才允许保存过站信息,否则不允许保存
if (tagValue == "1")
{
IsEngTypeGetOver_Write(opName, true);
EngineData Enginedata = new EngineData(MesDataFunction.OpcOperation.ReadPLC(10, opName).ToString(), Convert.ToInt32(MesDataFunction.OpcOperation.ReadPLC(80, opName)));
//保存产品编号、托盘号 保存过站信息用
EngineData_Hash_Write(opName, Enginedata);
}
break;
case 2://工件到位
WorkStart(opName, tagValue);
break;
case 51:
if (hashtableOpName_IsHaveComputer[opName].ToString() == "1")
{
SaveProductLeaveData(opName, 1);
}
break;
case 8:
if (hashtableOpName_IsHaveComputer[opName].ToString() == "1")
{
SaveProductLeaveData(opName, 2);
}
break;
}
}
catch (Exception err)
{
ApplicationLog.WriteLog(err, err.Message);
}
}
}
}