我遇到从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。提前谢谢。
问候。
答案 0 :(得分:0)
只是一个疯狂的镜头,但是libnodave.dll
本机DLL和libnodave.net.dll
这个DLL的包装器?
然后,您需要确保在搜索路径中找到libnodave.dll
。理想情况下,将该DLL复制到项目的输出文件夹中,以便libnodave.dll
和libnodave.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”才能使其正常工作。