对我来说,这是第一次使用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 {序列号}的组件恢复COM类工厂:80040154 {REGDB_E_CLASSNOTREG}
有人可以帮助我吗?请
基于您输入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的作者。