c#应用程序连接西门子S7-200
本文关键字:S7-200 西门子 连接 应用程序 | 更新日期: 2023-09-27 17:52:55
我有一个从PLC到PC获取数据的问题。我有S7-200和CP 243-1通信模块。
我需要从PLC读取数据。我读了很多关于libnodave
库,并试图为自己写一个应用程序进行通信,并在模板上下载了Vb链接的样本。
在我的应用程序中,我得到异常错误
无法下载libnodave.dll。没有找到模块。
但是在项目的参考中我添加了libnodave.net.dll…我不知道。
我所有的尝试都失败了,也许有人知道如何使用libnodave或其他库来通信PC与PLC西门子S7-200。提前谢谢。
问候。
只是一个狂野的镜头,但libnodave.dll
是一个本地DLL和libnodave.net.dll
包装这个DLL吗?
那么您需要确保在搜索路径上找到libnodave.dll
。理想情况下,您将DLL复制到项目的输出文件夹中,这样libnodave.dll
和libnodave.net.dll
都在同一个文件夹中。您可以通过将本机DLL添加到项目的根目录(而不是引用它,像普通现有文件一样添加它),将其构建类型设置为"none"answers"copy always"来自动做到这一点。这将确保DLL总是被复制到bin/debug或bin/release文件夹。
由于您不能将本机dll添加为。net项目的引用,因此开发人员可能会创建一个。net包装器,其中可以添加,但不能单独使用。它将通过P/Invoke调用本机DLL中的函数。
从"链接到模板"页面:
你需要复制libnodave.net.dll文件在你的PC和添加引用在VB。. NET项目属性。它实现了libnodave.dll和用MS . net语言编写的应用程序之间的桥接层。
这意味着我上面的猜测似乎是正确的。这两个dll都需要。页面继续显示:
同时将libnodave.dll拷贝到exe文件所在的目录下。
PS:请确保使用纠正位为您的项目。本机DLL可能是32位的,因此您可能必须将目标平台从"Any CPU"设置为"x86"才能使其工作。