为什么我得到错误“无法将类型'OpcCom.Factory'的对象强制转换为'Opc.IFactory'。”?

时间:2013-08-14 16:12:51

标签: c# .net opc

我正在使用Visual Basic 2012的OPC Foundation .NET API。当我尝试连接时,我收到此错误:

  

无法将“OpcCom.Factory”类型的对象转换为“Opc.IFactory”类型

...在此代码中的new Opc.Da.Server(指令处:

private void button1_Click(object sender, EventArgs e)
{
    Opc.Da.Server plcServer = null;

    string serverUrl = "opcda://localhost/RSLinx OPC Server";

    plcServer = new Opc.Da.Server(new OpcCom.Factory(), new Opc.URL(serverUrl));
    plcServer.Connect();
}

2 个答案:

答案 0 :(得分:0)

它抛出了这个错误,因为Opc.Da.Server的接口期待Opc.IFactory,但OpcCom.Factory()返回的内容没有实现该接口。

答案 1 :(得分:0)

问题是我正在使用的rslinx版本,rslinx安装了opc .net api版本1.3(我不知道这个)然后我安装了opc .net api 2.0来制作我的opc客户端,所以当我添加了参考文献我没有注意到我有2个版本的dll,我只选择了我在列表中看到的第一个版本。

最后我使用的是OpcNetApi.dll 2.0和OpcNetApi.Com.dll 1.3。这就是它抛出错误的原因。