首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#应用程序与西门子S7-200的连接

C#应用程序与西门子S7-200的连接
EN

Stack Overflow用户
提问于 2014-03-25 12:05:22
回答 1查看 2.3K关注 0票数 0

我有一个问题,从PLC到PC的数据。我有S7-200和CP 243-1通讯模块.

我需要从PLC读取数据。我读过很多关于libnodave库的文章,并试图编写一个用于通信的我自己的应用程序,并在Vb 链接到模板上中下载了示例。

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

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

但在项目的参考资料中我添加了libnodave.net.dll..。我没有头绪。

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

致以问候。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-25 12:08:12

不过,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。这一页继续说:

还可以在where文件所在的同一目录中复制libnodave.dll。

PS:请确保用它来纠正你的项目的琐碎之处。本机DLL可能是32位,因此您可能必须将目标平台从“任意CPU”设置为"x86“,以使其工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22634083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档