westermo Merlin SCADA Protocol Conversion

| Hardware Models | Merlin Series |
| Revision | 1.01 |
| Approval status | Approved |
| Date: | 11 December 2025 |
| Brief description | Merlin SCADA Protocol Conversion Scenario: SNMP to DNP3 |

Overview
- This application note demonstrates how to set up the IECD application for protocol conversion. The example scenario illustrates SNMP as the “Master” interface and DNP3 as the server protocol. The application note will show the typical steps required for protocol conversion configuration through web management.
- A knowledge of SNMP and SCADA protocol (DNP3) parameters is required, and the setup is common for all Merlin and Westermo Ireland/Virtual Access brand routers available.
- The IECD application is available in the SCADA section. You must configure Master and Server interfaces as well as at least one Data Point for signal mapping. The interfaces used to communicate with local RTUs are referred to as the Master Protocol, while the interface used to communicate with the external Master is referred to as the Server (Slave) Protocol.
The table below shows the supported SNMP protocol conversion scenarios.
| Master Protocol | Server Protocol |
| SNMP | IEC104 |
| SNMP | DNP3 < This Application Note |
| SNMP | MODBUS |
| SNMP | IEC61850 |
| SNNP | MQTT |
Firmware information
- Firmware version: SXL-25.05.24.000 or newer.
Assumptions
- This application note shows the Merlin 3100 router and assumes the router has a factory default configuration. Instructions can be applied to other routers in the Merlin Series.
Corrections
- Requests for corrections or amendments to this application note are welcome and should
- be addressed to support.ie@westermo.com
- Requests for new application notes can be sent to the same address.
Configuring an SNMPD application
Configuring SNMP
- Browse to the SNMPD configuration page via the WebUI and follow the steps below.

- Click Agent.
- Set the Agent Address. Default address is 0.0.0.0:161
Click VACM.- Set a name for COM2SEC settings and click ADD to create a new COM2SEC rule.
- Set the Source from the dropdown list. Configure custom source by selecting the custom option.
- Set Community String.
- . Set Security Name.

- Set a name for Group Settings and click ADD to create a new group rule.
- Assign the Security Name.
- Select the Group. Currently, only two unique groups (public and private) can be selected.
- Set the Version.

- Set a name for View Settings and click ADD to create a new view rule.
- Set the Name.
- Set the Type (included or excluded)
- Set the OID.

- . Set a name for Access Settings and click ADD to create a new access rule.
- Select the Group. Default value is public.
- Select the Version. Default value is Any.
- Select the level. Default value is noauth. For version 3, select other.
- Select the Read. View name will be displayed here.
- Click on Save & Apply button on the bottom of the page, to save the configuration and run/restart IECD application.
Configuring SNMP Version 3
- To configure SNMP version 3, a USM user needs to be added. This can be done through the “USM Users” tab on the WebUI.

- Click ADD to create a new USM User.
- Set the Username.
- Select the Authentication Protocol (None, MD5, or SHA) .
- Set the Authentication Password.
- Set the Privacy Protocol (None, DES, or AES).
- Set the Privacy Password.
- Set the OID to restrict this user to. This is similar to view restrictions in v1 and v2c.
Custom OIDs using Pass
- Custom OIDs can be created using “Pass” feature in SNMP that allows users to define their own custom OIDs and link them to internal User Defined Script. This is useful when the user wants SNMP to return data that isn’t available in the device’s MIBs. Currently, pass feature can only be configured using CLI.
- Requests for additional MIB OID parameters are welcome and should be addressed to support.ie@westermo.com

- Define the script in the UDS package, the script will be generated in the /var/uds

- In SNMPD application, set the script path and assign the custom OID. When this OID is queried, SNMPD will execute the script and return its output as expected.
Configuring an IECD application
- Browse to the IECD configuration page via the WebUI, enable IECD and follow the steps below.

