1
libnodave
라이브러리를 사용하여 Siemens 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 (타임 아웃을 반환).
시간 초과를 변경하거나 쓰기 루틴이 적용되지 않기 전에 직접 연결 루틴을 이동하십시오.