4

我正在尝试将 .NET(C# 或 VB 无关紧要)与 Siemens PLC S7 200 连接。但是我无法建立连接。我正在使用 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 幽默)去哪里看?

我无法在这台机器上安装 Siemens PC-Access,稍后将在 WinXP 32 位上尝试。我读到一些关于我需要 OPC 服务器或机器上的东西?

请耐心等待,第一次与 PLC 接口:/

4

3 回答 3

4

COM 异常是一个相当普遍的错误,它表明无法加载 COM 库本身或其依赖项。我要检查的一些事情是:

  • COM 库是否已在机器上注册?您可以使用regsvr32注册 COM dll。
  • COM 库是否需要机器上可能没有的其他依赖项?您可以使用dumpbin /dependents来解决这个问题。
  • 是否必须在机器上安装 Siemens PC-Access 软件?您说您无法安装它,这可能解释了为什么无法加载 COM 库。

不幸的是,这就是我在解决您的具体问题时所能提供的所有帮助。但是,我可以指出,您可以使用以下产品作为 OPC 服务器并具有与 Siemens S7 兼容的驱动程序。这些将是使用 Siemens OPC 服务器的替代方案。

我过去使用过这两种产品,我很确定我用过其中一种(我不记得是哪一种)与西门子 S7 通话。

这里还有一个非常好的网站,其中包含有关在 .NET 中使用 OPC 的信息。

于 2011-07-25T16:05:58.433 回答
2

我以前研究过做这种类型的事情。如果您尝试直接访问控制器,您可能会遇到各种专有问题。自动化软件公司倾向于对其协议保持非常严格的控制。如果它只是您所追求的数据,那么 OPC 可能是最好的方法。但是,据我发现,这也不是免费的。OPC 基金会 ( opcfoundation.org ) 有一个 .NET API,我相信它的价格在 1 到 2000 美元之间。

于 2011-07-25T16:51:09.447 回答
2

再试一次。我已经成功地将libnodave与 S7 200、300 甚至 400 和 400H(冗余的)一起使用。没有使用 C# 的经验,但它可以在我的 linux C 守护程序以及 Delphi 和 Lazarus Windows 应用程序中 24/7(钢厂和高炉)工作。如果你做不到,那么准备在 S7 200(Kepware、Matrikon...)的 OPC 服务器和 C# 中的 OPC 客户端库上花费 $$$。

于 2011-07-26T07:20:28.860 回答