The DNP3 protocol is organized in data types or object group as well as class data. Some of the object groups are as follows:
- Binary inputs
- Binary outputs
- Analog inputs
- Analog outputs
- Time and date
- File transfer objects, etc.
Each object group can contain one or more data points. A data point is a single data value of a specific object group. Every object groups also contains data variations. These variations are there to indicate the different methods of specifying data within an object group. For example, the variation of analog input data allows for 16-bit signed integer values, 32-bit signed integer values or even 32-bit floating point values.
In the DNP3 protocol object groups and the data points within them are further organized into Class data. This provides a more efficient way of requesting data. Four classes are defined in DNP3. Class 0 represents all the static data of unchanged event data. Class 1, 2 and 3 on the other hand represent different priorities of change event data. This allows the user to poll more frequently for higher priority changed data more often without using a lot of bandwidth. This is because the class data response only returns the class data that changed since the last poll, keeping the response message small and efficient.