0

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

我需要从 PLC 读取数据。我已经阅读了很多关于libnodave库的内容,并尝试为自己编写一个应用程序进行交流,并在模板上的 Vb 链接中下载了示例。

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

无法下载 DLL“libnodave.dll”。未找到模块。

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

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

问候。

4

1 回答 1

1

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

然后,您需要确保libnodave.dll在搜索路径中找到它。理想情况下,您将该 DLL 复制到项目的输出文件夹中,以便两者libnodave.dlllibnodave.net.dll位于同一个文件夹中。您可以通过将本机 DLL 添加到项目的根目录(引用它,像普通现有文件一样添加它),将其构建类型设置为“无”和“始终复制”来自动执行此操作。这将确保 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:请务必使用来纠正您的项目的bittyness。本机 DLL 可能是 32 位的,因此您可能必须将目标平台从“任何 CPU”设置为“x86”才能使其工作。

于 2014-03-25T12:08:12.273 回答