Files
13-PingZhi126KVGLKG-MesProject/MisDataFunction/MesServer.Function/Function1051/OpcServer/MesRead.cs

142 lines
7.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Collections.Generic;
using System.Threading;
using bizFacade;
//using SystemFramework;
using MesServerWork;
namespace MesServerFunctions
{
partial class FunctionMES
{
object lockMesRead = new object ();
/// <summary>
/// 保存完成(针对半自动和手动压装工位)
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
private void MesRead(object e)
{
lock(lockMesRead)
{
try
{
int EngineTypeID;
string EngineType;
string EngineID;
int PartPallet_Code;
string OrderForm;
int EngineTypeID_MES;//机型代码
string EngineType_MES;//机型
string EngineID_MES;//工件编号
string OrderForm_MES;
{
DoWhatPlc.CustomeEvetnArgs msgEvent = (DoWhatPlc.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
int tagValue = Convert.ToInt32(msgEvent.TagValue);
if (tagValue == 1)
{
int qualityMask;
//MIS_BASE.GetEngineTypeFromPLC(OpName, out EngineTypeID, out EngineType, out EngineID, out PartPallet_Code, out OrderForm);
MIS_BASE.GetEngineTypeFromPLC_MES(OpName, out EngineTypeID_MES, out EngineType_MES, out EngineID_MES, out OrderForm_MES);
//保存数据到线首表 先保存到 北汽福田变速器序列号总线上线 用于之前判断是否重号
// 保存质量数据
qualityMask = MisDataSaveDateMesRead.Funtion.MesRead(OpName, tagValue.ToString(), msgEvent.TagID.ToString());
// 存追溯表数据
BaseDataSystemMES.WorkOrderOpWorkOver(OpName, EngineID_MES, OrderForm_MES);
// 保存物料数据
BaseDataSystemMES.Material_Insert(OpName, qualityMask);
// 测量数据发动机在线状态
BaseDataSystemMES.WorkStartInsert(OpName, qualityMask);
// 推送质量数据到MES的页面
SendMessageFun.SendInfomation("ShowTimelyQuality", "1&" + qualityMask.ToString(), OpName);
MIS_BASE.GetEngineTypeFromPLC_MES(OpName, out EngineTypeID_MES, out EngineType_MES, out EngineID_MES, out OrderForm_MES);
// 遍历 将订单信息挪到除A10以外的工位 A10的清除
if(EngineID_MES != "")
{
//A10 工位,完工后判断是母线测还是非母线测 是母线测就将数据转到40 非 转 50
//机型 机型编号
//母线测(214) 1
//线路侧 2
//测保间隔 3
//母线测(314) 4
//母线测(414) 5
//母线测(514) 6
string toOpName = "A40";
if(EngineTypeID_MES == 2 || EngineTypeID_MES == 3)
{
toOpName = "A50";
}
MIS_BASE.WritePLC(34, toOpName, false);
// 写入机型代码 (大机型) 机型 发动机号 订单号
MIS_BASE.Write_EngineTypeID_MES(toOpName, EngineTypeID_MES);
MIS_BASE.Write_EngineType_MES(toOpName, EngineType_MES);
MIS_BASE.Write_EngineID_MES(toOpName, EngineID_MES);
MIS_BASE.Write_OrderForm_MES(toOpName, OrderForm_MES);
//List<string> opNameList = MIS_BASE.Get_opNameList();
//foreach (string itemOpName in opNameList)
//{
// if (itemOpName == "A10")
// {
// //BaseDataSystemMES.OpName_MIS_MOBY_Insert(itemOpName, MobyTagType.EngineID_MES, "");
// MIS_BASE.WritePLC(34, itemOpName, false);
// // 写入机型代码 (大机型) 机型 发动机号 订单号
// MIS_BASE.Write_EngineTypeID_MES(itemOpName, 0);
// MIS_BASE.Write_EngineType_MES(itemOpName, "");
// MIS_BASE.Write_EngineID_MES(itemOpName, "");
// MIS_BASE.Write_OrderForm_MES(itemOpName, "");
// }
// else if (itemOpName == toOpName)
// {
// BaseDataSystemMES.OpName_MIS_MOBY_Insert(itemOpName, MobyTagType.EngineID_MES, EngineID_MES);
// MIS_BASE.WritePLC(34, itemOpName, false);
// // 写入机型代码 (大机型) 机型 发动机号 订单号
// MIS_BASE.Write_EngineTypeID_MES(itemOpName, EngineTypeID_MES);
// MIS_BASE.Write_EngineType_MES(itemOpName, EngineType_MES);
// MIS_BASE.Write_EngineID_MES(itemOpName, EngineID_MES);
// MIS_BASE.Write_OrderForm_MES(itemOpName, OrderForm_MES);
// }
//}
}
//对应手动工位的
//MIS_BASE.Write_ConfirmOkGo(OpName, true);
//通知设备MES的质量数据和物料数据保存完成
MIS_BASE.Write_MesReadOver(OpName, true);
MIS_BASE.Write_MaterialVerifyOver(OpName, true);
//统计在线产量,在线节拍
SendMessage.SendActuallyCount(OpName, tagValue);
}
else
{
MIS_BASE.Write_MesReadOver(OpName, false);
MIS_BASE.Write_MaterialVerifyOver(OpName, false);
}
}
}
catch (Exception err)
{
////ApplicationLog.WriteLog(err, "Function08:MesReadOver");
}
}
}
}
}