Files
7-Dongan-MesProject/MisDataFunction/MesServer.Function/Function53801/OpcServer/ParamsWriteOver.cs
2026-05-29 13:57:19 +08:00

75 lines
2.8 KiB
C#

using System;
using System.Collections.Concurrent;
using System.Linq;
using System.Threading;
using bizFacade;
using DoWhatPlc;
//using SystemFramework;
using MesServerWork;
using Newtonsoft.Json;
namespace MesServerFunctions
{
partial class FunctionMES
{
/// <summary>
/// 参数刷入完成
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
private void ParamsWriteOver(object e)
{
try
{
DoWhatPlc.CustomeEvetnArgs msgEvent = (DoWhatPlc.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
string OpName_mes = Convert.ToString(msgEvent.OpName) + "_mes";
int tagValue = Convert.ToInt32(msgEvent.TagValue);
int EngineTypeID;
if (tagValue == 1)
{
ConcurrentDictionary<string, object> rtList = MIS_BASE.ReadPLC_OpName(OpName);
var pp = JsonConvert.SerializeObject(rtList);
var tagValues = JsonConvert.DeserializeObject<ConcurrentDictionary<string, TagFormat>>(pp);
// 读取配方号
MIS_BASE.Read_EngineTypeID(OpName, out EngineTypeID);
var keyValues = tagValues.Where(x => x.Value.TagTypeCodeID == 58).Where(x => x.Value.TagOrderBy == EngineTypeID.ToString()).OrderBy(x => x.Key).ToDictionary(k => k.Key, v => v.Value);
var qc_value_list = keyValues.Values.ToList();
for (int i = 0; i < qc_value_list.Count; i++)
{
string tagValue1 = qc_value_list[i].TagValue.ToString();
switch (tagValue1.ToLower())
{
case "true":
case "1":
tagValue1 = "1";
break;
default:
tagValue1 = "0";
break;
}
if (tagValue1 == "1")
{
var ee = qc_value_list[i];
ee.TagValue = tagValue1;
SendMessageFun.SendInfomation("PlcShowWorkPositionUpdate", JsonHelper.ObjectToJson(ee), OpName);
Thread.Sleep(500);
SendMessageFun.SendInfomation("PlcShowWorkPositionUpdate", JsonHelper.ObjectToJson(ee), OpName);
}
}
}
else
{
}
}
catch (Exception err)
{
////ApplicationLog.WriteLog(err, "Function08:MesReadOver");
}
}
}
}