using Leit.FrameWork.Log; using Leit.Model; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Leit.StationFunction { public static class Function_OP25 { /// /// 工位标签信息 /// public static List StationTagInfos { get; set; } /// /// 工位报警标签信息 /// public static List StationAlarmTagInfos { get; set; } /// /// 工位质量数据标签信息 /// public static List StationQualityTagInfos { get; set; } /// /// 工位交互数据标签信息 /// public static List StationCommunicatedTagInfos { get; set; } /// /// 工位信息 /// public static StationInfo StationInf { get; set; } /// /// 物料条码 /// public static string PieceCode { get; set; } /// /// 保存数据到数据库完成 /// public static bool ReadDataOk { get; set; } /// /// 质量数据Id /// public static long QualityId { get; set; } /// /// 业务逻辑 /// public static void CycleRunTimer() { try { if (ServiceData.OpcTags.Where(p => p.TagId == StationCommunicatedTagInfos.Where(q => q.TagMarkCode == 1020).First().TagId).First().GetValue() == 0) { ReadDataOk = false; } //无允许保存信号 所有靠网结果为1 自动保存数据 if (!ReadDataOk) { if(PieceCode==null) { return; } //填充质量数据 string sql = "update ProductQuality_Electric set "; foreach (var item in StationQualityTagInfos) { byte KwValue = ServiceData.OpcTags.Where(p => p.TagId == item.TagId).First().GetValue(); if (KwValue != 1) { return; } sql = sql + item.ColName + "=" + ServiceData.OpcTags.Where(p => p.TagId == item.TagId).First().GetValue(); sql = sql + ","; } sql = sql.Remove(sql.Length - 1, 1); sql = sql + $",CheckTime='{DateTime.Now}',OperateTime='{DateTime.Now}' where Id={QualityId}"; ServiceData.GetWorkLog(StationInf.StationCode, ServiceData.GetCodeLineNum(1).ToString(), "保存质量数据", sql); if (SqlSugarAdo.ExecuteCommand(sql) > 0) { ReadDataOk = true; } } } catch(Exception ex) { LogHelper.WriteLog(LogHelper.GetMethodInfo(), ex); } } /// /// 扫描条码事件触发的方法 /// /// /// public static void BarCode(string stationCode, string barCode) { try { if (stationCode != "OP25") return; // 验证条码 并写入扫描完成 根据条码查询质量数据 根据质量数据查询基础信息 ServiceData.GetWorkLog(StationInf.StationCode, ServiceData.GetCodeLineNum(1).ToString(), "扫描条码", barCode); PieceCode = barCode; QualityId = ProductQuality_Electric.Query(p => p.PieceCode == barCode && p.ProductTypeCode == 3).ToList().First().Id; ServiceData.PlcServer.Write(StationCommunicatedTagInfos.Where(p => p.TagMarkCode == 1020).First().TagAddr, Convert.ToByte(1)); ServiceData.GetWorkLog(StationInf.StationCode, ServiceData.GetCodeLineNum(1).ToString(), "扫描完成", 1); } catch (Exception ex) { LogHelper.WriteLog(LogHelper.GetMethodInfo(), ex); } } } }