dnp3-master plugin acquires measurement data and sends controls to DNP3
outstations. It maps DNP3 measurement values (binary, analog, etc) to OpenFMB
non-control profiles and sends DNP3 commands (e.g. binary/analog output) in
response to OpenFMB control profiles.
name: name used in the logs to identify the communication session.
adapter: network adapter to use to establish a TCP connection (typically 0.0.0.0)
outstation-ip: IP address of the outstation. Can also be a domain name.
port: TCP port on which the outstation is listening.
master-address: DNP3 link-layer address of the master (the adapter).
outstation-address: DNP3 link-layer address of the outstation (remote device)
unsol-class-1: Enable Class 1 unsolicited responses.
unsol-class-2: Enable Class 2 unsolicited responses.
unsol-class-3: Enable Class 3 unsolicited responses.
polls parameter contains a list of polls to be executed by the Adapter.
Each poll has a name that might be referenced in the non-control profile
mappings. This is particularly useful for event profiles, where you want to
publish an event profile only when events are received, not on every message.
There are two types of polls.
integrity is a Class 1230, meaning it gets the
sequence of events (and empties the event buffers) and all the
static (current) values. This should be used for status and reading profiles.
event poll only asks for the sequence of events assigned to a specific
class. It should be used for event profiles. In the configuration,
it is possible to specify which classes to ask for.
The interval specifies the delay between two polls.
Non-control profiles (reading, status, etc) are mapped from DNP3 measurement points.
poll-name parameter is required and must point to a valid poll defined in
Polls Configuration. An OpenFMB profile
is generated on every non-empty response of the poll.
DNP3 binary inputs can be mapped directly to an OpenFMB Boolean value.
DNP3 analog inputs and counters can be mapped to an OpenFMB
int32 or an
int64. A scaling can be applied to the value.
DNP3 analog inputs can be mapped to an OpenFMB
float value. A scaling can be applied to
OpenFMB enumerations can be mapped from DNP3 binary, analog, and counter source points.
Binary inputs have an enumeration value specified for 'true' and 'false'. Analog and counter mappings allow for a free form mapping. If no association is found in the mapping list, the field is simply not set.
Since analog inputs might be reported as a floating point value, an epsilon of 0.001 is used for comparison.
OpenFMB control profiles are translated to DNP3 binary and analog output
commands. All commands are executed with a Direct Operate function code
command-order list is used to priortize every command referenced in the detailed
mappings. The first element in the list has the highest priority, and will be
sent first to the outstation.
tolerance-ms parameter is used to specify the tolerance for schedule
parameters. See Scheduling for more details.
Boolean values in control profiles can be mapped to one or more DNP3 commands. A list of commands is specified for when the Boolean value is both true and false.
The possible commands are either Control Relay Output Block (
g12v1) or an
Analog Output command (
CROBs can execute any control code specified in IEEE 1815-2012. The following table shows all the possible values:
Analog Output variations specify how the casting will be applied, as specified by IEEE 1815-2012. The following table shows the casting applied:
Integer and floating point values can be mapped to Analog Output commands, with optional scaling. A particular variation of Group 41 can be specified for proper casting.
Each enumeration variant can be mapped to DNP3 commands in the same manner as Boolean fields.