Beispiel #1
0
        public int GetNodeValue(string nodeStrGuid, out object nodeValue)
        {
            int rtc = -1;

            nodeValue = null;
            try
            {
                OPCDATASOURCE opcDataSource = OPCDATASOURCE.OPC_DS_DEVICE;

                OPCItemState opcItemState = new OPCItemState();

                DriveNodeEntity driveNode = allOPCItemNodes.Find(p => nodeStrGuid.Equals(p.nodeId));

                ItemDef itemdef = syncIOGroup.Item(driveNode.nodeName);

                rtc = syncIOGroup.Read(opcDataSource, itemdef, out opcItemState);

                if (HRESULTS.Succeeded(rtc))
                {
                    nodeValue = opcItemState.DataValue;
                    //txtItemQuality.Text = syncIOGroup.GetQualityString(opcItemState.Quality);
                    //txtTimeStamp.Text = DateTime.FromFileTime(opcItemState.TimeStamp).ToString();
                }
            }
            catch (Exception ex)
            {
                NLogHelper.ExceptionInfo(ex, "GetNodeValue param:'{1}' ,exception:{0}", ex.Message, nodeStrGuid);
            }

            return(rtc);
        }
Beispiel #2
0
        public static int GetOpcAllItemByNodeRoot(DriveNodeEntity nodeRoot, out List <DriveNodeEntity> listItemNodes)
        {
            listItemNodes = null;
            try
            {
                if (null == nodeRoot)
                {
                    return(1);
                }
                listItemNodes = new List <DriveNodeEntity>();
                foreach (DriveNodeEntity group in nodeRoot.childNode)
                {
                    foreach (DriveNodeEntity item in group.childNode)
                    {
                        listItemNodes.Add(item);
                    }
                }

                return(0);
            }
            catch (Exception ex)
            {
                NLogHelper.ExceptionInfo(ex, "GetOpcAllItemByNodeRoot exception:{0} ", ex.Message);
                return(-1);
            }
        }
Beispiel #3
0
        public static int GetOpcServerAllItem(OpcServer opcSer, out List <DriveNodeEntity> driveNodes)
        {
            int rtc = -1;

            driveNodes = null;
            BrowseTree browseTress = new BrowseTree(opcSer);

            rtc = browseTress.CreateTree();
            if (HRESULTS.Succeeded(rtc))
            {
                TreeNode[] root = browseTress.Root();
                if (root != null)
                {
                    driveNodes = new List <DriveNodeEntity>();
                    // driveNotes 固定两层 ,没有使用递归 转换
                    foreach (TreeNode item in root)
                    {
                        DriveNodeEntity driveNodeTemp = CloneDriveNode(item, DriveNodeModel.OPCGroup);
                        foreach (TreeNode itemChild in item.Nodes)
                        {
                            driveNodeTemp.childNode.Add(CloneDriveNode(itemChild, DriveNodeModel.OPCItem));
                        }
                        driveNodes.Add(driveNodeTemp);
                    }
                    return(0);
                }
            }
            return(rtc);
        }
Beispiel #4
0
        private static DriveNodeEntity CloneDriveNode(TreeNode treeNode, DriveNodeModel driveNodeModel)
        {
            DriveNodeEntity driveNode = new DriveNodeEntity();

            driveNode.nodeId      = GuidHelper.GetStringGuid();
            driveNode.nodeType    = DriveNodeType.OPC;
            driveNode.nodeModel   = driveNodeModel;
            driveNode.nodeName    = treeNode.Tag.ToString();
            driveNode.nodeDisName = treeNode.Text;
            return(driveNode);
        }
Beispiel #5
0
 public OPCBUSService(DriveNodeEntity _driveNodes)
 {
     opcSerNodes = _driveNodes;
 }