What is the difference between Ethernet/IP and TCP/IP?
When it comes to the industrial protocols that we support here at Robotiq, one of the most frequent questions that gets asked is certainly: what is the difference between Ethernet/IP and TCP/IP? Indeed, for a person unfamiliar with this subject, this can be quite confusing. In our daily lives, when we connect a PC to a network, we need to plug a cable into an ethernet card. However, to access the web, we have to configure our TCP/IP settings. And what does IP stands for again? Well, good question because the answer is: it depends! Let's take a few minutes to demystify all of this.
An ethernet RJ/45 connector (picture from Wikipedia, Copyright © 2007 David Monniaux)
First, what do all these terms/acronyms mean?
TCP is an acronym which stands for Transmission Control Protocol. This protocol is responsible for managing the connection between a client and a server, making sure that the data which needs to be transfered is split into several packets which will all eventually reach their destination. If they don't, or if one of them is corrupt, TCP defines how the missing data will be retransmitted.
IP has two different meanings depending on how it is used: Industrial Protocol for Ethernet/IP and Internet Protocol for TCP/IP. Quite confusing! Let's take a closer look at these two protocols.
Ethernet/IP uses the Ethernet infrastructure (who would have guessed?) to manage the connection between various automation devices such as robots, PLCs, sensors, CNCs and other industrial machines. It is managed by the Open DeviceNet Vendors Association (ODVA) and is based on the Common Industrial Protocol (CIP). It is very robust, but it is also complex and the learning curve is very steep (trust me on that one!).
The real name of the industrial protocol which we support is Modbus TCP/IP. TCP/IP is responsible for the transmission of the packets, which are composed of Modbus frames containing commands to read/write into the shared memory of a device. It is quite easy to learn, as TCP/IP is standard in most programming langages (C/C++, Matlab, Python, etc.) and Modbus is very simple. Also, Modbus TCP/IP is standard with most PCs, which makes it an interesting communication protocol for research laboratories.
Which protocol do you need?
If you are asking yourself this question, chances are good that you need Modbus TCP/IP. I'm suggesting this, because the robot used in the targeted application generally determines if an Ethernet/IP protocol is needed, so if not, then Modbus TCP/IP can be used.
If you still hesitate, just send us an e-mail and we will help you to choose the protocol which is the best suited for your application. Do not forget, however, that many other protocols exist in robotics. At Robotiq, we also support DeviceNet, EtherCAT, Serial RS-232 and now also CANopen. The choice is yours!