首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与S7-1200的低音通信

与S7-1200的低音通信
EN

Stack Overflow用户
提问于 2014-06-04 14:11:27
回答 1查看 4.3K关注 0票数 2

几天来,我一直试图使用libnodave作为通信库,与西门子的S7-1200 PLC (CPU 1214C)进行通信。有了libnodave库,就提供了一些东西。Delphi应用程序正在工作,windows可执行文件正在工作。

在Vmware上,我运行的是Linux,testISO_TCP的预编译二进制文件正在工作。看来我可以用,对吧?

代码语言:javascript
复制
daveInterface * di;
daveConnection * dc;
_daveOSserialType fds;
ds.rfd=openSocket(102, "192.168.0.1");
fds.wfd=fds.rfd;
if (fds.rfd>0) {
    di =daveNewInterface(fds,"IF1",0, daveProtoISOTCP, daveSpeed187k);
    daveSetTimeout(di,5000000);
    dc =daveNewConnection(di,0,0,1);  // insert your rack and slot here
    if (0==daveConnectPLC(dc)) 
    {
       printf("Connected..\n");
    }
}

但是,当我将源代码1:1复制到IDE (Eclipse)时,我会得到以下错误消息:

代码语言:javascript
复制
IF1 error in daveConnectPLC() step 1. retrying...IF1 error in daveConnectPLC() step 1. retrying...IF1 error in daveConnectPLC() step 1. retrying...Couldn't connect to PLC.
Please make sure you use the -2 option with a CP243 but not with CPs 343 or 443.

似乎在连接到PLC时有一些错误。以下函数生成此错误:

DaveConnectPLC(dc)

注意,当您将机架和插槽与Linux!中执行的二进制文件进行比较时,机架和插槽没有变化。

有人能帮我在Eclipse上工作吗?奇怪的是,所有的可执行文件/二进制文件都在工作,但是当我想直接从IDE执行它时,它就没有了。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-06-08 13:24:31

首先,在虚拟上运行与在真正的计算机上运行是不一样的。它运行在Windows上并不能保证它在Linux下运行,尽管源代码是相同的和/或使用相同的库。基本上,Linux下的预编译程序是它将运行并能够运行的唯一证据。

每当我在这方面出现问题时,我都会查看使用的编译器版本和编译器设置。运行带有debug选项的代码是众所周知的,它会破坏硬件通信代码。

如果您还没有使用Wireshark,我建议您使用它。这是一个完美的工具,以了解发生了什么。

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

https://stackoverflow.com/questions/24039796

复制
相关文章

相似问题

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