using OPCAutomation; using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; namespace PunchAndWeld { public class OPCHelper { public OPCServer opcServer; public OPCGroups opcGroups; public OPCGroup opcGroup1; public OPCItems opcItems1; public OPCItem[] opcItemm1; public OPCGroup opcGroup2; public OPCItems opcItems2; public OPCItem[] opcItemm2; public string[] ItemIDs; public object ItemValues; public object Qualities; public object TimeStamps; public bool Connected = false; public bool CreateServer() { try { opcServer = new OPCServer(); } catch(Exception ex) { LogHelper.WriteErrLogBase(ex.ToString(), "CreateServer"); return false; } return true; } public bool ConnectServer(string strHostIP, string strHostName) { try { opcServer.Connect(strHostName, strHostIP); } catch { return false; } return true; } public void SetGroupProperty(OPCGroup opcGroup, int updateRate) { opcGroup.IsActive = true; opcGroup.DeadBand = 0; opcGroup.UpdateRate = updateRate; opcGroup.IsSubscribed = true; } public string ReadSingleValueFromOPC1(int i) { object ItemValues; object Qualities; object TimeStamps; opcItemm1[i].Read(1, out ItemValues, out Qualities, out TimeStamps); if ((ItemValues != null) && (Qualities.ToString() != "Good")) { return ItemValues.ToString(); } else { return ""; } } public int ReadSingleValueFromOPC2(int i) { object ItemValues; object Qualities; object TimeStamps; opcItemm1[i].Read(1, out ItemValues, out Qualities, out TimeStamps); if ((ItemValues != null) && (Qualities.ToString() != "Good")) { return Convert.ToInt32(ItemValues.ToString()); } else { return 0; } } public string ReadSingleValueFromOPC3(int i) { object ItemValues; object Qualities; object TimeStamps; opcItemm2[i].Read(1, out ItemValues, out Qualities, out TimeStamps); if ((ItemValues != null) && (Qualities.ToString() != "Good")) { return ItemValues.ToString(); } else { return ""; } } } }