Setting up the scenario
- To set up the scenario, you must configure three key elements: Enable application, the Server protocol, the master protocol and at least one data point for conversion. Enable the application and click SAVE & APPLY. Remember to save and apply your WebUI configuration regularly
Configuring server protocol DNP3

- Click Slave Protocol.
- Select DNP3 as the Server protocol.
- Click CONFIGURE MQTT.
Click Net.- Set the DNP3 Local IP.
- Set the DNP3 Listening TCP Port. Default is 20000.
Click Link.- Set DNP3 SRC Address. Default value is 1.
- . Set DNP3 DST Address. Default value is 1.
Configuring DNP3 TLS
At minimum, to enable TLS communication, user needs to provide three files:
- CA certificate
- Client Public key (certificate)
- Client Private key (certificate)

- Click TLS tab.
- Select Enable in DNP3 ENABLE TLS.
- Click Choose File to upload Client Public key.
- Click Choose File to upload Client Private key.
- Click Choose File to upload CA public key.
Click SAVE & APPLY at the bottom of the page.
Configuring Master protocol – SNMPD link
Configuring SNMP Master

- Click on Master Protocols tab.
- Select Per Data Point as the Master protocol from the drop-down list.
- Click on Configure SNMP.

- Set the SNMP Command Prefix. Default value is “-v1 -c public 127.0.0.1”
- To save the configuration and restart the IECD application, scroll to the bottom of the page and click SAVE & APPLY.
Note: Only SNMP GET is supported. SNMP SETS are not supported.
Configuring SNMP Master (Version 3)

Since SNMP Version 3 uses authentication and encryption, its command prefix will include the relevant security parameters:
- -v3 — SNMP version 3
- . -l — security level
- -u — configured username
- -a — authentication protocol
- -A — authentication password
- -x — privacy protocol
- -X – privacy password
- SNMP agent IP
Example -v3 -u user1 -a MD5 -A insertpass -x DES -X insertpass -l authPriv 127.0.0.1
Configuring data points (signal)
- Data points are essential for protocol conversion, requiring users to develop a data addressing/type map to facilitate the conversion between two distinct protocols. Each data point represents an individual value, such as mapping a Modbus Holding register to an IEC104 Measured Value. The configuration of data points adheres to the same principles as configuring communication interfaces, necessitating appropriate values for both the slave and Master sides.
Points configuration – manual
Navigate to the main IECD page.

- Click Points.
- Click CONFIGURE DATA POINTS.
Click ADD to create a point.- Click EDIT to configure the added point.

- On the Data Point Configuration page, click GENERAL.
- Set the Slave Protocol as DNP3.
- Set the Master/RTU protocol as SNMP.
- Assign a name to the data point (optional).

- Click on Server tab.
- Select the DNP3 Server Group from the drop-down list.
- Set the DNP3 Server Index.
- Select the DNP3 Server Assigned Class from the drop-down list.

- Click on Master tab.
- Set the SNMP Var Type from the drop-down list.
- Set the SNMP OID.
- Click SAVE & APPLY at the bottom of the page.
- Note: It’s essential to match the SNMP variable type with the corresponding DNP3 Group correctly, any mismatch can lead to communication errors, incorrect data interpretation, and/or conversion failures.
Points configuration – CSV file
- Data points can be configured via CSV file upload. The CSV file shall include all required options in its header and their corresponding values in subsequent rows. Further instructions are available on the page via ‘Data and command points CSV file examples’ link, highlighted in Figure 22 below.

- On the IECD Settings page, click Points.
- Click Choose File and select the CSV file.

With any text editor, save the content of the Figure 24 with .csv extension, upload that file to the router and click SAVE & APPLY at the bottom of the page. Router will parse the file and configure the data points.
SNMP to DNP3 Mapping
SNMP data types must be mapped to equivalent IECD Variable types.

