我有一个问题,从PLC到PC的数据。我有S7-200和CP 243-1通讯模块.
我需要从PLC读取数据。我读过很多关于libnodave库的文章,并试图编写一个用于通信的我自己的应用程序,并在Vb 链接到模板上中下载了示例。
在我的应用程序中,我得到异常错误
无法下载DLL "libnodave.dll“。找不到模块。
但在项目的参考资料中我添加了libnodave.net.dll..。我没有头绪。
我所有的尝试都失败了,也许有人知道如何使用libnodave或其他库与西门子S7-200通信PC。提前谢谢。
致以问候。
发布于 2014-03-25 12:08:12
不过,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。这一页继续说:
还可以在where文件所在的同一目录中复制libnodave.dll。
PS:请确保用它来纠正你的项目的琐碎之处。本机DLL可能是32位,因此您可能必须将目标平台从“任意CPU”设置为"x86“,以使其工作。
https://stackoverflow.com/questions/22634083
复制相似问题