ibaPDA measurements of automation devices using TCP/IP sometimes do not work with cycle times < 200 ms.

Errors shown in ibaPDA

Incomplete telegrams or spikes in data values (depending on the sending controller type)

Cause

The TCP/IP protocol has different options for "acknowledge" handling.

The standard WinSocket works in accordance with RFC1122 using the "delayed acknowledge" mechanism (Delayed ACK). It specifies that the "acknowledge" is delayed until other telegrams arrive in order to acknowledge them jointly. If no other telegrams arrive, the ACK telegram is sent after 200 ms at the latest (depending on the socket).

A "sliding window" (parameter Win=nnnn) controls the data flow. The recipient specifies how many bytes it can receive without sending an acknowledgment.

Some controllers do not accept this response, but instead, wait for an acknowledgment after each data telegram. If it does not arrive within a certain period of time (200 ms), it will repeat the telegram and include any new data to be sent, causing an error with the recipient, because the previous telegram was received correctly.

Remedy

The "delayed acknowledge" can be switched off individually for each network adapter via an entry in the Windows Registry. For easy modification, ibaPDA offers a corresponding dialog in the I/O Manager under General in the tab Settings.

In the list of network adapters, select those for which you want to disable "delayed acknowledge" and click <Apply>.

Thus, the parameter "TcpAckFrequency" (REG_DWORD = 1) is created in the registry path of the selected network adapters:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{InterfaceGUID}