init: 导入项目到 meswork Gitea
This commit is contained in:
@@ -0,0 +1,247 @@
|
||||
using OpcData;
|
||||
using System;
|
||||
using SystemFramework;
|
||||
using System.Threading;
|
||||
using System.Collections;
|
||||
using System.Collections.Specialized;
|
||||
using DataLinkMesWork;
|
||||
|
||||
namespace MisDataName
|
||||
{
|
||||
//public partial class ___ { }
|
||||
public partial class MisData
|
||||
{
|
||||
|
||||
//
|
||||
private void TagData_MisData_TagDataOnChangeCustomeEvetnArgs(object msgEvent)
|
||||
{
|
||||
lock (locker)
|
||||
{
|
||||
try
|
||||
{
|
||||
CustomeEvetnArgs e = (CustomeEvetnArgs)msgEvent;
|
||||
string OpName = e.OpName.ToString();//工位号
|
||||
string MesCode = e.TagType.ToString();//变量类型代码
|
||||
object tagValue = e.TagValue;//变量(0或者1)
|
||||
string cmd = "";
|
||||
cmd = MesDataFunction.OpcOperation.hashtable_TagTypeTagName[MesCode];
|
||||
string mesServerdllName;
|
||||
|
||||
mesServerdllName = GetMesServeDllByOpName(OpName);
|
||||
//DoWhatPlc.ReturnValueString rv =
|
||||
//new DoWhatPlc.ReturnValueString(e.TagID.ToString(), e.TagValue.ToString(), e.OpName.ToString(), e.TagValueType.ToString(), e.TagType.ToString(), e.TagKeepTime.ToString(), mesServerdllName, fun, mesServerCode.ToString("00"));
|
||||
//string rvMsg = Newtonsoft.Json.JsonConvert.SerializeObject(rv);
|
||||
|
||||
//if (MesCode == "0") return;
|
||||
string fun = "fun_" + cmd;
|
||||
int mesServerCode;
|
||||
mesServerCode = GetMesServerCodeByOpName(OpName);
|
||||
string rvMsg = Newtonsoft.Json.JsonConvert.SerializeObject(e);
|
||||
|
||||
string msg;
|
||||
if (cmd == null)
|
||||
{
|
||||
|
||||
//DoWhatPlc.ReturnValueString rv =
|
||||
//new DoWhatPlc.ReturnValueString(e.TagID.ToString(), e.TagValue.ToString(), e.OpName.ToString(), e.TagTypeCodeID.ToString(), e.TagTypeID.ToString(), e.TagKeepTime.ToString(), mesServerdllName, fun, mesServerCode.ToString("00"),
|
||||
//e.TimeStamp, e.TimeStampBefore, e.TagValueBefore.ToString(), e.TagName.ToString(), e.ItemName.ToString(), e.ShaftID.ToString(), e.TagOrderBy.ToString());
|
||||
|
||||
//string rvMsg = Newtonsoft.Json.JsonConvert.SerializeObject(rv);
|
||||
cmd = MesCode;
|
||||
msg = $"PLC|{cmd}|{OpName}|{rvMsg}";
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//if (Convert.ToInt32(MesDataFunction.OpcOperation.hashtable_MesTagTypeChange[cmd]) == 0 && MesDataFunction.OpcOperation.hashtable_MesTagTypeChange[cmd] != null) return;
|
||||
|
||||
//DoWhatPlc.ReturnValueString rv =
|
||||
//new DoWhatPlc.ReturnValueString(e.TagID.ToString(), e.TagValue.ToString(), e.OpName.ToString(), e.TagTypeCodeID.ToString(), e.TagTypeID.ToString(), e.TagKeepTime.ToString(), mesServerdllName, fun, mesServerCode.ToString("00"),
|
||||
//e.TimeStamp, e.TimeStampBefore, e.TagValueBefore.ToString(), e.TagName.ToString(), e.ItemName.ToString(), e.ShaftID.ToString(), e.TagOrderBy.ToString());
|
||||
|
||||
////DoWhatPlc.ReturnValueString rv =
|
||||
////new DoWhatPlc.ReturnValueString(e.TagID.ToString(), e.TagValue.ToString(), e.OpName.ToString(), e.TagValueType.ToString(), e.TagType.ToString(), e.TagKeepTime.ToString(), mesServerdllName, fun, mesServerCode.ToString("00"));
|
||||
//string rvMsg = Newtonsoft.Json.JsonConvert.SerializeObject(rv);
|
||||
|
||||
msg = $"PLC|{cmd}|{OpName}|{rvMsg}";
|
||||
|
||||
//MesServerWork.MIS_BASE.asyncSendMessagePLC(mesServerdllName, msg);
|
||||
|
||||
//MesServerFunction(OpName, tagValue, fun);
|
||||
|
||||
}
|
||||
MesServerWork.MIS_BASE.asyncSendMessagePLC(mesServerdllName, msg,OpName);
|
||||
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
ApplicationLog.WriteLog(err, "TagData_Lable_TagDataOnChange");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//private void TagData_MisData_TagDataOnChange(object msgEvent)
|
||||
//{
|
||||
// lock (locker)
|
||||
// {
|
||||
// try
|
||||
// {
|
||||
// CustomeEvetnArgs e = (CustomeEvetnArgs)msgEvent;
|
||||
// string OpName = e.OpName.ToString();//工位号
|
||||
// string MesCode = e.TagType.ToString();//变量类型代码
|
||||
// object tagValue = e.TagValue;//变量(0或者1)
|
||||
// string cmd = "";
|
||||
// cmd = MesDataFunction.OpcOperation.hashtable_TagTypeTagName[MesCode];
|
||||
// string mesServerdllName;
|
||||
|
||||
// mesServerdllName = GetMesServeDllByOpName(OpName);
|
||||
// //DoWhatPlc.ReturnValueString rv =
|
||||
// //new DoWhatPlc.ReturnValueString(e.TagID.ToString(), e.TagValue.ToString(), e.OpName.ToString(), e.TagValueType.ToString(), e.TagType.ToString(), e.TagKeepTime.ToString(), mesServerdllName, fun, mesServerCode.ToString("00"));
|
||||
// //string rvMsg = Newtonsoft.Json.JsonConvert.SerializeObject(rv);
|
||||
|
||||
// //if (MesCode == "0") return;
|
||||
// string fun = "fun_" + cmd;
|
||||
// int mesServerCode;
|
||||
// mesServerCode = GetMesServerCodeByOpName(OpName);
|
||||
|
||||
|
||||
// if (cmd == null)
|
||||
// {
|
||||
|
||||
|
||||
// string rvMsg = Newtonsoft.Json.JsonConvert.SerializeObject(e);
|
||||
// cmd = MesCode;
|
||||
// string msg = $"PLC|{cmd}|{OpName}|{rvMsg}";
|
||||
// MesServerWork.MIS_BASE.asyncSendMessagePLC(mesServerdllName, msg, OpName);
|
||||
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// string rvMsg = Newtonsoft.Json.JsonConvert.SerializeObject(e);
|
||||
|
||||
|
||||
|
||||
|
||||
// string msg = $"PLC|{cmd}|{OpName}|{rvMsg}";
|
||||
|
||||
// MesServerWork.MIS_BASE.asyncSendMessagePLC(mesServerdllName, msg, OpName);
|
||||
|
||||
// //MesServerFunction(OpName, tagValue, fun);
|
||||
|
||||
// }
|
||||
// }
|
||||
// catch (Exception err)
|
||||
// {
|
||||
// ApplicationLog.WriteLog(err, "TagData_Lable_TagDataOnChange");
|
||||
// }
|
||||
// }
|
||||
|
||||
//}
|
||||
static object locker = new object();
|
||||
|
||||
/// <summary>
|
||||
/// MesServerFunction
|
||||
/// </summary>
|
||||
/// <param name="OpName"></param>
|
||||
/// <param name="tagValue"></param>
|
||||
/// <param name="fun"></param>
|
||||
private static void MesServerFunction(string OpName, object tagValue,string fun)
|
||||
{
|
||||
try
|
||||
{
|
||||
string ResultOK = "";
|
||||
int mesServerCode;
|
||||
mesServerCode = GetMesServerCodeByOpName(OpName);
|
||||
string mesServerdllName;
|
||||
mesServerdllName = GetMesServeDllByOpName(OpName);
|
||||
|
||||
|
||||
OpcData.CustomeEvetnArgs e = new OpcData.CustomeEvetnArgs();
|
||||
e.OpName = OpName;
|
||||
e.TagValue = tagValue;
|
||||
object[] Paramsters = new object[1];
|
||||
Paramsters[0] = e;
|
||||
|
||||
System.Reflection.Assembly assembly;
|
||||
|
||||
//自动工位不调用function
|
||||
if (mesServerCode == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
bool IsOK=false;
|
||||
lock (locker)
|
||||
{
|
||||
IsOK= MesDataFunction.OpcOperation.Hashtable_assembly.ContainsKey(mesServerdllName);
|
||||
}
|
||||
if (IsOK)
|
||||
{
|
||||
assembly = (System.Reflection.Assembly)MesDataFunction.OpcOperation.Hashtable_assembly[mesServerdllName];
|
||||
}
|
||||
else
|
||||
{
|
||||
assembly = System.Reflection.Assembly.Load(mesServerdllName);
|
||||
if (assembly == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
MesDataFunction.OpcOperation.Hashtable_assembly.Add(mesServerdllName, assembly);
|
||||
}
|
||||
|
||||
ResultOK = Reflection.ReflectionMethod(assembly, "MesServerFunctions", "Functions_BASE_" + mesServerCode.ToString("00"), fun, Paramsters);
|
||||
if (ResultOK != "ok")
|
||||
{
|
||||
// ApplicationLog.WriteLog("ReflectionMethod is Error:" + OpName + fun + ResultOK);
|
||||
}
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
ApplicationLog.WriteLog(err, "MesServerFunction");
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 根据工位号获取MesServerCode
|
||||
/// </summary>
|
||||
/// <param name="OpName"></param>
|
||||
/// <returns></returns>
|
||||
private static int GetMesServerCodeByOpName(string OpName)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (hashtable_MesServerCode.ContainsKey(OpName))
|
||||
{
|
||||
return Convert.ToInt32(hashtable_MesServerCode[OpName]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 根据工位号获取MesServerDll
|
||||
/// </summary>
|
||||
/// <param name="OpName"></param>
|
||||
/// <returns></returns>
|
||||
private static string GetMesServeDllByOpName(string OpName)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (hashtable_MesDll.ContainsKey(OpName))
|
||||
{
|
||||
return hashtable_MesDll[OpName].ToString();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
ApplicationLog.WriteLog(err, "GetMesServeDllByOpName");
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
using OpcData;
|
||||
using System;
|
||||
using SystemFramework;
|
||||
using System.Threading;
|
||||
using System.Collections;
|
||||
using System.Collections.Specialized;
|
||||
using DataLinkMesWork;
|
||||
using System.Configuration;
|
||||
using MesWork;
|
||||
|
||||
namespace MisDataName
|
||||
{
|
||||
//public partial class ___ { }
|
||||
public partial class MisData
|
||||
{
|
||||
|
||||
static object lockerTagTypeCodeID = new object();
|
||||
public static string MqttTargetTopicTagTypeCodeID = ConfigurationManager.AppSettings["MqttTargetTopicTagTypeCodeID"];
|
||||
private void TagTypeCodeID_TagDataOnChange(object msgEvent)
|
||||
{
|
||||
lock (lockerTagTypeCodeID)
|
||||
{
|
||||
try
|
||||
{
|
||||
CustomeEvetnArgs e = (CustomeEvetnArgs)msgEvent;
|
||||
string reMessage = "TAG"+"|"+ "CMD" + "|" +e.OpName+ "|" + Newtonsoft.Json.JsonConvert.SerializeObject(e);
|
||||
|
||||
string topic = $"{MqttTargetTopicTagTypeCodeID}/{e.OpName}";
|
||||
MesWork.Mqtt.Publish(topic, reMessage);
|
||||
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
ApplicationLog.WriteLog(err, "TagTypeCodeID_TagDataOnChange");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
using OpcData;
|
||||
using System;
|
||||
using SystemFramework;
|
||||
using System.Threading;
|
||||
using System.Configuration;
|
||||
using MQTTnet;
|
||||
|
||||
namespace MisDataName
|
||||
{
|
||||
//public partial class ___ { }
|
||||
public partial class MisData
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="x"></param>
|
||||
private static void OnSubscriberConnected(MQTTnet.Client.Connecting.MqttClientConnectedEventArgs x)
|
||||
{
|
||||
var rec = x.AuthenticateResult.ResultCode.ToString();
|
||||
// label_State.Text = rec;
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="x"></param>
|
||||
private static void OnSubscriberDisconnected(MQTTnet.Client.Disconnecting.MqttClientDisconnectedEventArgs x)
|
||||
{
|
||||
//var rec = x.AuthenticateResult.ResultCode.ToString();
|
||||
//label_State.Text = rec;
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="x"></param>
|
||||
private static void OnSubscriberMessageReceived(MQTTnet.MqttApplicationMessageReceivedEventArgs x)
|
||||
{
|
||||
var msg = x.ApplicationMessage.ConvertPayloadToString();
|
||||
//WebAndBarChange(msg);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private static void WebAndBarChange(string msg)
|
||||
{
|
||||
try
|
||||
{
|
||||
ThreadPool.QueueUserWorkItem(TransferInfToMES, msg);
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
ApplicationLog.WriteLog(err, "WebAndBarChange");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 接受到通讯服务器传递过来的信息,转给业务处理服务
|
||||
/// </summary>
|
||||
/// <param name="text"></param>
|
||||
private static void TransferInfToMES(object text)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (text == null) return;
|
||||
string recData = text.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();
|
||||
|
||||
if (!m_WorkStart_OpName.ContainsKey(m_OpName)) return; //当前系统是否存在该工位
|
||||
|
||||
switch (m_Source)
|
||||
{
|
||||
case "BarCode":
|
||||
//处理条码逻辑
|
||||
if (m_Command == "Bar")
|
||||
{
|
||||
MesServerFunction(m_OpName, m_Value, "fun_Barcode");
|
||||
}
|
||||
break;
|
||||
case "WEB":
|
||||
string Content = m_Command + "|" + m_Value;
|
||||
MesServerFunction(m_OpName, Content, "fun_WebSubmit");
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
ApplicationLog.WriteLog(err, "TransferInf");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
using OpcData;
|
||||
using System;
|
||||
using SystemFramework;
|
||||
using System.Threading;
|
||||
using System.Collections;
|
||||
using System.Collections.Specialized;
|
||||
using MisDataFunction;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace MisDataName
|
||||
{
|
||||
//public partial class ___ { }
|
||||
public partial class MisData
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 监控数据的所有变化,从这里产生
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
public override void OPCTagData_TagDataOnChangeMIS(object sender, OpcData.CustomeEvetnArgs e)
|
||||
{
|
||||
Console.WriteLine($"【【{e.TagName}【【{e.TagValueBefore}->{e.TagValue}【【{ e.TagKeepTime}");
|
||||
|
||||
OPCTagData_TagDataOnChange(sender, e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 定时触发,检测PLC在线状态,周期:3 s
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="eState"></param>
|
||||
public override void PlcStateEvent(object sender, OpcData.PlcStateEvetnArgs eState)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void OPCTagData_TagDataOnChange(object sender, OpcData.CustomeEvetnArgs e)
|
||||
{
|
||||
|
||||
//处理MIS业务 保存数据
|
||||
//ThreadPool.QueueUserWorkItem(Function.MIS_Funtion, e);
|
||||
//处理MES业务 Function
|
||||
ThreadPool.QueueUserWorkItem(TagData_MisData_TagDataOnChangeCustomeEvetnArgs, e);
|
||||
//ThreadPool.QueueUserWorkItem(TagData_MisData_TagDataOnChange, e);
|
||||
//设备状态日志
|
||||
ThreadPool.QueueUserWorkItem(TagTypeCodeID_TagDataOnChange, e);
|
||||
|
||||
|
||||
//发送通讯服务器 MES web界面显示用 加工位号
|
||||
TransferInfToWebServer(e);
|
||||
//改变控件状态
|
||||
//showMessagePLCInvoke(e);
|
||||
//更新状态窗口控件状态
|
||||
//ExcutePlcChange(e);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
using OpcData;
|
||||
using System;
|
||||
using SystemFramework;
|
||||
using System.Threading;
|
||||
using System.Collections;
|
||||
using System.Collections.Specialized;
|
||||
using MisDataFunction;
|
||||
|
||||
namespace MisDataName
|
||||
{
|
||||
//public partial class ___ { }
|
||||
public partial class MisData
|
||||
{
|
||||
public delegate void ShowMessagePLCInvoke(OpcData.CustomeEvetnArgs msg);
|
||||
/// <summary>
|
||||
/// 异步方式显示工位号
|
||||
/// </summary>
|
||||
public ShowMessagePLCInvoke showMessagePLCInvoke;
|
||||
|
||||
int richTextBox_Length = 0;
|
||||
/// <summary>
|
||||
/// 展示信号变化
|
||||
/// </summary>
|
||||
/// <param name="msg"></param>
|
||||
private void ShowMessagePLC(OpcData.CustomeEvetnArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
//判断工位PLC消息显示方式(显示所有)
|
||||
string opname = e.OpName.ToString();
|
||||
string TagValue;
|
||||
string TagType = e.TagType.ToString();
|
||||
int TagKey = Convert.ToInt32(e.TagKey);
|
||||
switch (Convert.ToInt32(e.TagValueType))
|
||||
{
|
||||
case 11:
|
||||
TagValue = (Convert.ToInt32(e.TagValue)).ToString();
|
||||
break;
|
||||
default:
|
||||
TagValue = e.TagValue.ToString();
|
||||
break;
|
||||
}
|
||||
string msg = "MIS|" + TagType + "|" + opname + "|" + TagValue + "|" + TagKey;
|
||||
if ((opname == WorkStationNum_Now || radioButton_AllStation.Checked)&& !radioButton_Pause.Checked)
|
||||
{
|
||||
Action<string> ActionDe = (x) => { richTextBox_MessagePLC.Text = x + "\r\n" + richTextBox_MessagePLC.Text; };
|
||||
richTextBox_MessagePLC.Invoke(ActionDe, msg);
|
||||
richTextBox_Length++;
|
||||
|
||||
|
||||
if (richTextBox_Length > 3000)
|
||||
{
|
||||
Action RichClear = () => { richTextBox_MessagePLC.Text = ""; };
|
||||
richTextBox_MessagePLC.Invoke(RichClear);
|
||||
richTextBox_Length = 0;
|
||||
// richTextBox_MessagePLC.Text = "";
|
||||
}
|
||||
}
|
||||
|
||||
TestPlcConnect.HeartBeatChange(opname,Convert .ToInt32 (TagType));
|
||||
|
||||
//只显示当前工位
|
||||
if (opname == WorkStationNum_Now && Cbx_StatusDisplay.Checked)
|
||||
{
|
||||
//更改按钮显示状态
|
||||
RefreshBtnColor_Thread(Convert.ToInt32(TagType), TagValue);
|
||||
RefreshStationStatus_Thread(Convert.ToInt32(TagType), TagValue); //更新工位状态栏
|
||||
|
||||
//允许保存、工作完成时,刷新质量数据
|
||||
if (checkBox_Quality_Display.Checked && TagValue == "1"&&(TagType == "19" || TagType == "59"))
|
||||
{
|
||||
button_ReadData_Click(null ,null );//刷新当前工位数据(质量)
|
||||
}
|
||||
|
||||
if (TagType == "44" && TagValue == "1" && checkBox_PLCData_Display.Checked)
|
||||
{
|
||||
ReadPLC_ProductInfo();
|
||||
}
|
||||
if (TagType == "5" && TagValue == "1" && checkBox_MESData_Display.Checked)
|
||||
{
|
||||
ReadMES_ProductInfo();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
ApplicationLog.WriteLog(err, err.Message);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,278 @@
|
||||
using OpcData;
|
||||
using System;
|
||||
using SystemFramework;
|
||||
using System.Threading;
|
||||
using System.Collections;
|
||||
using System.Collections.Specialized;
|
||||
using MisDataFunction;
|
||||
|
||||
namespace MisDataName
|
||||
{
|
||||
//public partial class ___ { }
|
||||
public partial class MisData
|
||||
{
|
||||
|
||||
private void MisData_SyncRawData()
|
||||
{
|
||||
|
||||
/*
|
||||
SELECT
|
||||
[TagID]
|
||||
,[TagName]
|
||||
,[工位号]
|
||||
,[数据来源]
|
||||
,[IP]
|
||||
,[TagTypeID]
|
||||
,[TagLong]
|
||||
,[DbName]
|
||||
,[变量类型]
|
||||
,[变量地址]
|
||||
,[变量其它]
|
||||
,[演示偏移]
|
||||
,[列位置]
|
||||
,[测量位置]
|
||||
,[测量项目]
|
||||
,[测量单位]
|
||||
,[变量类型代码]
|
||||
,[变量类型名称]
|
||||
,[机体类型]
|
||||
,[线体类型]
|
||||
,[TagAdr]
|
||||
,[TagAdrDemo]
|
||||
,[是否启用]
|
||||
,[连接名称]
|
||||
,[OpcServer_MIS]
|
||||
,[OpcServer_OPNAME]
|
||||
,[变量特点]
|
||||
,[是否监控]
|
||||
,[变量排序]
|
||||
,[工序能力]
|
||||
,[监控属性代码]
|
||||
,[测量位置短]
|
||||
FROM [MES_基本变量_原始数据]
|
||||
|
||||
|
||||
SELECT
|
||||
[数值代码]
|
||||
,[TagID]
|
||||
,[理论值]
|
||||
,[值上限]
|
||||
,[值下限]
|
||||
,[发动机型号代码]
|
||||
,[是否启用]
|
||||
,[操作时间]
|
||||
FROM [MES_基本数据_测量范围]
|
||||
|
||||
|
||||
|
||||
|
||||
TagID
|
||||
TagName
|
||||
工位号
|
||||
数据来源
|
||||
IP
|
||||
TagTypeID
|
||||
TagLong
|
||||
DbName
|
||||
变量类型
|
||||
变量地址
|
||||
|
||||
变量其它
|
||||
演示偏移
|
||||
列位置
|
||||
测量位置
|
||||
测量项目
|
||||
测量单位
|
||||
变量类型代码
|
||||
变量类型名称
|
||||
机体类型
|
||||
线体类型
|
||||
|
||||
TagAdr
|
||||
TagAdrDemo
|
||||
是否启用
|
||||
监控组
|
||||
监控时间间隔
|
||||
OpcServer_OPNAME
|
||||
变量特点
|
||||
是否监控
|
||||
变量排序
|
||||
工序能力
|
||||
|
||||
监控属性代码
|
||||
测量位置短
|
||||
上限值
|
||||
下限值
|
||||
理论值
|
||||
IsGoodBad
|
||||
IsSaveToSql
|
||||
IsWebSocket
|
||||
|
||||
*/
|
||||
|
||||
var sql_TRUNCATE = @"
|
||||
TRUNCATE TABLE [MES_基本变量_原始数据]
|
||||
TRUNCATE TABLE [MES_基本数据_测量范围]
|
||||
|
||||
";
|
||||
DataLinkMesWork.SQLCommon.ExecuteSql(sql_TRUNCATE, ConnectionString_MES, out string err_TRUNCATE);
|
||||
|
||||
|
||||
var dt = MesWork.PlcLinkForm.dt_BasicData.Copy();
|
||||
for (int i = 0; i < dt.Rows .Count ; i++)
|
||||
{
|
||||
var TagID = dt.Rows[i]["TagID"].ToString();
|
||||
var TagName = dt.Rows[i]["TagName"].ToString();
|
||||
var 工位号 = dt.Rows[i]["工位号"].ToString();
|
||||
var 数据来源 = dt.Rows[i]["数据来源"].ToString();
|
||||
var IP = dt.Rows[i]["IP"].ToString();
|
||||
var TagTypeID = dt.Rows[i]["TagTypeID"].ToString();
|
||||
var TagLong = dt.Rows[i]["TagLong"].ToString();
|
||||
var DbName = dt.Rows[i]["DbName"].ToString();
|
||||
var 变量类型 = dt.Rows[i]["变量类型"].ToString();
|
||||
var 变量地址 = dt.Rows[i]["变量地址"].ToString();
|
||||
|
||||
var 变量其它 = dt.Rows[i]["变量其它"].ToString();
|
||||
var 演示偏移 = dt.Rows[i]["演示偏移"].ToString();
|
||||
var 列位置 = dt.Rows[i]["列位置"].ToString();
|
||||
var 测量位置 = dt.Rows[i]["测量位置"].ToString();
|
||||
var 测量项目 = dt.Rows[i]["测量项目"].ToString();
|
||||
var 测量单位 = dt.Rows[i]["测量单位"].ToString();
|
||||
var 变量类型代码 = dt.Rows[i]["变量类型代码"].ToString();
|
||||
var 变量类型名称 = dt.Rows[i]["变量类型名称"].ToString();
|
||||
var 机体类型 = dt.Rows[i]["机体类型"].ToString();
|
||||
var 线体类型 = dt.Rows[i]["线体类型"].ToString();
|
||||
|
||||
var TagAdr = dt.Rows[i]["TagAdr"].ToString();
|
||||
var TagAdrDemo = dt.Rows[i]["TagAdrDemo"].ToString();
|
||||
var 是否启用 = dt.Rows[i]["是否启用"].ToString();
|
||||
var 监控组 = dt.Rows[i]["监控组"].ToString();
|
||||
var 监控时间间隔 = dt.Rows[i]["监控时间间隔"].ToString();
|
||||
var OpcServer_OPNAME = dt.Rows[i]["OpcServer_OPNAME"].ToString();
|
||||
var 变量特点 = dt.Rows[i]["变量特点"].ToString();
|
||||
var 是否监控 = dt.Rows[i]["是否监控"].ToString();
|
||||
var 变量排序 = dt.Rows[i]["变量排序"].ToString();
|
||||
var 工序能力 = dt.Rows[i]["工序能力"].ToString();
|
||||
|
||||
var 监控属性代码 = dt.Rows[i]["监控属性代码"].ToString();
|
||||
var 测量位置短 = dt.Rows[i]["测量位置短"].ToString();
|
||||
var 上限值 = dt.Rows[i]["上限值"].ToString();
|
||||
var 下限值 = dt.Rows[i]["下限值"].ToString();
|
||||
var 理论值 = dt.Rows[i]["理论值"].ToString();
|
||||
var IsGoodBad = dt.Rows[i]["IsGoodBad"].ToString();
|
||||
var IsSaveToSql = dt.Rows[i]["IsSaveToSql"].ToString();
|
||||
var IsWebSocket = dt.Rows[i]["IsWebSocket"].ToString();
|
||||
|
||||
var sql_1 = @"
|
||||
INSERT into [MES_基本变量_原始数据](
|
||||
[TagID]
|
||||
,[TagName]
|
||||
,[工位号]
|
||||
,[数据来源]
|
||||
,[IP]
|
||||
,[TagTypeID]
|
||||
,[TagLong]
|
||||
,[DbName]
|
||||
,[变量类型]
|
||||
,[变量地址]
|
||||
,[变量其它]
|
||||
,[演示偏移]
|
||||
,[列位置]
|
||||
,[测量位置]
|
||||
,[测量项目]
|
||||
,[测量单位]
|
||||
,[变量类型代码]
|
||||
,[变量类型名称]
|
||||
,[机体类型]
|
||||
,[线体类型]
|
||||
,[TagAdr]
|
||||
,[TagAdrDemo]
|
||||
,[是否启用]
|
||||
,[连接名称]
|
||||
,[OpcServer_MIS]
|
||||
,[OpcServer_OPNAME]
|
||||
,[变量特点]
|
||||
,[是否监控]
|
||||
,[变量排序]
|
||||
,[工序能力]
|
||||
,[监控属性代码]
|
||||
,[测量位置短]
|
||||
|
||||
)VALUes("
|
||||
|
||||
+ "'" + TagID + "'"
|
||||
+",'"+TagName + "'"
|
||||
+",'"+工位号 + "'"
|
||||
+",'"+数据来源 + "'"
|
||||
+",'"+IP + "'"
|
||||
+","+TagTypeID
|
||||
+","+TagLong
|
||||
+",'"+DbName + "'"
|
||||
+",'"+ 变量类型 + "'"
|
||||
+ ","+变量地址
|
||||
+",'"+变量其它 + "'"
|
||||
+ ","+演示偏移
|
||||
+","+列位置
|
||||
+",'"+测量位置 + "'"
|
||||
+",'"+测量项目 + "'"
|
||||
+",'"+测量单位 + "'"
|
||||
+","+变量类型代码
|
||||
+",'"+变量类型名称 + "'"
|
||||
+","+机体类型
|
||||
+",'"+线体类型 + "'"
|
||||
+ ",'"+TagAdr + "'"
|
||||
+",'"+TagAdrDemo + "'"
|
||||
+","+是否启用
|
||||
+",'"+IP + "'"
|
||||
+","+ OpcServer_OPNAME
|
||||
+ ","+OpcServer_OPNAME
|
||||
+","+变量特点
|
||||
+","+是否监控
|
||||
+","+变量排序
|
||||
+","+工序能力
|
||||
+","+监控属性代码
|
||||
+",'"+测量位置短+"'"
|
||||
|
||||
+")" ;
|
||||
|
||||
var sql_2 = @"
|
||||
INSERT INTO [MES_基本数据_测量范围](
|
||||
[TagID]
|
||||
,[理论值]
|
||||
,[值上限]
|
||||
,[值下限]
|
||||
,[发动机型号代码]
|
||||
,[是否启用]
|
||||
,[操作时间]
|
||||
|
||||
)VALUES("
|
||||
|
||||
+"'"+ TagID + "'"
|
||||
+ ","+理论值
|
||||
+","+ 上限值
|
||||
+ ","+ 下限值
|
||||
+ ","+ 监控属性代码
|
||||
+ ","+是否启用
|
||||
+","+"getdate()"
|
||||
|
||||
+")";
|
||||
|
||||
var sql_INSERT = sql_1 + sql_2;
|
||||
DataLinkMesWork.SQLCommon.ExecuteSql(sql_INSERT, ConnectionString_MES, out string err_INSERT);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
using OpcData;
|
||||
using System;
|
||||
using SystemFramework;
|
||||
using System.Threading;
|
||||
using System.Collections;
|
||||
using System.Collections.Specialized;
|
||||
using MisDataFunction;
|
||||
using System.Configuration;
|
||||
|
||||
namespace MisDataName
|
||||
{
|
||||
//public partial class ___ { }
|
||||
public partial class MisData
|
||||
{
|
||||
/// <summary>
|
||||
/// 向MES通讯服务器发送消息
|
||||
/// </summary>
|
||||
/// <param name="msg"></param>
|
||||
private void TransferInfToWebServer(object msg1)
|
||||
{
|
||||
int tagType;
|
||||
string opName;
|
||||
OpcData.CustomeEvetnArgs msgEvent = (OpcData.CustomeEvetnArgs)msg1;
|
||||
//e值不能为空
|
||||
if (msgEvent.TagValue == null) return;
|
||||
tagType = Convert.ToInt32(msgEvent.TagType);
|
||||
opName = msgEvent.OpName.ToString();
|
||||
|
||||
if (!m_WorkStart_OpName.ContainsKey(opName)) return; //当前系统是否存在该工位
|
||||
|
||||
string cmd;
|
||||
string tagValue;
|
||||
string msgSvr;
|
||||
try
|
||||
{
|
||||
switch (Convert.ToInt32(msgEvent.TagValueType))
|
||||
{
|
||||
case 11:
|
||||
tagValue = (Convert.ToInt32(msgEvent.TagValue)).ToString();
|
||||
break;
|
||||
default:
|
||||
tagValue = msgEvent.TagValue.ToString();
|
||||
break;
|
||||
}
|
||||
cmd = MesDataFunction.OpcOperation.hashtable_TagTypeTagName[tagType.ToString()];
|
||||
if (Convert.ToInt32(MesDataFunction.OpcOperation.hashtable_WebTagTypeChange[cmd]) == 0&& MesDataFunction.OpcOperation.hashtable_WebTagTypeChange[cmd]!=null) return;
|
||||
|
||||
if (cmd != "" && cmd != null)
|
||||
{
|
||||
msgSvr = "MES|" + cmd + "|" + opName + "|" + tagValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
//MES web界面显示用
|
||||
asyncSendMessage(msgSvr);
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
ApplicationLog.WriteLog(err, "TransferInfToWebServer");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user