Below table shows the mapping of SNMP with DNP3 types and ither SCADA protocols.
| SNMP TYPE | IECD VarType | DNP3 Group | Other SCADA |
| INTEGER (32 bits) | INTEGER | GROUP 30Static Variation 1Event Variation 1 | IEC104 – Not applicableIEC 61850 – MV (Measured value)MODBUS – HR signed 32 MQTT – standard message |
| COUNTER 32 | U32 | GROUP 30 /GROUP 20Static Variation 1Event Variation 1 | IEC104 – Not applicableIEC 61850 – MV (Measured value)MODBUS – HR signed 32 |
| MQTT – standard message | |||
| GAUGE 32 | U32 | GROUP 30Static Variation 1Event Variation 1 | IEC104 – Not applicableIEC 61850 – MV (Measured value)MODBUS – HR signed 32 MQTT – standard message |
| TIMETICKS | U32 | GROUP 30Static Variation 1Event Variation 1 | IEC104 – Not applicableIEC 61850 – MV (Measured value)MODBUS – HR signed 32 MQTT – standard message |
| OPAQUE | FLOAT | GROUP 30Static Variation 5Event Variation 5 | IEC104 – Not applicableIEC 61850 – MV (Measured value)MODBUS – HR (float 32)MQTT – standard message |
| COUNTER64 | N/A | NOT SUPPORTED | NOT SUPPORTED |
| IPADDRESS | N/A | NOT SUPPORTED | NOT SUPPORTED |
| OCTETSTRING | N/A | NOT SUPPORTED | NOT SUPPORTED |
| OID | N/A | NOT SUPPORTED | NOT SUPPORTED |
| BITS | N/A | NOT SUPPORTED | NOT SUPPORTED |
Requests for support of additional SNMP TYPES are welcome and should be addressed to support.ie@westermo.com
Essential OIDs
MOBILE COMMUNICATION
| Object Name | Description | OID | SNMPType | IECDVar Type |
| modemGsmReg istrationStatus | GSM registration status: not registered/not searching(1), registered home(2), not registered/searching(3),registration denied(4), unknown(5), registered roaming(6) | .1.3.6.1.4.1.2078.3.1.2.2.1.6.1 | INTEGER | INTEGER |
| modem Connect ion State | Modem connection state: up(1), down(2) | .1.3.6.1.4.1.2078.3.1.2.2.1.3.1 | INTEGER | INTEGER |
| modem GsmSig nal Strength | GSM signal strength (RSSI, dBm) | .1.3.6.1.4.1.2078.3.1.2.2.1.5.1 | INTEGER | INTEGER |
| modem GsmA cti ve SimSlot | Active SIM slot: simSlotOne(1), simSlotTwo(2) | .1.3.6.1.4.1.2078.3.1.2.2.1.10.1 | INTEGER | INTEGER |
| modem GsmNet work Technology | Currently used network technology: unknown(1), gsm(2),gprs(3), edge(4), umts(5), umtsHsdpa(6), umtsHsupa(7), umtsHsdpaHsupa(8), lte(9) | .1.3.6.1.4.1.2078.3.1.2.2.1.9.1 | INTEGER | INTEGER |
| modem Mobile St ate | state of mobile modem:unknown(1), idle(2), initialising(3), scanning(4), connecting(5), connected(6) | .1.3.6.1.4.1.2078.3.1.2.2.1.23.1 | INTEGER | INTEGER |
| modem Gsm Sim In | SIM inserted in the current slot or not | .1.3.6.1.4.1.2078.3.1.2.2.1.35.1 | INTEGER | INTEGER |
| modem GsmLoc ation Area Code | Location Area Code (LAC) of the currently used cell. For non- GPRS/3G modems this will be always zero. | .1.3.6.1.4.1.2078.3.1.2.2.1.7.1 | INTEGER | INTEGER |
NETWORK
| Object Name | Description | OID | SNMP
Type |
IECD Var
Type |
| ifStatus.x | Interface status: up(1), down(2) | .1.3.6.1.4.1.2078.
3.2.66.1.1.2.X |
INTEGER | INTEGER |
| icmpInMsgs | total number of ICMP messages received | .1.3.6.1.2.1.5.1.0 | Counter 32 | Unsigned 32 (U32) |
| tcpInErrs | TCP input errors: number of TCP segments received in error | .1.3.6.1.2.1.6.14.0 | Counter 32 | Unsigned 32 (U32) |
| udpInErrors | UDP input errors | .1.3.6.1.2.1.7.3.0 | Counter 32 | Unsigned 32 (U32) |
SYSTEM
| Object Name | Description | OID | SNMP TYPE | IECDVar Type |
| hrSystemUpti me | System uptime: time (in hundredths of a second) since last reinitialisation | .1.3.6.1.2.1.25.1.1.0 | TimeTicks | INTEGER |
| hrMemorySize | Total physical memory size (in kilobytes) | .1.3.6.1.2.1.25.2.2.0 | INTEGER | INTEGER |
| hrSystemNum Users | number of users currently logged into the host system | .1.3.6.1.2.1.25.1.
5.0 |
Gauge32 | Unsigned 32 (U32) |
GPIOs
| Object Name | Description | OID | SNMP TYPE | Value |
| digitalInputPo rtIndex.x | Unique number for each digital input port | .1.3.6.1.4.1.2078.3.1.1.7.1.1.X | INTEGER | INTEGER |
| digitalInputPo rtState.x | Current state of digital input port:open (1), closed (2) | .1.3.6.1.4.1.2078.3.1.1.7.1.4.X | INTEGER | INTEGER |
| digitalOutputP ortInd.x | Unique number for digital output port | .1.3.6.1.4.1.2078.3.1.1.8.1.1.X | INTEGER | INTEGER |
| digitalOutputP ortState.x | Current state of digital output port:open (1), closed (2) | .1.3.6.1.4.1.2078.3.1.1.8.1.4.X | INTEGER | INTEGER |
Troubleshooting
IECD status via the WebUI
- Basic troubleshooting such as verifying connections quality, values, mapping or addressing can be accessed via the dedicated IECD status page.

