87 lines
3.1 KiB
C#
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);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|