chore: 初始化北汽福田MES采集程序

This commit is contained in:
yexingqiang
2026-05-29 13:44:10 +08:00
commit c5e248e993
1399 changed files with 187196 additions and 0 deletions

View File

@@ -0,0 +1,337 @@
using bizFacade;
using MesServerWork;
using System;
using System.Collections.Generic;
using System.Threading;
namespace MesServerFunctions
{
public partial class FunctionMES
{
object lockFunWork;
//public void FunWork(DoWhatPlc.CustomeEvetnArgs e)
public void FunWork(string recData)
{
lockFunWork = new object();
lock (lockFunWork)
{
List<string> dataArray = DoWhatPlc.MessageText.GetCmdStringList(recData);
//string[] dataArray = recData.Split('|');
//if (dataArray.Count != 4)
//return;
//消息来源
string m_Source = dataArray[0].ToString();
//消息类型 Barcode
string m_Command = dataArray[1].ToString();
//工位号
string m_OpName = dataArray[2].ToString();
//消息参数
string m_Value = dataArray[3].ToString();
DoWhatPlc.CustomeEvetnArgs e = new DoWhatPlc.CustomeEvetnArgs();// = Newtonsoft.Json.JsonConvert.DeserializeObject<DoWhatPlc.CustomeEvetnArgs>(m_Value);
string tagValue;
switch (m_Source)
{
case "BarCode":
e.OpName = m_OpName;
e.TagValue = m_Value;
fun_Barcode(e);
break;
case "WEB":
e.OpName = m_OpName;
e.TagValue = m_Command + "|" + m_Value;
fun_WebSubmit(e);
break;
case "PLC":
e = Newtonsoft.Json.JsonConvert.DeserializeObject<DoWhatPlc.CustomeEvetnArgs>(m_Value);
switch (e.TagValue.ToString().ToLower())
{
case "false":
tagValue = "0";
break;
case "true":
tagValue = "1";
break;
default:
tagValue = e.TagValue.ToString();
break;
}
e.TagValue = tagValue;
switch (e.TagTypeCodeID.ToString())
{
//PLC 工件到位
case "2":
fun_WorkStart(e);
break;
//PLC 申请上线
case "43":
fun_PartLoad(e);
break;
//PLC 允许保存质量数据
case "19":
fun_MesRead(e);
break;
//MES 保存数据完成
case "20":
fun_MesReadOver(e);
break;
//PLC 工位合格标志
case "22":
fun_IsOk(e);
break;
//PLC PA010走流程点 6s1
case "25":
if(m_OpName == "J07PA010")
{
e.TagTypeID = 0;
e.TagTypeCodeID = 30; // 写入报警点变量位置
fun_J07PA010_WorkStart(e);
}
break;
//PLC PA010走流程点 6s2
case "26":
if (m_OpName == "J07PA010")
{
e.TagTypeID = 1;
e.TagTypeCodeID = 31; // 写入报警点变量位置
//fun_J07PA010_WorkStart(e);
}
break;
//PLC PA010走流程点 6s3
case "27":
if (m_OpName == "J07PA010")
{
e.TagTypeID = 1;
//e.TagTypeID = 2;
e.TagTypeCodeID = 31; // 写入报警点变量位置
//e.TagTypeCodeID = 32; // 写入报警点变量位置
fun_J07PA010_WorkStart(e);
}
break;
//PLC PA010走流程点 5s1
case "28":
if (m_OpName == "J07PA010")
{
e.TagTypeID = 0;
e.TagTypeCodeID = 33; // 写入报警点变量位置
fun_J07PA010_WorkStart(e);
}
break;
//PLC PA010走流程点 5s2
case "29":
if (m_OpName == "J07PA010")
{
e.TagTypeID = 1;
e.TagTypeCodeID = 34; // 写入报警点变量位置
fun_J07PA010_WorkStart(e);
}
break;
//PLC PA010走流程点 5s3
case "35":
if (m_OpName == "J07PA010")
{
e.TagTypeID = 2;
e.TagTypeCodeID = 36; // 写入报警点变量位置
fun_J07PA010_WorkStart(e);
}
break;
//PLC 螺栓补拧结束
case "30":
int value = Convert.ToInt32(MIS_BASE.ReadPLC(30, m_OpName));
if (value == 0)
{
MIS_BASE.WritePLC(77, m_OpName, 0);
MIS_BASE.WritePLC(88, m_OpName, 0);
//先修改按钮显示
BaseDataSystemMES.SetButtomShouOrHide(m_OpName, "MES_BoltAddWorkStart", 1, 1, "MES_BoltAddWorkEnd", 0);
//通知前端刷新按钮
SendMessageFun.SendInfomation("SetButtomShouOrHide", "1", m_OpName);
}
break;
//PLC 传递机型
case "44":
fun_EngineTypeGetOverPLC(e);
break;
//MES 合格放行
case "51":
fun_ConfirmOkGo(e);
break;
//MES 不合格放行
case "8":
fun_FalseGo(e);
break;
//MES保存实时质量数据
case "65":
fun_MesSaveNowData(e);
break;
//MES 系统健康心跳
case "14":
fun_HeartBeatMIS(e);
break;
case "63":
string S_plcStatus;//DBX501.5 PLC直通1 强制放行 0 正常循环
MIS_BASE.Read_TagTypeID(63, m_OpName, out S_plcStatus);
if (Convert.ToInt32(S_plcStatus) == 0)
{
SendMessageFun.SendInfomation("PlcStatus", "0", m_OpName);
}
else
{
SendMessageFun.SendInfomation("PlcStatus", "1", m_OpName);
}
break;
// PLC 程序号
case "125":
// 将程序号转发给前端页面
SendMessageFun.SendInfomation("CodeNumber", e.TagValue.ToString(), m_OpName);
break;
// PLC 程序号的第几颗螺丝
case "126":
SendMessageFun.SendInfomation("CodeNumberWorkNumber", e.TagValue.ToString(), m_OpName);
break;
}
break;
}
}
}
//1.工件到位后PLC给MES传递机型(DBX0.4)(44)
//MES判断条码是否全部扫描完成
//PLC给出允许保存(DBX100.2)(19)MES见到(DBX100.2)(19)为1后给出保存完成(DBX102.2)(20)
//PLC见到保存完成(DBX102.2)(20)为1后清空允许保存(DBX100.2)(19)
//MES见到允许保存(DBX100.2)(19)为0后清空保存完成(DBX102.2)(20)
//MES判断总合格标志(INT104)(21)为1后给出合格放行(DBX2.5)(51)
/// <summary>
/// PA010 工作流程开始
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
public void fun_J07PA010_WorkStart(DoWhatPlc.CustomeEvetnArgs e)
{
ThreadPool.QueueUserWorkItem(J07PA010WorkStart, e);
}
/// <summary>
/// 扫描条码
/// </summary>
/// <param name="OpName"></param>
/// <param name="barcode"></param>
///
public void fun_Barcode(DoWhatPlc.CustomeEvetnArgs e)
{
ThreadPool.QueueUserWorkItem(Barcode, e);
}
/// <summary>
/// 传递机型
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
public void fun_EngineTypeGetOverPLC(DoWhatPlc.CustomeEvetnArgs e)
{
ThreadPool.QueueUserWorkItem(EngineTypeGetOver_PLC, e);
}
/// <summary>
/// 系统健康心跳监测
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
public void fun_HeartBeatMIS(DoWhatPlc.CustomeEvetnArgs e)
{
ThreadPool.QueueUserWorkItem(HeartBeat, e);
}
/// <summary>
/// 合格放行
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
public void fun_ConfirmOkGo(DoWhatPlc.CustomeEvetnArgs e)
{
ThreadPool.QueueUserWorkItem(ConfirmOkGo, e);
}
/// <summary>
/// 不合格放行
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
public void fun_FalseGo(DoWhatPlc.CustomeEvetnArgs e)
{
ThreadPool.QueueUserWorkItem(FalseGO, e);
}
/// <summary>
/// 允许保存
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
public void fun_MesRead(DoWhatPlc.CustomeEvetnArgs e)
{
ThreadPool.QueueUserWorkItem(MesRead, e);
}
/// <summary>
/// 保存完成
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
public void fun_MesReadOver(DoWhatPlc.CustomeEvetnArgs e)
{
ThreadPool.QueueUserWorkItem(MesReadOver, e);
}
/// <summary>
/// 工件到位离开(清空所有的MES信号)
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
public void fun_WorkStart(DoWhatPlc.CustomeEvetnArgs e)
{
ThreadPool.QueueUserWorkItem(WorkStart, e);
}
/// <summary>
/// 申请上线 43
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
public void fun_PartLoad(DoWhatPlc.CustomeEvetnArgs e)
{
ThreadPool.QueueUserWorkItem(PartLoad, e);
}
/// <summary>
/// 处理WEB页面发送过来的请求m_Command + "|" + m_Value;
/// </summary>
/// <param name="OpName"></param>
/// <param name="Content"></param>
public void fun_WebSubmit(DoWhatPlc.CustomeEvetnArgs e)
{
ThreadPool.QueueUserWorkItem(WebSubmit, e);
}
/// <summary>
/// MES实时保存质量数据
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
public void fun_MesSaveNowData(DoWhatPlc.CustomeEvetnArgs e)
{
ThreadPool.QueueUserWorkItem(MesSaveNowData, e);
}
/// <summary>
/// 工位是否合格
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
public void fun_IsOk(DoWhatPlc.CustomeEvetnArgs e)
{
ThreadPool.QueueUserWorkItem(IsOk, e);
}
}
}