使用QuickOPC

时间:2017-07-18 07:08:15

标签: .net opc

我目前正在使用OPC Labs的QuickOPC库。我目前的目的是编写一个.NET控制台应用程序来从Matrikon Simulation OPC服务器读取项目值。

模拟服务器在可用IP地址的远程计算机上运行,​​我需要输入用户名和密码才能登录此远程计算机。

我目前的代码如下:

NetworkSecurity networkSecurity = new NetworkSecurity(UserName, Password, MachineName);
ServerDescriptor serverDescriptor = new ServerDescriptor("\\\\xxx.xxx.xxx.xxx\\Matrikon.OPC.Simulation.1", networkSecurity);
serverDescriptor.Scheme = "opcda";
DAItemDescriptor itemDescriptor = new DAItemDescriptor(ItemID);

Console.WriteLine(client.ReadItemValue(serverDescriptor, itemDescriptor));

例外情况如下:

  

异常:OPC操作失败,错误代码为-1073442759   (0xC0049039)发起人,起源于   ' OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient&#39 ;.除了例外   包含有关问题的详细信息。内部例外:没有方法   可用于将ProgID转换为CLSID。

如果我尝试使用CLSID

ServerDescriptor("\\\\xxx.xxx.xxx.xxx\\{F8582CF2-88FB-11D0-B850-00C0F0104305}", networkSecurity);

异常变为:

  

异常:OPC操作失败,错误代码为-2147024891   (0x80070005)发起人,起源于   ' OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient&#39 ;.除了例外   包含有关问题的详细信息。内部例外:访问被拒绝。

1 个答案:

答案 0 :(得分:1)

"内部异常:访问被拒绝",这意味着您必须在服务器和客户端之间启用DCOM通信。服务器应用程序和OPCEnum服务(用于将ProgID转换为CLSID)。

https://www.google.com/search?q=dcom+configuration+for+opc