Industrial Networks: Open Source

Industrial networks options are many. If modifications are desired beyond the commercially available industrial network, suppliers offer commercial products that support protocols. In some cases, open source options may be a more viable option. Probably due to the cost of commercial products, many companies decide to start developing their own protocol stack.

By R.A. Hulsebos, Delem August 1, 2009

Industrial networks options are many. If modifications are desired beyond the commercially available industrial network, suppliers offer commercial products that support protocols. In some cases, open source options may be a more viable option.

Probably due to the cost of commercial products, many companies decide to start developing their own protocol stack. Often this turns out to be a bad decision, since the necessary effort is always much larger than initially expected.

CAN is a protocol whose number of installed nodes surpass any other protocol by a very, very wide margin. However a disadvantage of CAN is that there is a large number of protocols, which are mutually incompatible with each other. Hence, it is important to check that a certain “CAN” protocol stack implements the protocol needed.

CANFestival software delivers a CAN/Open framework, usable on Linux, Windows and two microcontrollers, for a number of CAN-boards sold by well-known suppliers. It provides an ANSI-C portable protocolstack that can be used on master or slave nodes.

EtherCAT requires dedicated hardware in the network slaves; no open-source implementation exists here. The master module can work with a standard Ethernet controller.

Etherlab : Etherlab is the name of a product sold by the German company IgH, combining hardware and software for test and automation purposes. One of the components of Etherlab is an EtherCAT master, supporting four (Realtek, Intel) Ethernet-controllers running on Linux (even without real-time extension). Their Website ( www.etherlab.org ) provides a list of all EtherCAT features that are supported.

EtherNet/IP : For EtherNet/IP (Industrial Protocol), an implementation is available from the user’s group ODVA (Open DeviceNet Vendors Association). It provides a complete set of functions for the CIP (Common Industrial Protocol) part of EtherNet/IP, the remainder being standard Ethernet functionality. The V7 implementation only supports Microsoft Windows, but OS-dependent sections in the code are marked. The code has passed ODVA’s own conformance test, meaning that the implementation can be relied upon to match the specification.

Ethernet Powerlink : The Powerlink user’s group is the first group who has officially released an open-source implementation of its own protocol, called “openPowerlink,” in an effort to boost the protocol’s popularity against major competitors. The software has been developed by the German company SysTec, which still actively maintains and distributes it. OpenPowerlink contains the Linux-based protocol stack for a Powerlink “managing node” (the master) and for the “controlled nodes” (the slaves). The implementation has been tested to conform to the current official Powerlink specification V1.1.0.

HurriCANe is an VHDL implementation of the basic CAN (OSI-layer 2) protocol. Unfortunately, the license-holder (the European Space Agency), no longer allows use of HurriCANe 5.2.4 except for ESA-related projects. Nevertheless, the documentation and a simulation model for ModelSIM are still available. The availability of open-source hardware for CAN falls outside the scope of this article; see www.opencores.org for more information.

MicroCANOpen is a spin-off of a commercial product made by U.S./German company Embedded Systems Academy. It is a “minimal” CAN/Open implementation, that can even run on resource-constrained 8-bit microcontrollers. Nevertheless it still has an impressive set of features which will satisfy many applications. MicroCANOpen may be used in commercial products after paying a modest license fee.

Modbus/RTU and Modbus/TCP : Modbus is one of the most popular industrial protocols. It is therefore not surprising that a lot of open-source implementations are available for all sorts of programming languages, operating systems, and platforms. Even when there is no implementation fitting your particular need, it is usually not difficult to modify an existing implementation (even starting from scratch).

Profinet : The Profibus user’s group is one of the few groups not actively supporting open-source implementations of its own protocols (Profibus and Profinet). For the older Profinet/CBA (component based automation) an ‘implementation example’ written by Siemens for Linux is available, but only for members of the user’s group. There are also several licensing restrictions.

RTNet : “Real-time Net,” originally developed by Hannover University, is a hard real-time network protocol stack for the real-time Linux extensions Xenomai and RTAI. It makes use of standard Ethernet (100 Mbit/s and Gbit) or Firewire controllers. RTNet is not known to be used widely in industrial control applications, but its hard real-time capabilities without requiring special hardware might make it useful.

SERCOS III is the Ethernet-wired successor of SERCOS II; both are intended to be used for high-speed motion applications. Although no open-source protocol stack for SERCOS III exists today, this will change shortly. The “SERCOS International” user’s group announced at Hannover Fair 2009 that a SERCOS III master stack will be made available for Linux.

The protocol stack will be developed in cooperation with the Open Source Automation Development Lab (OSADL), which promotes the usage of open-source software for machine and plant control systems.

Simple Open EtherCAT Master (SOEM) : SOEM is written by (Dutch) Ethercat-guru Arthur Keetels, who uses EtherCAT in his own machines and started to donate his efforts to the open-source community to further popularize EtherCAT. The name suggests a basic implementation of EtherCAT, and though this may have been true 5 years ago, it is no longer the case (however, the name stuck).

SOEM is originally written in Delphi and runs on a standard desktop PC using Microsoft Windows; a C-port is also available for Linux.

Industrial networks open source softwareSampling of solutions

Protocol
Implementation
Platform
Availability
Website

BACNet
Various
Windows, Linux
Free download
bacnet.sourceforge.net

CAN
HurriCANe
VHDL
Limited
www.esa.int/TEC/Microelectronics

CANFestival
Various
Free download
www.canfestival.org

MicroCANOpen
Various
Free download after registration
www.microcanopen.com

EtherCAT
EML
eCos
Limited
ethercatmaster.berlios.de

Etherlab
Linux
Free download
www.etherlab.org

SOEM
Linux
Free download
soem.berlios.de

Windows
Upon request
smfk.nl

EtherNet/IP
ODVA
Microsoft Windows
Free download after registration
www.odva.org

Modbus/RTU and TCP
Various
Various
Free download
www.modbus.org , en.wikipedia.org/wiki/Modbus , www.freemodbus.org

Powerlink
Systec
Linux
Free download
openpowerlink.sourceforge.net

ProfiNet/CBA
Profibus User Group
Linux
Members of Profibus only
www.profibus.com

RTNet
RTNet
Linux
Free download
www.rtnet.org

SERCOS III
User Group
Linux
Announced
www.sercos.com

ZigBee

Unknown
Announced
www.freaklabs.org

Author Information

Rob Hulsebos is a software engineer with 20 years’ experience in machine building, embedded software, and industrial networks. He works at Delem ( www.delem.com ), a provider of computer numeric controls for sheet metal machines and is a freelance instructor and author about fieldbus technologies. Reach him at r.hulsebos@onsnet.nu .

Author Information

Rob Hulsebos is a software engineer with 20 years’ experience in machine building, embedded software, and industrial networks. He works at Delem ( www.delem.com ), a provider of computer numeric controls for sheet metal machines and is a freelance instructor and author about fieldbus technologies. Reach him at r.hulsebos@onsnet.nu .