【问题标题】:C# app connection with Siemens S7-200与西门子 S7-200 的 C# 应用程序连接
【发布时间】:2014-05-03 06:23:51
【问题描述】:

我在将数据从 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。提前致谢。

问候。

【问题讨论】:

    标签: c# plc libnodave


    【解决方案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:请确保使用来纠正您项目的比特性。本机 DLL 可能是 32 位的,因此您可能必须将目标平台从“任何 CPU”设置为“x86”才能使其工作。

    【讨论】:

    • 真的,当我将“任何 CPU”更改为“x86”项目时,添加了 libnodave.lib 并编译没有错误。它让我们继续尝试从 PLC 读取数据。感谢我的开始。
    猜你喜欢
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 2016-07-25
    • 2016-11-18
    • 2011-10-12
    • 2015-10-07
    • 2021-09-13
    • 2022-08-13
    相关资源
    最近更新 更多