首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每当我尝试`writeBytes`时,libnodave超时

每当我尝试`writeBytes`时,libnodave超时
EN

Stack Overflow用户
提问于 2012-12-18 23:39:16
回答 1查看 1.9K关注 0票数 1

我正在使用libnodave库与西门子S7 PLC进行通信。它工作得很好,直到我尝试写入字节。我几乎总是超时。

我必须连接的代码:

代码语言:javascript
复制
fds.rfd = libnodave.openSocket(port, address.ToString());
fds.wfd = fds.rfd;

if (fds.rfd > 0) {
    di = new libnodave.daveInterface(fds, "IF1", 0, libnodave.daveProtoISOTCP, libnodave.daveSpeed187k);
    di.setTimeout(10000000);

    dc = new libnodave.daveConnection(di, 0, 0, 2);

    if (0 == dc.connectPLC()) {
        _status.connected = true;
    }
}

并写入字节(在另一种方法中,稍后调用):

代码语言:javascript
复制
dc.writeBytes(libnodave.daveDB, datablock, address, bytestowrite, buftosend);

几乎总是返回-1025 (超时)。

更改超时或直接在写入之前移动connect例程没有任何效果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-19 17:47:16

像往常一样,事情变得奇怪,多线程正在进行,问题就存在了。

readBytes的调用仍在进行时,我正在调用writeBytes,弄乱了结果。

添加一个互斥锁和更好的时间来修复它。

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

https://stackoverflow.com/questions/13936391

复制
相关文章

相似问题

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