DNP3

This connector enables communication via DNP3 Protocol.

Allow the transfer of data and operations with an SCADA third-system that implements an DNP3 master (client).

Dependencies

This module requires the following modules:

  • Scada Table Info: Needed to serve to the connector the information of inputs, outputs and counters and can create a DB with them.
  • Scada Dispatcher: Needed to process the payloads and de/serialize its content.
  • Core Commons: Provides many interfaces that this module will use.

Configuration

To configure DNP3 connector, a file named es.amplia.oda.connector.dnp3.cfg must be created with the next parameters:

  • channelIdentifier: “tcpServerChannel” by default. A unique name of the channel to which the connector will be connected.
  • outstationIdentifier: “outstation” by default. A unique name of the connector inside the channel.
  • ipAddress: “0.0.0.0” by default. IP direction of the allowed incoming messages through the channel. 0.0.0.0 allows that all the directions could send messages to the connector. Is the way to specify from where can be sent messages in case of only one sender.
  • ipPort: 20000 by default. Port though the connector have to connect to the host.
  • localDeviceDnpAddress: 1 by default. Direction of the own connector.
  • remoteDeviceDnpAddress: 1024 by default. Direction of the device from the connector will receive messages.
  • unsolicitedResponse: false by default. Enable / disable the option to send unsolicited messages.
  • eventBufferSize: 5 by default. Specify the number of events that can be buffered on the local connector before overflowing.
  • logLevel: NORMAL default. The available options are 0 (No log), 15 (Normal log), 30720 (APP_COMMS log), 65535 (All log).

In other words, es.amplia.oda.connector.dnp3.cfg can will have the content:

channelIdentifier=channelIdentifier
outstationIdentifier=connectorIdentifier
ipAddress=0.0.0.0
ipPort=20000
localDeviceDnpAddress=1
remoteDeviceDnpAddress=1024
unsolicitedResponse=false
eventBufferSize=10
logLevel=0

It can work without anything inside the configuration file except the data you want different from the default.

Source Code

You can check the source code here