269 lines
10 KiB
C#
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);
|
|
// }
|
|
// }
|
|
|
|
|
|
}
|
|
} |