PROFIBUS & PROFINET news from around the world

Tech Tip: What Is PROFINET DCP?

DCP is part of the PROFINET protocol suite and stands for “Discovery and Configuration Protocol”.  It is used by the engineering tool and controller to discover devices, identify device information, and configure device settings such as PROFINET device name and IP address on a PROFINET network. PROFINET DCP is an Ethernet link layer protocol and offers multiple services.  It is normally used in PROFINET systems to handle the network address and name management as each PROFINET device is assigned a unique device name (ex: “filler-cab1”) based on Domain Name System (DNS) naming conventions and an IP address (ex: 192.168.1.2).

PROFINET DCP offers services such as ‘Identify All’, ‘Identify’, ‘Set’, Set – ‘Flash’, Set – ‘Reset to Factory’, ‘Get’ and ‘Hello’ as the main functions. Some of these services use a multicast message which means it goes to a group of PN devices and some use a unicast message which goes only to a specific device.  DCP services are integrated into PROFINET engineering tools, diagnostic tools, controllers, and devices.  Usually there is an area in the tools, such as a menu where DCP functions can be performed.  For example in the tool you might see an option to “Browse the network” or “Assign a Device name”, or “Flash device LEDs”, and once the option is selected the DCP messages are then sent and received by the configuration tool over the network ‘under the hood’.  This is similar to the IT protocol Address Resolution Protocol (ARP) which works to resolve an Ethernet Media Access Control (MAC) address when your PC knows the IP address of a remote host, but not the MAC address.  Next we’ll talk about each service in a little more detail.

See the overview below to see how each DCP function is typically used with PROFINET:

DCP ‘Identify All’ (multicast service / group):
DCP ‘Identify All’ service is a way to identify/browse the PROFINET network and find all the attached PROFINET devices.  By using this function in the configuration tool you can quickly find all connected PROFINET devices and get a device list of all their information such as current device name, IP address, subnet mask, router address, MAC address, device type, vendor and more.

Once you have the device list it’s easy to determine if there is a network management issue such as device:

  • not connected
  • has the wrong name / IP address
  • has a duplicate IP address or duplicate name with another device
  • device name is not set
  • has an incorrect device type or vendor

There might be other options in the tool to filter the device list for devices with no name set, devices with a wrong name, only work with project specific devices, etc.

DCP ‘Identify’ (multicast service):
The DCP ‘Identify’ service is used when a device needs to be found using a particular/known device name.  This is typically used by the PROFINET controller at startup to identify each device and check its IP address settings, name and if it has the expected device before parameterization.  Another use might be in the engineering tool; for example, let’s assume that we already have setup a device with the meaningful name “filler-cab1”.  You can then check if the name has been set on the device by using a check name service in the engineering tool (or by using the previous function: ‘Identify All’).  In this case, the tool is using a DCP ‘Identify’ service basically to say “Device filler-cab1 are you out there?”  If the device is there and has the name, the check is successful as the device responds.  If not, you can set the name with the DCP ‘Set’ service.

DCP ‘Set’ (unicast service):
The DCP ‘Set’ service is used to set the name or IP of the device.  It also has some other special functions we’ll mention next such as resetting a device to factory settings and flash of device LEDs.

In the engineering tool the typical way of setting up a PROFINET device initially is to configure it using the manufacturer supplied GSD file, then setting the parameters and device name offline.  Once this is done the device name must be written to the device using a naming function in the engineering tool.  You can read about how to name devices in a previous tech tip.  When the tool writes the name it uses a DCP ‘Set’ command.

A DCP ‘Set’ can be permanent or temporary.  A permanent set (retentive, the default) means that the name is stored on the device permanently in memory (even across a power cycle); temporary means the name is used until a power cycle and then returned to the default value (Ex: “”, no name set).

Normally when a controller starts up a device, it attempts to find the device by its configured device name using a DCP ‘Identify’, then the controller checks the configured IP address which the engineer setup in the PROFINET project. If the IP address is not set or wrong, the controller will write the IP address to the device using a DCP ‘Set’ command (see Figure 1).  If the controller finds that a different device / or different node already has the IP address it cannot set a duplicate.  In that case the user would either need to change the device IP in the engineering configuration or on the conflicting node.  The IP can also be set permanent or temporary.  In the case of temporary after a power cycle the IP is typically returned to zero settings (0.0.0.0), if retained the IP address is kept.

Figure1

Figure 1: Excerpt of PROFINET startup sequence using DCP from the IO controller

DCP ‘Set / Reset to Factory’ (unicast service):
The DCP ‘Set / Reset to Factory’ service is a special set command that can be sent to the device after a user confirmation which sets the device to a PROFINET factory (default) state which is empty name (“”) and IP settings of 0.0.0.0.

DCP ‘Set / Flash’ (unicast service):
The DCP ‘Set / Flash’ service is another optional special set command which can be used to identify a device by flashing LEDs somewhere on the device.  It makes it easier if necessary to visually identify a device if you have multiple devices of the same type that you are working with.

DCP ‘Get’ (unicast service):
The DCP ‘Get’ service can be used to get information from a device.  For example, depending on the configuration or diagnostic tool, you can readout the name, IP address and manufacturer information.  Other information that can be requested for example is the vendor ID, device ID, type of device, MAC address, device role (ex: controller / device), and others.

DCP ‘Hello’ (multicast service):
The DCP ‘Hello’ service is used when Fast startup is also employed and enabled on a device.  It allows a device to notify the controller (or controllers) after a power cycle that it is back online rather than waiting for the controller to find it which may extend the startup time.

In conclusion, we hope this expanded your knowledge of what PROFINET DCP is and how it is used. DCP really makes network management easy and is the ideal method to use with PROFINET. If you want to play around with DCP functions, you can also get our free DCP browser at www.profinetcommander.com or attend one of our upcoming PROFINET Certified Network Engineer classes. This information was brought to you by the PROFI Interface Center, a PI support center in Johnson City TN, USA.

Other Articles in this Issue
Close