using Aborlen.Opc.PlcBase; using FrameWork.Log; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Aborlen.PlcCommunicationInit { public partial class WorkStation : StationBase { public WorkStation() { OpcTag.EventTagChanged += StationTagChanged; } private void StationTagChanged(string tagId, int tagMarkCode, object tagValue, DateTime timeTrigger) { try { //判断是否为当前工位 如果不是 直接return 工位ID 16位 反射调用对应function方法 if (tagId.Substring(2, 16) != ThisStationInfo.StationId) { return; } if (ComOpcTagInfos.Where(p => p.TagId == tagId).First().TagClass == 10) { //触发Com事件 OpcTag_EventTagChanged(tagId, tagMarkCode, tagValue, timeTrigger); } if (tagMarkCode == 5010) { //触发报警 OpcTag_AlarmChanged(tagId, tagMarkCode, tagValue, timeTrigger); } GetDataChange4Log(tagId, tagMarkCode, tagValue, timeTrigger); } catch(Exception ex) { LogHelper.WriteLog(LogHelper.GetMethodInfo(), ex); } } } }