- On the main page, click Status.
- Click IECD.
IECD status via CLI

- To check the IECD status using CLI, connect to the router via SSH and enter the command iec show stats.
- This will display the running protocols, serial interface in use, server and master protocol statistics such as the number of transmitted and received frames, and more. This information serves as a starting point for basic troubleshooting.
Configuring main debug level

- Click SCADA.
- Click IECD.
- Click Advanced.
- From the Syslog severity drop-down menu, set the Syslog severity to Debug.
- To save the configuration and restart the IECD application, scroll to the bottom of the page and click SAVE & APPLY.
Enabling debug per protocol – DNP3 (Server)

- Via the WebUI, access IEC Server settings.
- Click Server Protocol and then CONFIGURE DNP3.
- Click Debug.
- Enable additional logging settings.
Enabling debug per protocol – SNMP (Master)

- Click Master Protocol and then CONFIGURE SNMP.
- Check SNMP Debug Enable.
- To save the configuration and restart the IECD application, scroll to the bottom of the page and click SAVE & APPLY.
Accessing logs using WebUI

- To check the logs, in the left-hand menu, click System.
- Click System Log and search for logs related to IECD. These logs will have the name iecd.
- To download the logs, click Download.

Accessing logs via CLI
- To check the IECD logs using the CLI, connect via SSH and enter the command logread -f.
- . Logs related to the server and master protocols will be displayed.
Note: users can download the log file, as syslog.messages in the root directory, via WinSCP.
FAQs
What is the compliance standard for the PTP Translator?
Documents / Resources
![]() | Merlin SCADA Protocol Conversion |
References
- mailto:support.ie@westermo.comwestermo.com
- User Manualmanual.tools
