R
Robert Lunnon
In all this discussion it has not yet been pointed out that stock ethernet (CSMA-CD) is not particularly good for realtime applications because it isn't deterministic in itself. (Tho it is possible to layer determinism over the base transport at the application level). And this is one reason for the very slow uptake of ethernet and TCP/IP. Another reason is the very high
overhead of TCP/IP and UDP/IP vs the other fieldbus protocols. TCP over ethernet wastes well over 50 bytes per packet, much of it redundantly. If you are sending a bunch of 1 byte register values, this efficiency is woefull. Profibus has about 12 bytes and CanBus 11 - 22 bits (1.5-3) bytes but being partially TDM has severe length restrictions. This means that for single byte packets (theoretically) 1 Mbit/S CAN (2.5 bytes) is as fast as 8 Mbit/s Profibus (13 bytes) which is as fast as maybe 35Mbit/Sec TCP/IP over
ethernet (@ 51 bytes). By the time you layer another protocol such as ModBus over TCP/IP this is probably more like 60 or more.
As for "Openness" this is just related to the availability of information, certain CAN implementations, profibus, and some ethernet based protocols are open, in the sense that the documentation is available to anyone to implement a solution from the ground up. In the balance I have to say that all of these protocols are good for different things. You can buy a chip from Siemens or Profichip which does exactly what the ethernet controller chip does for profibus so that you can implement your own master (or slave)
very cheaply (I have already done this and it is very easy) Siemens even publish the design of the bus interface. There are a bunch of chips from
lots of vendors with CAN controllers in them. You wanna roll your own, go to it.
In the end the choice of fieldbus depends on
Cost sensitivity
Line Length
Required cycle time
Size of the datagrams
Electrical environment (Noise etc)
overhead of TCP/IP and UDP/IP vs the other fieldbus protocols. TCP over ethernet wastes well over 50 bytes per packet, much of it redundantly. If you are sending a bunch of 1 byte register values, this efficiency is woefull. Profibus has about 12 bytes and CanBus 11 - 22 bits (1.5-3) bytes but being partially TDM has severe length restrictions. This means that for single byte packets (theoretically) 1 Mbit/S CAN (2.5 bytes) is as fast as 8 Mbit/s Profibus (13 bytes) which is as fast as maybe 35Mbit/Sec TCP/IP over
ethernet (@ 51 bytes). By the time you layer another protocol such as ModBus over TCP/IP this is probably more like 60 or more.
As for "Openness" this is just related to the availability of information, certain CAN implementations, profibus, and some ethernet based protocols are open, in the sense that the documentation is available to anyone to implement a solution from the ground up. In the balance I have to say that all of these protocols are good for different things. You can buy a chip from Siemens or Profichip which does exactly what the ethernet controller chip does for profibus so that you can implement your own master (or slave)
very cheaply (I have already done this and it is very easy) Siemens even publish the design of the bus interface. There are a bunch of chips from
lots of vendors with CAN controllers in them. You wanna roll your own, go to it.
In the end the choice of fieldbus depends on
Cost sensitivity
Line Length
Required cycle time
Size of the datagrams
Electrical environment (Noise etc)