.NET与西门子PLC S7 200的接口

时间:2011-07-25 15:27:00

标签: c# .net vb.net hardware plc

我正在尝试使用西门子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接口:/

3 个答案:

答案 0 :(得分:4)

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

  • 是否在机器上注册了COM库?您可以使用regsvr32注册COM dll。
  • COM库是否需要其他可能不在计算机上的依赖项?您可以使用dumpbin /dependents来解决此问题。
  • 是否必须在机器上安装Siemens PC-Access软件?你说你无法安装它,这可能解释了为什么无法加载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客户端库。