public override object Read(plcdb_lib.Models.Model.TagsRow t) { if (!Client.Connected()) { int connResult = Client.ConnectTo(ControllerInfo.Address, (int)ControllerInfo.s7_rack, (int)ControllerInfo.s7_slot); if (connResult != 0) { Log.Error(GetErrorText(connResult)); Client.Disconnect(); Client = null; Client = new S7Client(); throw new EntryPointNotFoundException("Unable to connect to PLC " + ControllerInfo.Name); } bgReadThread.DoWork -= ReadFromPLC; bgReadThread.DoWork += ReadFromPLC; RefreshDataTimer.Interval = 1000; RefreshDataTimer.Elapsed -= RefreshDataTimer_Elapsed; RefreshDataTimer.Elapsed += RefreshDataTimer_Elapsed; RefreshDataTimer.Start(); } SiemensTag Tag = ActiveTags.FirstOrDefault(p => p.TagRow.PK == t.PK); if (Tag == null) { Tag = new SiemensTag() { TagRow = t }; ActiveTags.Add(Tag); } return(Tag.TagRow.CurrentValue); }
public override object Read(plcdb_lib.Models.Model.TagsRow t) { try { if (!ActiveTags.Select(p => p.TagRow).Contains(t)) { AddTagToGroup(t); } return(ActiveTags.First(p => p.TagRow.PK == t.PK).Value); } catch (Exception ex) { throw new Exception("Error reading tag '" + t + "' from OPC server: " + ControllerInfo.Address + "\\" + ControllerInfo.opc_server, ex); } }
public override bool Write(plcdb_lib.Models.Model.TagsRow t, object val) { SiemensTag Tag = ActiveTags.FirstOrDefault(p => p.TagRow.PK == t.PK); if (Tag == null) { Tag = new SiemensTag() { TagRow = t }; ActiveTags.Add(Tag); } WriteToPLC(Tag, val); return(true); }
public override bool Write(plcdb_lib.Models.Model.TagsRow t, object val) { try { if (!ActiveTags.Select(p => p.TagRow).Contains(t)) { AddTagToGroup(t); } OpcTag ToWrite = ActiveTags.First(p => p.TagRow.PK == t.PK); TagGroup.SyncWriteItems(new int[] { ToWrite.ServerId }, new object[] { val }); return(true); } catch (Exception ex) { throw new Exception("Error writing tag '" + t + "' from OPC server: " + ControllerInfo.Address + "\\" + ControllerInfo.opc_server, ex); } }
public override bool Write(plcdb_lib.Models.Model.TagsRow t, object val) { throw new NotImplementedException(); }
public override object Read(plcdb_lib.Models.Model.TagsRow t) { throw new NotImplementedException(); }