【问题标题】:I can't connect into the OPC Server我无法连接到 OPC 服务器
【发布时间】:2019-12-06 08:39:26
【问题描述】:

对我来说是第一次使用 OPC UA。我加快了速度,我下载了库 OPCDAAuto.dll,我注册了它,我复制了一些 codo 来测试它,但我会犯错误。我尝试了其他方法,但得到了相同的结果。

我的代码,带有 OPDAAuto.dll 是:

 public partial class Form1 : Form
{
    OPCServer ObjOPCServer;
    OPCGroups ObjOPCGroups;
    OPCGroup ObjOPCGroup;
    string OPCServerName;

    public Form1()
    {
        try
        {
            InitializeComponent();
            OPCServerName = "opc.tcp://co15:62841/TVM_CNC_NY16006/uaPLUS";
            ObjOPCServer = new OPCServer(); //error appears at this point (*)
            ObjOPCServer.Connect(OPCServerName, "");
            ObjOPCGroups = ObjOPCServer.OPCGroups;
            ObjOPCGroup = ObjOPCGroups.Add("OPCGroup1");
            ObjOPCGroup.DataChange += new DIOPCGroupEvent_DataChangeEventHandler(ObjOPCGroup_DataChange);
            ObjOPCGroup.OPCItems.AddItem("{tag name or address (like {plc name on server}!%mw0)}", 1);
            ObjOPCGroup.UpdateRate = 10;
            ObjOPCGroup.IsActive = true;
            ObjOPCGroup.IsSubscribed = true;
        }
        catch (Exception e)
        {
            MessageBox.Show(e.ToString());
        }
    }

此时出现错误:ObjOPCServer = new OPCServer(); (*):

System.Runtime.InteropServices.COMException (0x800d0154):恢复具有 CLSID {serial-number} 的组件的 COM 类工厂失败,原因是以下错误:80040154 {REGDB_E_CLASSNOTREG}

有人可以帮助我吗?请

【问题讨论】:

  • 如果您需要连接到服务器,为什么要创建服务器?你不应该使用客户端对象吗?
  • 无论是 OPC 还是 OPC-UA,它们都是完全不同的框架。请更正您的帖子并删除其中一个不正确的标签。

标签: c# opc-ua industrial


【解决方案1】:

根据您在 OPCServerName 中输入的 URL,以及您在介绍中所写的内容,您正在尝试连接到 OPC UA 服务器。

但是您使用的库是用于 OPC“经典”数据访问的。不能用于连接 OPC UA 服务器。

您需要一个不同的库。有一些免费库(例如,来自 OPC Foundation 的 UA-.NETStandard 存储库,https://github.com/OPCFoundation/UA-.NETStandard)或一些商业库(例如 QuickOPC,https://www.opclabs.com/products/quickopc/languages-and-tools/csharp)。免责声明:我是 QuickOPC 作者。

【讨论】:

  • 当我尝试使用 github 库连接到端点时,给我这个消息:“安全证书不是由受信任的证书颁发机构颁发的。安全证书问题可能表明试图拦截你的任何数据发送到服务器或允许不受信任的客户端连接到您的服务器。仍然接受吗?"
  • 我猜该消息将来自服务器? .我相信绝大多数 OPC UA 客户端不使用受信任机构颁发的证书。原因很简单,他们花钱。为了连接,服务器应该接受该证书,尽管如果您在没有安全模式的情况下进行连接,则该证书并不是必需的。
  • 你是在正确的方式 - 但你应该输入一个新的 StackOverflow 问题,因为你现在有一个不同的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-14
  • 2011-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-29
  • 1970-01-01
相关资源
最近更新 更多