C#app与Siemens S7-200的连接

时间:2014-03-25 12:05:23

标签: c# plc libnodave

我遇到从PLC到PC获取数据的问题。我有S7-200和CP 243-1通信模块。

我需要从PLC读取数据。我已经阅读了很多关于libnodave库的内容,并尝试编写app for myself进行通信,并在Vb link on template下载示例。

在我的应用中,我收到异常错误

  

无法下载DLL" libnodave.dll"。找不到模块。

但是在项目的引用中我添加了libnodave.net.dll ......我不知道。

我的所有尝试都失败了,也许有人知道如何使用libnodave或其他库与PLC Siemens S7-200进行通信PC。提前谢谢。

问候。

1 个答案:

答案 0 :(得分:0)

只是一个疯狂的镜头,但是libnodave.dll本机DLL和libnodave.net.dll这个DLL的包装器?

然后,您需要确保在搜索路径中找到libnodave.dll。理想情况下,将该DLL复制到项目的输出文件夹中,以便libnodave.dlllibnodave.net.dll位于同一文件夹中。您可以通过将本机DLL添加到项目的根目录来自动执行此操作(引用它,将其添加为正常的现有文件),将其构建类型设置为“none”和“始终复制” 。这将确保DLL始终复制到bin / debug或bin / release文件夹。

由于您无法添加本机DLL作为.NET项目的引用,因此开发人员可能会创建一个可以添加的.NET包装器,但不能单独使用。它将通过P / Invoke调用本机DLL中的函数。


从您链接的“模板上的链接”页面:

  

您需要在PC中复制libnodave.net.dll文件,并在VB.NET项目属性中添加引用。这实现了libnodave.dll和用MS .Net语言编写的应用程序之间的桥接层。

这意味着我的上述猜测似乎是正确的。你需要两个DLL。该页继续说:

  

同时将libnodave.dll复制到exe文件所在的目录中。


PS:请确保用于纠正项目的比特率。本机DLL可能是32位,因此您可能必须将目标平台从“任何CPU”设置为“x86”才能使其正常工作。