学习.net

来源:互联网 发布:流量话费充值分销源码 编辑:程序博客网 时间:2024/05/17 01:46
 private void TestEnumOPCItems()
        {
            OpcServer opcServer = new OpcServer();

            CBMonitor.BizLayer.Common.PublicConst pc = new CBMonitor.BizLayer.Common.PublicConst();
            string serverName = pc.OPCServer;
            //string serverName = "SECOM.MockOPC.1";

            //int result1 = opcServer.Connect("SECOM.MockOPC.1");
            int result1 = opcServer.Connect(serverName);
            if (OPC.HRESULTS.Failed(result1))
            {
                string msg = "Error " + result1.ToString() + " at connecting to server.";
                return;
            }

            string[] items = null;

            opcServer.BrowseOPCItemIDs(OPCDA.OPCBROWSETYPE.OPC_BRANCH,
                null, null, OPCDA.OPCACCESSRIGHTS.OPC_READABLE, out items);

            opcServer.ChangeBrowsePosition(OPCDA.OPCBROWSEDIRECTION.OPC_BROWSE_DOWN, items[0]);

            opcServer.BrowseOPCItemIDs(OPCDA.OPCBROWSETYPE.OPC_LEAF,
                     null, null, OPCDA.OPCACCESSRIGHTS.OPC_READABLE, out items);


            SyncIOGroup ioGroup = new SyncIOGroup(opcServer);
            List<int> pids = new List<int>();
            for (int i = 1; i < 20; i++)
            {
                pids.Add(i);
            }

            foreach (string id in items)
            {
                string kk = id + "_kk";
                string itemId = id;

                ItemDef itemData = ioGroup.Item(itemId);
                ItemPropertyData[] ipds = null;
                opcServer.GetItemProperties(id, pids.ToArray(), out ipds);

                OPCItemProperty[] pps = null;
                opcServer.QueryAvailableProperties(id, out pps);

                OPCItemProperty[] oips = null;

                if (itemData == null)
                {
                    ioGroup.Add(itemId);
                }

                OPCItemState result;
                itemData = ioGroup.Item(itemId);
                ioGroup.Read(OPCDA.OPCDATASOURCE.OPC_DS_CACHE, itemData, out result);

                if (result != null)
                {
                    object value = result.DataValue;
                }

            }
        }
原创粉丝点击