1
我正在使用libnodave
庫與西門子S7 PLC進行通信。它工作正常,直到我嘗試寫入字節。我幾乎總是超時。每當我嘗試「writeBytes」時,libnodave都會超時
我必須連接的代碼:
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;
}
}
和寫的字節(在另一種方法中,被稱爲在稍後階段):
dc.writeBytes(libnodave.daveDB, datablock, address, bytestowrite, buftosend);
幾乎總是返回-1025(超時)。
更改超時或直接在寫入之前移動連接例程無效。