chore: initial commit

This commit is contained in:
XingCheng3
2026-05-29 09:34:04 +08:00
commit 78ae9dcd2e
683 changed files with 68110 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
using System;
using System.Data;
using System.Windows.Forms;
using MesServerWork;
using MisDataFunDll;
namespace MesServerFunctions
{
partial class FunctionMES
{
/// <summary>
///1.扫描配送单号用于接收物料扫描单号的时候将接收的物料信息显示在“物料拉动”Tab区域
///2.扫描料箱标签/看板卡,用于追溯物料批次信息
///3.扫描零件条码,根据零件图号进行防错
///第一步,判断条码类型,根据条码类型,执行对应的存储过程
///第二步,条码类型(将扫描的条码保存到对应的表中)
///第三步,扫描完成之后给出允许工作信号
/// 处理页面扫描条码
/// </summary>
/// <param name="OpName"></param>
/// <param name="barcode"></param>
public void Barcode(object e)
{
{
try
{
DeviceDriver_BasicData.CustomeEvetnArgs msgEvent = (DeviceDriver_BasicData.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
string barcode = Convert.ToString(msgEvent.TagValue);
string AlarmStr = "";
int IsAllowWork;
bool IsSuccess = false;
MisDataFun.PartMaterial_DM_Update(OpName, barcode, out IsSuccess);
if (!IsSuccess)
{
SendMessageFun.AsyncSendMessage_Notice(OpName, "条码无效,请确认!");
return;
}
else
{
SendMessageFun.SendInfomation("MaterialList", "1", OpName);//通知界面更新零件信息
}
//获取是否允许工作
MisDataFun.MesServer_Judge_IsCanWork(OpName, out IsAllowWork);
if (IsAllowWork == 1)
{
// 保存物料信息
MisDataFun.Material_Insert(OpName, 1);
SendMessageFun.SendMessage("24", "11", OpName);
// 物料验证完成
MIS_BASE.Write_MaterialVerifyOver(OpName, true);
//通知PLC允许工作,允许工作在保存完成时清空
MIS_BASE.Write_FixAllow(OpName, true);
}
else
{
SendMessageFun.AsyncSendMessage_Notice(OpName, "条码无效,请确认!");
}
}
catch (Exception err)
{
////ApplicationLog.WriteLog(err, "Function02:Barcode");
}
}
}
}
}

View File

@@ -0,0 +1,72 @@
using System;
using System.Data;
using System.Windows.Forms;
using System.Xml.Linq;
//using SystemFramework;
using MesServerWork;
using MisDataFunDll;
namespace MesServerFunctions
{
partial class FunctionMES
{
/// <summary>
/// PLC传递机型处理
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
private void EngineTypeGetOver_PLC(object e)
{
try
{
DeviceDriver_BasicData.CustomeEvetnArgs msgEvent = (DeviceDriver_BasicData.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
//int tagValue = Convert.ToInt32(msgEvent.TagValue);
if(msgEvent.TagValueUp.ToString() == "6")
{
MIS_BASE.Write_FixAllow(OpName, false);
string Program_No = "";
MisDataFun.GetEngineType_Order(OpName, Program_No, out int EngineTypeID, out string EngineType, out string EngineID, out string OrderForm, out int isCheckOk, out int planCount, out int haveUplaodCount, out int remainingQuantity, out string msg2);
if (isCheckOk == 2)
{
string msg = "【" + OpName + "】" + msg2;
SendMessage.AsyncSendMessage_Notice(OpName, msg);
MyLog4Net.MyLogHelper.Error("PartLoad", msg);
return;
}
else
{
MIS_BASE.Write_EngineTypeID_MES(OpName, EngineTypeID);
MIS_BASE.Write_EngineType_MES(OpName, EngineType);
MIS_BASE.Write_EngineID_MES(OpName, EngineID);
MIS_BASE.Write_OrderForm_MES(OpName, OrderForm);
MisDataFun.OpName_MIS_MOBY_Insert(OpName, MisDataFun.MobyTagType.WorkStartIn, DateTime.Now.ToString());
MisDataFun.OpName_MIS_MOBY_Insert(OpName,MisDataFun.MobyTagType.EngineTypeID, EngineTypeID.ToString());
MisDataFun.OpName_MIS_MOBY_Insert(OpName,MisDataFun.MobyTagType.EngineType, EngineType);
MisDataFun.OpName_MIS_MOBY_Insert(OpName,MisDataFun.MobyTagType.EngineID, EngineID);
MisDataFun.OpName_MIS_MOBY_Insert(OpName,MisDataFun.MobyTagType.OrderForm, OrderForm);
MisDataFun.OpName_MIS_MOBY_Insert(OpName,MisDataFun.MobyTagType.EngineTypeID_MES, EngineTypeID.ToString());
MisDataFun.OpName_MIS_MOBY_Insert(OpName,MisDataFun.MobyTagType.EngineType_MES, EngineType);
MisDataFun.OpName_MIS_MOBY_Insert(OpName,MisDataFun.MobyTagType.EngineID_MES, EngineID);
MisDataFun.OpName_MIS_MOBY_Insert(OpName,MisDataFun.MobyTagType.OrderForm_MES, OrderForm);
MIS_BASE.Write_EngineTypeID_MES(OpName, EngineTypeID);
MIS_BASE.Write_EngineType_MES(OpName, EngineType);
MIS_BASE.Write_EngineID_MES(OpName, EngineID);
MIS_BASE.Write_OrderForm_MES(OpName, OrderForm);
EngineTypeGetOver_PLC_Work(OpName, EngineTypeID, EngineType, EngineID, 0, OrderForm);
}
}
}
catch (Exception err)
{
// 保存出错日志 1.申请上线 2.传递机型 3.允许保存 4.扫码
MisDataSaveDate.FuntionMesRead.Alarm_SaveFileLog4Error(System.Reflection.MethodBase.GetCurrentMethod().Name, e, "Fun1053", err);
////ApplicationLog.WriteLog(err, "Function02:EngineTypeGetOver_PLC");
}
}
}
}

View File

@@ -0,0 +1,34 @@
using MesServerWork;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MesServerFunctions
{
partial class FunctionMES
{
/// <summary>
/// MES与PLC心跳监听
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
private void HeartBeat(object e)
{
try
{
DeviceDriver_BasicData.CustomeEvetnArgs msgEvent = (DeviceDriver_BasicData.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
int tagValue = Convert.ToInt32(msgEvent.TagValue);
//返写在MES心跳中
MIS_BASE.WritePLC(15, OpName, tagValue);
}
catch (Exception err)
{
////ApplicationLog.WriteLog(err, "Function02:FalseGO");
}
}
}
}

View File

@@ -0,0 +1,62 @@
using System;
using System.Data;
using System.Threading;
using System.Xml.Linq;
using MesServerWork;
using MisDataFunDll;
namespace MesServerFunctions
{
partial class FunctionMES
{
/// <summary>
/// PLC物料扫码校验
/// </summary>
/// <param name="e"></param>
public void MaterialsVerify(object e)
{
try
{
DeviceDriver_BasicData.CustomeEvetnArgs msgEvent = (DeviceDriver_BasicData.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
int tagValue = Convert.ToInt32(msgEvent.TagValue);
//判断PLC机型与MES机型是否一致
if (tagValue == 1)
{
int EngineTypeID;//机型代码
int PartPallet_Code;//托盘编号
string EngineType;//机型
string EngineID;//工件编号
string OrderForm;
MIS_BASE.GetEngineTypeFromPLC(OpName, out EngineTypeID, out EngineType, out EngineID, out PartPallet_Code, out OrderForm);
int MaterialsTypeCode = Convert.ToInt32(MIS_BASE.ReadPLC(201, OpName));
string MaterialsCode = MIS_BASE.ReadPLC(40, OpName).ToString();
DataTable dt = MisDataFun.XD_MaterialsVerify(OpName, EngineID, MaterialsCode, MaterialsTypeCode);
int result = Convert.ToInt32(dt.Rows[0]["result"]);
if (result == 1)
{
MIS_BASE.WritePLC(95, OpName, 1); // 物料校验成功
}
else
{
MIS_BASE.WritePLC(95, OpName, 2); // 物料校验失败
string msg = $"【{OpName}】产品:{EngineID} | 物料码:{MaterialsCode} | 物料类型:{MaterialsTypeCode.ToString()} 物料校验失败!";
MisDataSaveDate.Helper.ApiLogHelper.SaveMesLog(OpName, "MaterialsVerify " + msg, MisDataSaveDate.Helper.MesLogType.ERROR);
}
}
else
{
MIS_BASE.WritePLC(95, OpName, 0); // 物料验证结果清空
}
}
catch (Exception err)
{
////ApplicationLog.WriteLog(err, "Function08:EngineTypeGetOver_PLC");
}
}
}
}

View File

@@ -0,0 +1,88 @@
using MesServerWork;
using MesWork;
using MisDataFunDll;
using System;
using System.Data;
using System.Threading;
namespace MesServerFunctions
{
partial class FunctionMES
{
/// <summary>
/// 允许保存(针对半自动和手动压装工位)
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
private void MesRead(object e)
{
{
try
{
DeviceDriver_BasicData.CustomeEvetnArgs msgEvent = (DeviceDriver_BasicData.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
int tagValue = Convert.ToInt32(msgEvent.TagValue);
int EngineTypeID_MES;//机型代码
string EngineType_MES;//机型
string EngineID_MES;//工件编号
string OrderForm_MES;
MisDataFun.MobySendWebAndSaveData(OpName, MisDataFun.MobyTagType.MesRead, "0");
Thread.Sleep(500);
MisDataFun.MobySendWebAndSaveData(OpName, MisDataFun.MobyTagType.MesRead, "1");
if (tagValue == 1)
{
bool isEngineGetOver;
DataRow mobyData = MisDataFun.GetMobyTableByOpName(OpName).Rows[0];
EngineTypeID_MES = Convert.ToInt32(mobyData["产品型号代码_MES"]);
EngineType_MES = mobyData["发动机型号_MES"].ToString();
EngineID_MES = mobyData["变速器序列号_MES"].ToString();
OrderForm_MES = mobyData["订单号_MES"].ToString();
isEngineGetOver = Convert.ToBoolean(mobyData["允许工作"]);
if (!isEngineGetOver)
{
string msg2 = "【" + OpName + "】" + "请先开始订单生产后再进行保存,当前未允许工作!";
SendMessage.AsyncSendMessage_Notice(OpName, msg2);
return;
}
// 存追溯表数据
MisDataFun.WorkOrderOpWorkOver(OpName, EngineID_MES, OrderForm_MES);
// 保存物料数据
MisDataFun.Material_Insert(OpName, 1);
// 测量数据发动机在线状态
MisDataFun.WorkStartInsert(OpName, 1);
//通知设备MES的质量数据和物料数据保存完成
//统计在线产量,在线节拍
SendMessage.SendActuallyCount(OpName, tagValue);
MisDataFun.MobySendWebAndSaveData(OpName, MisDataFun.MobyTagType.MesReadOver, "1");
Thread.Sleep(1000 * 1);
MisDataFun.MobySendWebAndSaveData(OpName, MisDataFun.MobyTagType.WorkStart, "0");
MisDataFun.MobySendWebAndSaveData(OpName, MisDataFun.MobyTagType.EngineTypeGetOverPLC, "0");
MisDataFun.MobySendWebAndSaveData(OpName, MisDataFun.MobyTagType.PartLoad, "0");
MisDataFun.MobySendWebAndSaveData(OpName, MisDataFun.MobyTagType.MesRead, "0");
MisDataFun.MobySendWebAndSaveData(OpName, MisDataFun.MobyTagType.MesReadOver, "0");
MisDataFun.MobySendWebAndSaveData(OpName, MisDataFun.MobyTagType.FixAllow, "0");
string msg = "【" + OpName + "】" + "工件数据保存完成!";
SendMessage.AsyncSendMessage_Notice(OpName, msg);
}
}
catch (Exception err)
{
// 保存出错日志 1.申请上线 2.传递机型 3.允许保存 4.扫码
MisDataSaveDate.FuntionMesRead.Alarm_SaveFileLog4Error(System.Reflection.MethodBase.GetCurrentMethod().Name, e, "Fun1053", err);
////ApplicationLog.WriteLog(err, "Function08:MesReadOver");
}
}
}
}
}

View File

@@ -0,0 +1,55 @@
using System;
using System.Threading;
//using SystemFramework;
using MesServerWork;
using MisDataFunDll;
namespace MesServerFunctions
{
partial class FunctionMES
{
/// <summary>
/// 申请上线(针对上线工位)
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
private void PartLoad(object e)
{
try
{
DeviceDriver_BasicData.CustomeEvetnArgs msgEvent = (DeviceDriver_BasicData.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
int tagValue = Convert.ToInt32(msgEvent.TagValue);
// 清空MOBY表中所有数据
MisDataFun.MobySendWebAndSaveData(OpName, MisDataFun.MobyTagType.WorkStart, "0");
MisDataFun.MobySendWebAndSaveData(OpName, MisDataFun.MobyTagType.EngineTypeGetOverPLC, "0");
MisDataFun.MobySendWebAndSaveData(OpName, MisDataFun.MobyTagType.PartLoad, "0");
MisDataFun.MobySendWebAndSaveData(OpName, MisDataFun.MobyTagType.MesRead, "0");
MisDataFun.MobySendWebAndSaveData(OpName, MisDataFun.MobyTagType.MesReadOver, "0");
MisDataFun.MobySendWebAndSaveData(OpName, MisDataFun.MobyTagType.FixAllow, "0");
Thread.Sleep(500);
// 按照生产排序顺序获取订单相关数据
// 获取到数据 显示 申请上线、传递机型、允许工作三个点位
// 显示对应物料信息、
if (tagValue == 1)
{
}
else
{
////上线工位清MES传递机型信号
//MIS_BASE.Write_EngineTypeGetOver_MES(OpName, false);
//// 清除报警
}
}
catch (Exception err)
{
// 保存出错日志 1.申请上线 2.传递机型 3.允许保存 4.扫码
MisDataSaveDate.FuntionMesRead.Alarm_SaveFileLog4Error(System.Reflection.MethodBase.GetCurrentMethod().Name, e, "Fun1053", err);
////ApplicationLog.WriteLog(err, "Function08:MesReadOver");
}
}
}
}

View File

@@ -0,0 +1,336 @@
using System;
using MesServerWork;
using System.Threading;
using MisDataSaveDate;
using System.Collections;
//using SystemFramework;
namespace MesServerFunctions
{
partial class FunctionMES
{
/// <summary>
/// 处理WEB页面发送过来的请求m_Command + "|" + m_Value;
/// </summary>
/// <param name="OpName"></param>
/// <param name="Content"></param>
private void WebSubmit(object e)
{
try
{
DeviceDriver_BasicData.CustomeEvetnArgs msgEvent = (DeviceDriver_BasicData.CustomeEvetnArgs)e;
string OpName=Convert.ToString(msgEvent.OpName);
string Content = Convert.ToString(msgEvent.TagValue);
string[] dataArray = Content.Split('|');
if (dataArray.Length != 2)
return;
//消息类型
string m_Command = dataArray[0].ToString();
//消息参数
string m_Value = dataArray[1].ToString();
//消息参数数量
string[] m_Value_array = m_Value.Split('&');
//消息参数长度
int m_Value_length = m_Value_array.Length;
//工件信息
string engineID = "";
if (MIS_BASE.hashtable_EngineGetOver_EngineTypeID == null)
{
MIS_BASE.InitHashtable_MesServerCode();
}
if (MIS_BASE.hashtable_EngineGetOver_EngineTypeID == null)
{
return;
}
if (MIS_BASE.hashtable_EngineGetOver_EngineID.ContainsKey(OpName))
{
engineID = MIS_BASE.hashtable_EngineGetOver_EngineID[OpName].ToString();
}
DeviceDriver_BasicData.CustomeEvetnArgs _e = new DeviceDriver_BasicData.CustomeEvetnArgs();
_e.OpName = OpName;
_e.TagValue = m_Value;
//根据请求的命令处理逻辑
switch (m_Command)
{
case "Barcode":
if (m_Value_length > 1) return;
fun_Barcode(_e);
break;
case "OnLineState"://在线0、离线1、屏蔽2
try
{
if (m_Value_length > 1) return;
int a = Convert.ToInt32(m_Value);
if (a <= 2)
{
//BaseDataSystemMES.IsOnLine_Update(OpName, m_Value.ToString());
MIS_BASE.Write_OnLineState(OpName, Convert.ToInt32(m_Value));
if (a == 2) SendMessage.AsyncSendMessage_Notice(OpName, "屏蔽MES");
if (a == 0) SendMessage.AsyncSendMessage_Notice(OpName, "启用MES");
}
}
catch
{
}
break;
case "Reset"://复位将MES所有的信息都复位了
SetMoby(OpName);//将MES所有信号清空
break;
case "FixAllow"://重新拧紧
MIS_BASE.Write_FixAllow(OpName, false);
MIS_BASE.Write_FixAllow(OpName, true);
break;
case "IsAutoGetEngineID"://自动手动申请编号(线首)
if (m_Value_length > 1) return;
MIS_BASE.Write_IsAutoGetEngineID(OpName, Convert.ToInt32(m_Value));
break;
case "PartPalletGoOver"://空托盘放行
int Is_PartPalletGoOver;
MIS_BASE.Read_PartPalletGoOver(OpName, out Is_PartPalletGoOver);
if (Is_PartPalletGoOver == 1)
{
MIS_BASE.Write_PartPalletGoOver(OpName, 1);
}
else
{
MIS_BASE.Write_PartPalletGoOver(OpName,0);
}
break;
case "SetMoby"://清空托盘(线首)
SetMoby(OpName);//将MES所有信号清空
//MIS_BASE.Write_PartPalletCode_PLC(OpName, 1);
break;
case "RepairUplineMES"://返修上线
MIS_BASE.Write_RepairUpline_MES(OpName, true);
break;
case "CancelRepair"://将返修件置为正常件
break;
case "PartPalletCode"://申请写入托盘号
//MIS_BASE.Write_PartPalletCode_PLC(OpName, 1);
break;
case "WritePartPalletCode"://写入托盘号
if (m_Value_length > 1) return;
MIS_BASE.Write_PalletCode(OpName, Convert.ToInt32(m_Value));
break;
case "Normal"://启用正常拧紧工位
MIS_BASE.Write_Normal(OpName, 1);
MIS_BASE.Write_UnNormal(OpName, 0);
break;
case "UnNormal"://启用备用拧紧工位
MIS_BASE.Write_Normal(OpName, 0);
MIS_BASE.Write_UnNormal(OpName, 1);
break;
case "ResetDevice"://复位设备
MIS_BASE.Write_ResetDevice(OpName, true);
System.Threading.Thread.Sleep(1000);
MIS_BASE.Write_ResetDevice(OpName, false);
break;
case "IsNeedRepaire"://返修上线(返修上线点)
if (Convert.ToInt32(m_Value) == 1)
{
//修改托盘状态
MIS_BASE.Write_PalletInfo(OpName, 3);
//通知修改成功
MIS_BASE.Write_UpdatePalletOK(OpName, true);
IsNeedRepaire_OK(OpName);
}
else if (Convert.ToInt32(m_Value) == 0)
{
//通知修改成功
MIS_BASE.Write_UpdatePalletOK(OpName, true);
//直接给出工作完成
MIS_BASE.Write_MaterialVerifyOver(OpName, true);
}
else
{ }
break;
case "ContinueMatch":
//BaseDataSystemMES.QualityVerifyStatus_Hash_Write(OpName, true);
break;
//初始化网页信号
case "IniSingalToWeb":
InitializeSingalToWeb(OpName);
break;
case "Reset_Engine"://返修上线(返修上线点)
SetMoby(OpName);//将MES所有信号清空
//fun_EngineTypeGetOverPLC(OpName, 0);
//fun_EngineTypeGetOverPLC(OpName, 1);
break;
case "twoWorkSkip"://重新工作工件跳过工作(重新工作工件)
//工作完成
EngineTypeGetOver_PLC_Work_Skip(OpName);
break;
case "twoWork"://重新工作工件重新工作(重新工作工件)
//允许工作
EngineTypeGetOver_PLC_Work_two(OpName);
break;
case "SelectOrderForm"://分线接受前端模拟传递机型
_e.TagValueUp = "6";
EngineTypeGetOver_PLC(_e);
break;
case "outLineOpNameWorkOver"://分线接受前端模拟工作完成
_e.TagValueUp = "6";
_e.TagValue = 1;
MesRead(_e);
break;
default: break;
}
}
catch(Exception err)
{
////ApplicationLog.WriteLog(err, "Function02:WebSubmit");
}
}
private void SetMoby(string OpName)
{
try
{
//清空Moby时需要将MES信号清空
MIS_BASE.Write_ClearMesMoby(OpName);
//BaseDataSystemMES.MesServer_Process_EngineTypeOver(OpName);
SendMessageFun.SendMessage("5123", "1111", OpName);
MIS_BASE.Write_ResetDevice(OpName, true);
System.Threading.Thread.Sleep(1000);
MIS_BASE.Write_ResetDevice(OpName, false);
}
catch
{
}
}
/// <summary>
/// 网页重现登录,恢复关闭前的页面状态
/// </summary>
/// <param name="Opname">工位号</param>
private void InitializeSingalToWeb(string OpName)
{
InitOpPosion(OpName);
////3显示操作指导图片 PicShow_String_FirstOpName
//SendMessage.PicShow_FirstOpName(OpOpNamename);
////1直接在界面通过选择机型确认工序内容
//SendMessage.ProcessList_FirstOpName(OpName);
//// MOBY数据
//SendMessageFun.SendMessage("5", "1", OpName);
//// 物料信息 物料信息
//SendMessage.MaterialList(OpName);
SendMessageFun.SendMessage("315", "111", OpName);
// 新增查询PLC直通状态 网页显示
//MIS_BASE.Read_TagTypeID(63, Opname, out S_plcStatus);
InitAlarm(OpName);
}
//分线发送工件到位信号函数
private void sendmessage(string OpName, int tagValue, string Command)
{
string SendMessage;
SendMessage = "MES|" + Command + "|" + OpName + "|" + tagValue;
SendMessageFun.AsyncSendMessage(SendMessage);
}
private void InitAlarm(string Opname)
{
FuntionMesRead.Alarm_InitAlarm_Send(Opname, out Hashtable ht);
foreach (DictionaryEntry kv in ht)
{
var TagID = kv.Key.ToString();
var TagValue = kv.Value.ToString();
FuntionMesRead.Send_AlarmMsg(TagID, TagValue);
}
}
private void InitOpPosion(string Opname)
{
int S_WorkCheckOver = Convert.ToInt32(MIS_BASE.ReadPLC(30, Opname));
string S_WorkCheckOver_Msg = "MES|checkWorkOverIsShow|" + Opname + "|" + S_WorkCheckOver;
SendMessage.AsyncSendMessage(S_WorkCheckOver_Msg);
bool S_WorkStart;//工件到位 DBX0.1
MIS_BASE.Read_WorkStart(Opname, out S_WorkStart);
if (S_WorkStart == true)
{
SendMessageFun.SendInfomation("WorkStart", Convert.ToString(Convert.ToInt32(S_WorkStart)), Opname);
}
//----------------------------------------------------
bool S_PartLoad;//申请上线
MIS_BASE.Read_PartLoad(Opname, out S_PartLoad);
if (S_PartLoad == true)
{
SendMessageFun.SendInfomation("PartLoad", Convert.ToString(Convert.ToInt32(S_PartLoad)), Opname);
}
//----------------------------------------------------
bool S_EngineGetOver;//传递机型 DBX0.4
MIS_BASE.Read_EngineGetOver_PLC(Opname, out S_EngineGetOver);
if (S_EngineGetOver == true)
{
SendMessageFun.SendInfomation("EngineTypeGetOverPLC", Convert.ToString(Convert.ToInt32(S_EngineGetOver)), Opname);
//5 显示订单、机型信息 线首工位用
SendMessage.ShowMoby_FirstOpName(Opname);
//界面显示物料信息
SendMessage.MaterialList_FirstOpName(Opname);
}
//----------------------------------------------------
bool S_FixAllow;//允许工作 DBX3.1
MIS_BASE.Read_FixAllow(Opname, out S_FixAllow);
if (S_FixAllow == true)
{
SendMessageFun.SendInfomation("FixAllow", Convert.ToString(Convert.ToInt32(S_FixAllow)), Opname);
}
//----------------------------------------------------
bool S_MesRead;//允许保存 DBX3.1
MIS_BASE.Read_QualityData_Read_CF(Opname, out S_MesRead);
if (S_MesRead == true)
{
SendMessageFun.SendInfomation("MesRead", Convert.ToString(Convert.ToInt32(S_MesRead)), Opname);
}
//----------------------------------------------------
bool S_ReadOver;//保存完成
MIS_BASE.Read_MesReadOver(Opname, out S_ReadOver);
if (S_ReadOver == true)
{
SendMessageFun.SendInfomation("MesReadOver", Convert.ToString(Convert.ToInt32(S_ReadOver)), Opname);
}
//----------------------------------------------------
bool S_MaterialVerifyOver;//工作完成 DBX2.3
MIS_BASE.Read_MaterialVerifyOver(Opname, out S_MaterialVerifyOver);
if (S_MaterialVerifyOver == true)
{
SendMessageFun.SendInfomation("MaterialVerifyOver", Convert.ToString(Convert.ToInt32(S_MaterialVerifyOver)), Opname);
}
//----------------------------------------------------
int S_QualityMask;//合格标志 DBX588
MIS_BASE.Read_QualityMask(Opname, out S_QualityMask);
if (S_QualityMask == 1)
{
SendMessageFun.SendInfomation("QualityMask", Convert.ToString(Convert.ToInt32(S_QualityMask)), Opname);
}
//----------------------------------------------------
string S_plcStatus = "false";//DBX501.5 PLC直通1 强制放行 0 正常循环
if (S_plcStatus.ToLower() == "false")
{
SendMessageFun.SendInfomation("PlcStatus", "0", Opname);
}
else
{
SendMessageFun.SendInfomation("PlcStatus", "1", Opname);
}
}
}
}

View File

@@ -0,0 +1,44 @@
using MesServerWork;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MesServerFunctions
{
partial class FunctionMES
{
/// <summary>
/// 工位合格标志
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
private void IsOk(object e)
{
try
{
DeviceDriver_BasicData.CustomeEvetnArgs msgEvent = (DeviceDriver_BasicData.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
int tagValue = Convert.ToInt32(msgEvent.TagValue);
int qualityMask;
MIS_BASE.Read_QualityMask(OpName, out qualityMask);
//判断是否合格
if (qualityMask == 1)
{
qualityMask = 1;
} else {
qualityMask = 0;
}
//通知WEB修改状态
string message = "MES|QualityMask|" + OpName + "|" + qualityMask.ToString();
SendMessage.AsyncSendMessage(message);
}
catch (Exception err)
{
////ApplicationLog.WriteLog(err, "Function02:FalseGO");
}
}
}
}

View File

@@ -0,0 +1,49 @@
using MesServerWork;
using System;
using System.Threading;
//using SystemFramework;
namespace MesServerFunctions
{
partial class FunctionMES
{
/// <summary>
/// 工件到位与离开时清空MES自身信号
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
private void WorkStart(object e)
{
try
{
DeviceDriver_BasicData.CustomeEvetnArgs msgEvent = (DeviceDriver_BasicData.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
int tagValue = Convert.ToInt32(msgEvent.TagValue);
//if (tagValue > 0)
//{
// MisDataFun.OpName_MIS_MOBY_Insert(OpName,MisDataFun.MobyTagType.WorkStartIn, DateTime.Now.ToString());
// MisDataFun.OpName_MIS_MOBY_Insert(OpName,MisDataFun.MobyTagType.WorkStart, tagValue.ToString());
//}
//else
//{
// MisDataFun.OpName_MIS_MOBY_Insert(OpName,MisDataFun.MobyTagType.WorkStartOut, DateTime.Now.ToString());
// MIS_BASE.Write_MesReadOver(OpName, false);
// MIS_BASE.Write_ConfirmOkGo(OpName, false);
// MIS_BASE.Write_FixAllow(OpName, false);
// MIS_BASE.Write_EngineTypeGetOver_MES(OpName, false);
// //工作完成
// MIS_BASE.Write_MaterialVerifyOver(OpName, false);
// MIS_BASE.Write_EngineTypeID_MES(OpName, 0);
// MIS_BASE.Write_EngineType_MES(OpName, "");
// MIS_BASE.Write_EngineID_MES(OpName, "");
// MIS_BASE.Write_OrderForm_MES(OpName, "");
//}
}
catch (Exception err)
{
////ApplicationLog.WriteLog(err, "Function02:WorkStart");
}
}
}
}

Binary file not shown.