我正在尝试使用西门子PLC S7 200连接.NET(C#或VB无关紧要)。但是我无法建立连接。我正在使用Win7 64位机器,但似乎无法让它在32位上工作。我有两个文件:
Interop.OPCSiemensDAAutomation.dll Siemens_s7-200.dll
从我正在尝试迁移到更新系统的另一个项目。但是我总是得到一个com例外。
Retrieving the COM class factory for component with CLSID {01704EBD-44B5-11D3-9C09-00105A3DD3AC} failed due to the following error: 80040154.
我已经尝试过libnodave,但似乎无法正常工作。有人可以向我提供一些指示(请不要将XKCD幽默放在那个地方)到哪里去看?
我无法让西门子PC-Access安装在这台机器上,稍后会试用WinXP 32bit。我读过一些关于机器上需要OPC服务器的东西吗?
请耐心等待,首次与PLC接口:/
答案 0 :(得分:4)
COM异常是一个相当普遍的错误,表示无法加载COM库本身或其依赖项。我要检查的一些事情是:
不幸的是,这可以解决您的具体问题。但是,我可以指出,您可以使用以下产品作为OPC服务器,并具有与西门子S7兼容的驱动程序。这些将是使用西门子OPC服务器的替代方案。
过去我使用过两种产品,我很确定我使用其中一种产品(我记不起哪一款)与西门子S7通信。
同样here是一个非常好的网站,其中包含有关在.NET中使用OPC的信息。
答案 1 :(得分:2)
我之前曾考虑过做这类事情。如果你试图直接进入控制器,你可能遇到各种各样的专有问题。自动化软件公司倾向于对其协议保持非常严格的统治。如果它只是你所追求的数据,那么OPC可能是最好的方法。但是,从我发现的情况来看,这也不是免费的。 OPC基金会(opcfoundation.org)有一个.NET API,我相信它的价格在1-2K美元之间。
答案 2 :(得分:2)
再试一次。我已经成功地将 libnodave 与S7 200,300甚至400和400H(冗余的)一起使用。没有C#的经验,但它在我的linux C守护进程以及Delphi和Lazarus Windows应用程序中全天候(钢铁车间和高炉)工作。如果你做不到,那么准备在OPC服务器上使用$$$$用于S7 200(Kepware,Matrikon ...)和用于C#中的OPC客户端库。