Example #1
0
        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
        }
Example #2
0
        /// <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
        }
Example #3
0
        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);
        }