BeckHoff BC9000 communication problem!


Thread Starter



I have a communication problem with BC9000 Bus coupler. I have a BC9000 connected to an Ethernet switch and then to a PC which collect the data. On the PC I have a Modbus TCP/IP OPC Server that scans every 100 ms the data of BC9000. The BC9000 is configured without program and with all terminals configured by KS2000 in fieldbus terminal (compact). All is working well, I can see the data of BC9000 by an OPC server explorer.

At this point I want to check the performance of the Ethernet field bus using the program performance monitor of XP/WK2/WNT. I configure performance monitor to see TCP activity with 2 counter: TCP send segments/sec ; TCP received segments/sec. To my surprise I see that the "TCP received segments/sec from BC9000" are 3 times the "TCP send segments/sec to BC9000".

For example:
The OPC server scan every 100ms all data of BC9000 with 4 MODBUS/TCP messages, for a total of 40 messages/sec. (02-Read input status, 03-Read Holding register, 15-Force multiple coils, 16-Preset multiple register). I think that "TCP received segments/sec from BC9000" should be the same as "TCP send segments/sec to BC9000". (a TCP segment received for every segment send).

The problem persists for 60 seconds, then it disappears for 60 seconds an then it reappears and so on cyclically. In the 60 seconds that the problem disappears I see in the performance monitor that the send segments and received segments are same (40/s).

With a network analyzer software (WinPcap, Analyzer I have captured TCP messages sent and received from the network card connected to BC9000.

On the messages list I see that:
When I have NOT the problem I have a received message from BC9000 for every send message to BC9000;
When I have the problem I have 3 received messages from BC9000 for every send message to BC9000. (2 of 3 messages received are without data).

I tried to use a polling rate slower on OPC server (200ms, 400ms) but the problem still. The only difference is that the toggle time (Problem/NO Problem) change. (100ms = 60 sec, 200ms = 120 sec, 400ms = 240 S).

This problem add network tread and decrease performance. I use many BC9000 connected to the switch and then to PC, so this problem is multiplied for every BC9000 connected. Every BC9000 has its problem toggle time asynchronous from other, so the performance of the Ethernet change randomly.

I hope to have explained clearly the problem.

If someone has had the same problem or can give me some suggestions I invite him to contact me as soon as possible.

Best regards.

Name : Silvano Pernigotti
Company: Auxel s.r.l.
Address: Via Galileo Galilei 15
City : Arcugnano
Country: Vicenza
State : Italy
ZIP : 36057
Phone : +39 0444 962166 + 515
FAX : +39 0444 569300
email : [email protected]

Curt Wuollet

Just a wild guess, but do you suppose these are resends because the PC is busy and doesn't acknowledge soon enough? Looking at the header data should tell you what's going on.


I think you are seeing the artifacts of the TCP protocol. Modbus/TCP uses a full TCP stack in which each message first establishes a "virtual connection" to the target node. Then it sends a test message to validate the connection. Next it sends the message which TCP may divide into shorter segments. Finally, at the end of the data, TCP breaks the "virtual connection." TCP is optimized for the public internet, not for a LAN. It is not very efficient, and does not use time predictably. For example, if a second message is queued for the same destination before the connection is broken, it may bypass the entire connection phase. I think the timing of your system is allowing this TCP inefficiency to happen. Normally, it is just ignored since it takes very little time on a 100 Mbps Ethernet. You didn't say that it was causing a problem.

Dick Caro
Richard H. Caro, CEO
CMC Associates
2 Beth Circle, Acton, MA 01720
Tel: +1.978.635.9449 Mobile: +1.978.764.4728
Fax: +1.978.246.1270
E-mail: [email protected]

For test if the PC are busy or not, I have used a MODBUS/TCP slave simulator (ModSim32
With simulator I never see extra messages from slave so the received and the send messages are the same number 40 /s. So I assume that the PC are not busy.