public void TestGetErrorString01() { //testing -- OpcServer opcServer = new OpcServer(); Accessor opcServerAccessor = ReflectionAccessor.Wrap(opcServer); opcServerAccessor.SetField("ifServer", new OPCServerComClass()); //Test Procedure Call opcServer.GetErrorString(-1073479673, 0); //Post Condition Check }
/// <summary> /// Connect to opc server /// </summary> /// <param name="serverName"></param> /// <param name="requestedUpdateRate">In case of use of LinkMaster and Kepserver simulation, this value should match the LinkMaster value</param> /// <returns></returns> public bool Connect(string serverName, int requestedUpdateRate = 250) { srv = new OpcServer(); int rtc = srv.Connect(serverName); if (HRESULTS.Failed(rtc)) { srv.GetErrorString(rtc, 0);//MBR added 0 return Srv.GetErrorString( rtc); return(false); } float deadBand = 0.0F; //Get data start try { OPCGetData.OPCReadGroup = srv.AddGroup("Group1GetData", true, requestedUpdateRate, ref deadBand, 0, 0); } catch (Exception) { srv.Disconnect(); return(false); //return ex.Message; } //Get data end //Set data start try { OPCSetData.OPCWriteGroup = srv.AddGroup("Group1SetData", true, requestedUpdateRate, ref deadBand, 0, 0); } catch (Exception) { srv.Disconnect(); return(false);//return ex.Message; } return(true); //ok }
public string ServerAccessOpc(string serverName) { OpcServer Srv = new OpcServer(); int rtc = Srv.Connect(serverName); if (HRESULTS.Failed(rtc)) { try { return(Srv.GetErrorString(rtc, 0)); } catch { return(rtc.ToString()); } } OpcGroup oGrp; float deadBand = 0.0F; try { oGrp = Srv.AddGroup("Grp1", true, 500, ref deadBand, 0, 0); } catch (Exception ex) { Srv.Disconnect(); return(ex.Message); } OPCItemDef[] items = new OPCItemDef[1]; items[0] = new OPCItemDef("Saw-toothed Waves.Int2", true, 0, VarEnum.VT_I2); OPCItemResult[] addRslt = new OPCItemResult[1]; rtc = oGrp.AddItems(items, out addRslt); if (HRESULTS.Failed(rtc)) { Srv.Disconnect(); return("Error at AddItem"); } int[] iHnd = new Int32[1]; iHnd[0] = addRslt[0].HandleServer; OPCItemState[] rslt; rtc = oGrp.Read(OPCDATASOURCE.OPC_DS_CACHE, iHnd, out rslt); string retVal; if (HRESULTS.Failed(rtc)) { retVal = "Read error"; } else if (HRESULTS.Failed(rslt[0].Error)) { retVal = "Item Read error"; } else { retVal = "data=" + rslt[0].DataValue.ToString(); } oGrp.Remove(true); Srv.Disconnect(); return(retVal); }