Files
4-Heli-DriveAxle-MesProject/MIS_FuntionSaveData/MIS_FuntionSaveData/MIS_Funtion.cs
2026-05-29 13:50:18 +08:00

269 lines
10 KiB
C#

using DoWhatPlc;
using MesServerWork;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using bizFacade;
using System.Data;
using MesServerFunctions;
namespace MisDataSaveDateMesRead
{
public partial class Funtion
{
/// <summary>
/// 发动机类型转换表
/// SELECT ID,发动机机型代码 FROM MES_计划BOM_发动机型号代码
/// </summary>
public static Hashtable hashtable_EngineTypeID = new Hashtable();
/// <summary>
/// 记录工件到位的发动机机型代码
/// </summary>
public static Hashtable hashtable_EngineGetOver_EngineTypeID = new Hashtable();
/// <summary>
/// 记录工件到位的发动机机型
/// </summary>
public static Hashtable hashtable_EngineGetOver_EngineType = new Hashtable();
/// <summary>
/// 记录工件到位的发动机号
/// </summary>
public static Hashtable hashtable_EngineGetOver_EngineID = new Hashtable();
/// <summary>
/// 记录工件到位的订单号
/// </summary>
public static Hashtable hashtable_EngineGetOver_OrderForm = new Hashtable();
public static Hashtable hashtable_EngineGetOver = new Hashtable();
public static Hashtable hashtable_PartPalletCode = new Hashtable();
/// <summary>
/// 保存质量数据和过站信息
/// </summary>
/// <param name="e"></param>
public static void MIS_Funtion(object e)
{
try
{
string recData = e.ToString();
List<string> dataArray = DoWhatPlc.MessageText.GetCmdStringList(recData);
//string[] dataArray = recData.Split('|');
//if (dataArray.Count != 4)
//return;
//消息来源
string m_Source = dataArray[0].ToString();
//消息类型
string m_Command = dataArray[1].ToString();
//工位号
string m_OpName = dataArray[2].ToString();
//消息参数
string m_Value = dataArray[3].ToString();
DoWhatPlc.CustomeEvetnArgs msgEvent = Newtonsoft.Json.JsonConvert.DeserializeObject<DoWhatPlc.CustomeEvetnArgs>(m_Value);
//DoWhatPlc.ReturnValueString rv = Newtonsoft.Json.JsonConvert.DeserializeObject<DoWhatPlc.ReturnValueString>(m_Value);
//Console.WriteLine($"【【{rv.TagID}【【【【{ rv.TagKeepTime}");
if (msgEvent == null) return;
int tagType;
int tagTypeCodeID;
string opName;
string tagValue;
string tagid;
//DoWhatPlc.ReturnValueString msgEvent = rv;
if (msgEvent.TagValue == null) return;
tagType = Convert.ToInt32(msgEvent.TagTypeID);
opName = msgEvent.OpName.ToString();
tagid = msgEvent.TagID.ToString();
tagTypeCodeID = Convert.ToInt32(msgEvent.TagTypeCodeID);
switch (tagType)
{
case 11:
switch (msgEvent.TagValue.ToString().ToLower())
{
case "1":
case "true":
tagValue = "1";
break;
default:
tagValue = "0";
break;
}
break;
default:
tagValue = msgEvent.TagValue.ToString();
break;
}
///根据信号处理逻辑
switch (tagTypeCodeID)
{
case 19:
//允许保存
MesRead(opName, tagValue, tagid);
break;
case 14:
//心跳
//Heartbeat(opName, tagValue);
break;
case 44://PLC传递机型过后 才允许保存过站信息,否则不允许保存
//EngTypeGetOver(opName, tagValue);
break;
case 2://工件到位 离开信息
if (tagValue == "0")
{
bool S_EngineGetOver;
MIS_BASE.Read_EngineGetOver_PLC(opName, out S_EngineGetOver);
//传递机型
//if (S_EngineGetOver)
{
//if (hashtable_EngineGetOver[opName].ToString() == "1")
{
WorkStart(msgEvent);
}
}
}
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;
case 103:
//Alarm_Insert(msgEvent);
break;
}
}
catch (Exception err)
{
////ApplicationLog.WriteLog(err, err.Message);
}
}
//public static void MIS_Funtion(object e)
// {
// try
// {
// string recData = e.ToString();
// string[] dataArray = recData.Split('|');
// if (dataArray.Length != 4)
// return;
// //消息来源
// string m_Source = dataArray[0].ToString();
// //消息类型
// string m_Command = dataArray[1].ToString();
// //工位号
// string m_OpName = dataArray[2].ToString();
// //消息参数
// string m_Value = dataArray[3].ToString();
// DoWhatPlc.ReturnValueString rv = Newtonsoft.Json.JsonConvert.DeserializeObject<DoWhatPlc.ReturnValueString>(m_Value);
// //Console.WriteLine($"【【{rv.TagID}【【【【{ rv.TagKeepTime}");
// if (rv == null) return;
// int tagType;
// int tagTypeCodeID;
// string opName;
// string tagValue;
// int tagid;
// DoWhatPlc.ReturnValueString msgEvent = rv;
// if (msgEvent.TagValue == null) return;
// tagType = Convert.ToInt32(msgEvent.TagTypeID);
// opName = msgEvent.OpName.ToString();
// tagid = Convert.ToInt32(msgEvent.TagID);
// tagTypeCodeID = Convert.ToInt32(msgEvent.TagTypeCodeID);
// switch (tagType)
// {
// case 11:
// switch (msgEvent.TagValue.ToLower())
// {
// case "1":
// case "true":
// tagValue = "1";
// break;
// default:
// tagValue = "0";
// break;
// }
// break;
// default:
// tagValue = msgEvent.TagValue.ToString();
// break;
// }
// ///根据信号处理逻辑
// switch (tagTypeCodeID)
// {
// case 19:
// //允许保存
// MesRead(opName, tagValue, tagid);
// break;
// case 14:
// //心跳
// //Heartbeat(opName, tagValue);
// break;
// case 44://PLC传递机型过后 才允许保存过站信息,否则不允许保存
// EngTypeGetOver(opName, tagValue);
// break;
// case 2://工件到位 离开信息
// if (tagValue == "0")
// {
// //传递机型
// //if (hashtable_EngineGetOver.Contains(opName))
// {
// //if (hashtable_EngineGetOver[opName].ToString() == "1")
// {
// WorkStart(e);
// }
// }
// }
// 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;
// case 103:
// Alarm_Insert(e);
// break;
// }
// }
// catch (Exception err)
// {
// ////ApplicationLog.WriteLog(err, err.Message);
// }
// }
}
}