Check out our White Paper Series!
A complete library of helpful advice and survival guides for every aspect of system monitoring and control.
1-800-693-0351
Have a specific question? Ask our team of expert engineers and get a specific answer!
Sign up for the next DPS Factory Training!
Whether you're new to our equipment or you've used it for years, DPS factory training is the best way to get more from your monitoring.
Reserve Your Seat TodayIn a Supervisory Control and Data Acquisition (SCADA) system, your Remote Terminal Unit (RTU) will gather information about the status of your remote equipment and send this data to your master station. The master station, in return, can also ask for updates or send control commands to your RTU.
This exchange of information is done via communication protocols. A protocol is simply the rules that will define how the data transfer will happen. There are many different protocols in the SCADA environment and all of them will have varying advantages and disadvantages.
It's important to give protocol choice a proper consideration. That's because, in order to have proper visibility, you'll need a protocol that will be a good match for your application and that will reliably report all changes with your devices.
DNP3 and Modbus are examples protocols used in remote monitoring systems. Since they are so common, many technicians struggle to determine which one to choose. So, to help you determine which one will work best for your network, let's take a look at both of them and compare their functionality.
Modbus is one of the most popular protocols used for process automation and SCADA systems. It was originally published by Modicon in 1979 for use with Programmable Logic Controllers (PLCs).
Modbus is easy to use, open and royalty-free. It's a common language that devices use to communicate with one another.
A usual Modbus application is based on the master-slave structure. This means that a Modbus master station that is connected to multiple RTUs will request information from the RTUs, and the RTUs will provide that information in response.
Masters can send a broadcast message to all its slaves or address only one specific device. Slaves will respond to all messages that were sent to them individually, but don't respond to broadcast messages. Modbus slaves also can't initiate messages on their own and can only respond to message queries received from the master.
The Distributed Network Protocol (DNP3) was developed by GE Harris in order to achieve a standard protocol specification for vendors of power grid SCADA components. Today, DNP3 is very common in electric and water utilities for communication between SCADA master stations and RTUs.
A typical DNP3 structure involves a central master station that monitors all the system equipment and controls their behavior based on gathered data from RTUs. The RTUs will be deployed at remote sites to to collect information from sensors and perform control actions determined by the master.
Usually, the master is the one that will initiate the request for data and send out control commands. The RTU will respond with the appropriate information or performing the equipment control action.
In the DNP3 protocol structure, RTUs are allowed to send unsolicited messages in order to update the master station about important equipment's change of status.
Now that we understand how these two protocols work, let's take a look at some points of comparison between them.
As I've said before, communication protocols allow two devices to talk to each other. Usually, each device involved in this information exchange needs to support the same version of the same protocol - otherwise, you'll experience communication errors.
If both devices are from the same manufacturer, then they will be able to communicate without any issues. The problem is that many vendors restrict their equipment to support only their proprietary protocol. This becomes a serious problem because you'll be restricted to this one supplier for support and purchase of future devices.
The open systems concept arrived to make it so devices from one vendor are to communicate with those of other vendors. To achieve this interoperability you have to use industry open standard protocols.
DNP3 and Modbus are both open standard protocols and that's why they are so popular. This means that both of them will give you the following benefits:
Modbus-enabled devices usually allow access to the inputs and outputs on a monitoring device. The Modbus protocol standard doesn't specify how the 16-bit register values are sent. They may be sent high-byte first or low-byte first, signed or unsigned. Successive registers may even be combined to create floating-point numbers.
Many manufacturers add custom extensions to their devices to extend the functionality beyond that provided by the standard Modbus protocol. This and the common use of outputs as inputs sometimes makes it hard to make even the simplest Modbus devices to work together.
Since the data types are not strictly defined, knowing how your device sends data is critical in order to interpret the value that is sent. For example, a master station can be configured to read either high byte first or low byte first in order to make sure it is reading all devices. This adds an additional step of complexity to the master station setup.
Modbus point numbers are often broken up into special ranges. Since this protocol supports the capability of reading back the value of an output, most Modbus devices only implement "output" type data. With this implementation, all inputs are read and addressed as if they were outputs.
The DNP3 specification defines a large number of data types. Within each type, multiple variations may be supported. These variations may describe whether the data are sent as 16-bit or 32-bit values, 32-bit or 64-bit floating-point values, with or without timestamps, and with our without quality indicators.
The Modbus protocol reads values from its RTUs inputs by having the master station send a single request to reach each input. All information is treated as a current value because Modbus doesn't have a concept of events or time. This means that any information that is not collected by reading inputs will be lost when the data is updated.
The DNP3 protocol supports multiple ways of reading inputs individually or as a group. So, for instance, multiple types of data can be transported in a single message to improve efficiency. Timestamps and data quality information can also be included.
Both DNP3 and Modbus support the polling process. This is where the master station will ask the RTUs to report any type of change of status. This reduces the overall traffic on the transport line, as only values that have changed are reported.
However, between both protocols, only DNP3 supports unsolicited reporting. This means that RTUs can send updates as values change, without having to wait for a poll from the master. The master can easily process any change of status event (polled or unsolicited) because the report will include the type and variation, point number, value and time stamp and quality indicators. Time-tagged change events can be used to easily create a sequence of events log.
The Modbus protocol supports control operations via its read/write data types (these are known as coils and holding registers).
DNP3 supports control operations via output object groups (known as CROB and Analog output blocks). DNP3 object groups are also read/write - reading the output object returns the output stats. The actual value of the control point can be monitored via a binary or analog input.
Also, DNP3 supports high-security two-step control operations. This means that, with these operations, a "select" request is sent first. If it is confirmed by the slave device, then the actual "operate" request is sent. This process ensures the integrity of control commands.
The DNP3 protocol also has a variety of functions that are commonly used on control applications, such as pulsed and paired outputs. The quality flags in DNP3 report important quality status information, such as whether the point is offline and if it is being controlled locally.
There's no real answer when asking which protocol is the best. The best protocol for you will depend on mainly on your application, specific requirements and functions are carried out.
To help you determine which way to take though, you have to consider the following questions according to your unique network.
DNP3 is mainly used in utilities and oil and gas industries - although it can also be seen in other industries as well. Modbus, on the other hand, is more of a general-purpose protocol, mainly intended to be used in industrial applications with direct register mapping and the amount of data transfer is not large.
What are your specific requirements in terms of the amount of data, bandwidth, response time and the longest distance between two devices?
When a large area needs to be covered, then DNP3 is a good solution. DNP3 sends a small number of large-sized data. So, when voluminous data is to be communicated over a large distance, DNP3 becomes a favored one.
If you are looking for a simple protocol where memory requirements are less and a few numbers of data types, then Modbus is a better option because of its smaller frame size compared to other protocols and simplicity in implementation.
Also, keep in mind that Modbus is very fast (as it packs a lot of information in just one message) and it is a polled protocol (meaning that there's no spontaneous messaging coming from your RTUs).
If you want to equip small embedded controllers and boards, where available memory is small, then Modbus is a good option to implement.
Another point to keep in mind is what you need to do. Do you need to remotely parameterize relays and download disturbance data and events? Or do you need to simply retrieve some data?
While Modbus is just a bunch of bits, DNP3 has much more functionality. If you choose Modbus, then you will have to implement the master/slave architecture in order to obtain that functionality.
If all that you need is a simple read/write feature and similar capabilities, then it will be adequate to use Modbus for your monitoring system.
In a nutshell, Modbus is a simple protocol used mainly in process control and SCADA systems. DNP3 is specifically designed for use in SCADA environments, as it is highly standardized.
Although both Modbus and DNP3 has its pros and cons, not always you will be able to choose between them. Maybe you inherited a system that has devices supporting both protocols and now you need to know how to work with them at the same time.
If that's your case, then you need a multiprotocol SCADA master station.
That's where T/Mon comes in. Supporting more than 25 standard and proprietary protocols, it won't matter what kind of protocol or device you have, you'll be able to integrate them under one intuitive interface.
But that's not all, with T/Mon you'll have many other efficient capabilities. Give us a call today and learn more about it.
Morgana Siggins
Morgana Siggins is a marketing writer, content creator, and documentation specialist at DPS Telecom. She has created over 200 blog articles and videos sharing her years of experience in the remote monitoring industry.