Application Note 4413:
Using Windows and Galil Ethernet Controllers
General Description:
The Microsoft Windows Operating System (WIN 95, WIN 98, WIN NT)
uses a buffer to store information before sending it via packets on an
Ethernet connection. Windows will wait until enough data has been
gathered before sending a packet or until 200msec has elapsed. The
200msec waiting period is known as the "Time-Out Period". The Time-
Out Period is set in the Windows operating system to 200ms and cannot
be changed.
Windows method for handling Ethernet packets generally provides for an
efficient Ethernet operation. However, this method is not beneficial with
communication typical of a motion control system. This feature should be
considered to avoid significant time delays in communication between the
motion controller and the computer.
For each packet of data sent via Ethernet, the responding device will send
an acknowledgment. Since an acknowledgment is a very small packet,
Windows will wait for the Time-Out Period unless other data is available
to be included in this packet. To avoid waiting for the Time-Out period, it
is best to insure that Windows always has data ready to be sent. The Galil
Ethernet Driver on the Computer does not provide new data to be sent
until all previously sent commands have been executed. Furthermore,
each command sent to the controller will generate a response packet and
the controller will not send any new packets until the previous packet has
been acknowledged. Therefore, if multiple commands are sent on one
line, the controller will wait after each command before sending the next
command response until receiving a response from Windows to the
previous command response. Since the driver will not provide additional
data for Windows to send until all commands are executed, sending
multiple commands will force Windows to wait after each command for
the Time-Out Period.
The following diagram provides an overview of Ethernet operation and the
Galil Motion Controller: