OPC Client 开发简介

所需资料:
https://download.csdn.net/download/antony1776/10481281

包括:

  1. Interop.OPCAutomation.dll
  2. MatrikonOPCSimulation.exe
  3. OPC_2.0_Core_Components-Setup.exe
  4. OPCAutomation 开发文档.pdf
  5. 其他文档

1. 环境准备

 1 首先,安装 OPC Server 模拟器

  安装 MatrikonOPCSimulation.exe

 2 安装 OPC 组件

   安装 OPC_2.0_Core_Components-Setup.exe

 如果不安装 OPC 核心组件,C# 程序启动时会报以下错误:

80040154 没有注册类
{28E68F9A-8D75-11D1-8DC3-3C302A000000}
OPC Automation 2.0 Server Object

2 简单示例

            object list = opcserver.GetOPCServers("localhost"); // 获取 OPC server 列表
            string servername="";
            foreach (string server in (Array)list)
            {
                servername = server;
                Console.WriteLine(server);
            }

            opcserver.Connect(servername); // 连接到指定名称的 Server 
            if (opcserver.ServerState == (int)OPCServerState.OPCRunning)
            {
                Console.WriteLine("Connected");
            }
            else
            {
                Console.WriteLine("Disconnected");
            }

            OPCBrowser opcbrowser = opcserver.CreateBrowser(); // 获取 item 信息
            opcbrowser.ShowBranches();
            opcbrowser.ShowLeafs(true);
            long ItemCounts = opcbrowser.Count;

            int count = 0;
            Array PropertyIDs = new Array[20];
            Array Descriptions;
            Array DataTypes;
            Array PropertyValues;
            Array Errors;

            List<string> taglist = new List<string>();
            foreach (object tagname in opcbrowser)
            {


                // tag name, data type, original data type, description, EU type, scan rate, 

                try
                {
                    opcserver.QueryAvailableProperties((string)tagname, out count, out PropertyIDs, out Descriptions, out DataTypes);
                    opcserver.GetItemProperties((string)tagname, count, ref PropertyIDs, out PropertyValues, out Errors);

                    if (count <= 0 || count > 100)
                        return;
                }
                catch (Exception ex)
                {

                }
            }

OPCAutomation 开发文档中,对相关的接口和类有更加详细的示例和说明。

你可能感兴趣的:(技术杂文)