Everyone has one of those seminal moments from their childhood that they’ll remember forever. Mine was the 1962 launch of the Mercury capsule that made John Glenn the first human to orbit the earth. It’s my oldest memory and one of my most cherished. With the paltry media sources of 1961, the entire world focused on his “Friendship 7” capsule and watched everything from launch to his three orbits and the splashdown. What we all didn’t know at the time was that a sensor indicated possible damage to his heat shield. NASA thought it was a very real possibility that the first man in orbit would become the first to die in space. Certainly a seminal moment for me and many others at that time.
It wasn’t nearly as big nor as momentous, but the mid-1990s launch of DeviceNet also stands out in my memory. Prior to that day, I was a serial guy: UARTS, bytes, RS232, RS485, and all the rest were my thing. In those days, all you had to know was what goes in on one side and what goes out on the other. We called them the guzzintos and guzzoutas. We had no concept that it was the stone age of computing without Raquel Welch. If you don’t get that reference, you weren’t a young boy in the late 1960s (See the movie One Million Years B.C. to understand).
Difference between earthbound and orbit
The DeviceNet launch made me a network guy. Away with the guzzintos and guzzoutas. Now we had to manage objects, connections, connection classes, endpoints, message classes, expected packet rates, and much more. It was a lot more complicated but extremely exciting. It truly was the difference between being earthbound and orbiting the earth.
DeviceNet changed everything. Prior to DeviceNet everything was custom. Modbus existed but it wasn’t as popular in those days. If you had a device with a serial port, you designed your own protocol. Usually it was something ASCII. Something like a “$A 0100” to start the injection process and a “$Z 0200” to stop the process. And sometimes the protocol required you to terminate the character sequences with a carriage return, sometimes with a linefeed, and sometimes with both. On the really advanced systems you had your choice.
Matching baud rates between devices in those days was a real headache. If you didn’t know the baud rate, data bits and parity of a device (and you usually didn’t) you would try all the combinations one by one. Tedious and time consuming. And very frustrating.
DeviceNet and CAN solved a lot of those kinds of problems. CAN (Controller Area Networking) was new then, too. It was developed by Bosch in Germany to solve a huge problem at VW and other German car manufacturers: weight. Remember, the cars of the 1950s and 1960s didn’t have power windows, power seats, defrosters, or moveable mirrors. If you wanted to adjust the passenger mirror you parked the car, opened the passenger window and reached through the open window and pulled it left or right. (Yes, it really was the Stone Age.) As more and more electronics were put into cars, all that wiring became a massive problem. How can power and control signals be delivered to all these new motors all over the automobile? Of course, those wires have to be purchased, installed, terminated, and fastened in place. Lots of time and labor – and the problem would only get worse in the future.
CAN solved that problem. And since American manufacturing had the exact same problem on the new machinery it was developing with more and more fancy electronics, CAN (and DeviceNet) solved that problem for American manufacturing, too.
CAN provided the mechanism to easily move messages around from device to device. CAN was, and still is, a link layer protocol. It’s really good at moving a small amount of data from one node on a network to another node on the network. The CAN messages contain an eight byte payload of data. The only responsibility of CAN is to make sure that payload is moved correctly. The payload, of course, was the DeviceNet application layer message. Using two protocols, with one embedded within the other one – well that was another first for me and many geeks like me. Little did we know what the future would bring.
What we didn’t know is that the networking rocket had left the pad and the future was filled with protocol layers and power technologies like TCP/IP, Modbus TCP, HTTP, ProfiNet IO, EtherNet/IP, EtherCAT, XML and more. We didn’t know that the DeviceNet launch set us up for an incredible ride.