ModSnmp - Modbus-SNMP converter

ModSnmp is a Modbus to SNMP converter, which acts as a bridge or gateway between SNMP managers and Modbus devices.

ModSnmp operates as an SNMP agent, handling requests from SNMP managers. In order to respond to SNMP requests, ModSnmp sends requests to Modbus slaves and uses their responses to construct the SNMP responses.

ModSnmp deployment example

Figure 1. In this configuration example, the SNMP Manager (B) and ModSnmp (A) are on 2 independent machines, but they might equally well be on the same machine if the location of devices and their connections allow it. ModSnmp produces an MIB script file (F) containing the OIDs needed by the SNMP manager. This can be imported to the manager directly or by a 'converter' application (C). On the left side of the figure ModSnmp communicates with local Modbus devices over RS232 (Slave #1), RS485 (Slaves #2-5), and with more remote devices over the internet or an intranet (Slaves #6-11, #12-15).

The price of a ModSnmp licence depends on the maximum number of variables (Modbus registers) that you need to access. All licence options allow access to an unlimited number of devices.

ModSnmp's other main features are:

  • Configurable mapping between Modbus registers and SNMP objects, with flexible mapping of types.
  • Definition of Modbus device types, which can be re-used for devices of the same type.
  • Automatic generation of the MIB file for use by SNMP managers.
  • Optional caching of Modbus values. The expiry period for a value (i.e. its cache lifetime) is configurable. Storing values in the cache means that, within their lifetimes, they are available immediately when requested by an SNMP manager.
  • Optional polling of Modbus registers. ModSnmp can automatically update cached Modbus values when their lifetimes expire. This enables ModSnmp to have the new values ready for the SNMP manager when it requests them.
  • Optional use as a Modbus bridge. Modbus/TCP masters (as well as SNMP managers) can communicate with Modbus devices via ModSnmp.
  • Supports SNMPv1, SNMPv2c and SNMPv3.
  • Provides secure access to Modbus devices using the SNMP v3 User-based Security Model (USM).
  • The SNMP requests Get, Set, GetNext and GetBulk are supported.
  • The SNMP types Integer32, Unsigned32, Gauge32, Counter32, TimeTicks, Counter64, OctetString and BITS are supported.
  • Modbus holding registers, input registers, coils and discrete inputs are all fully supported.
  • All known extensions of the Modbus protocol for handling 32-bit and 64-bit values are supported (including Enron/Daniel Modbus).
  • Supports network and serial (RS232/RS422/RS485) interfaces using the following protocol variants:
    • Modbus TCP (also known as Modbus TCP/IP)
    • Modbus RTU
    • Modbus ASCII
    • Modbus RTU encapsulated in TCP
    • Modbus ASCII encapsulated in TCP
    • Modbus UDP (also known as Modbus TCP encapsulated in UDP)
    • Modbus RTU encapsulated in UDP
    • Modbus ASCII encapsulated in UDP
  • Can communicate with multiple Modbus devices via multiple Modbus interfaces.
  • Tracing of SNMP and Modbus messages sent and received.
  • All configuration settings may be saved to and restored from files, in XML format.
  • Cross-platform: runs on any system that supports Java JRE 6 or later (serial communications is only supported on Windows, Linux x86 and Raspberry Pi ARM architectures).
  • Manual and troubleshooting guide.

You can download the complete version of ModSnmp for a free 30-day evaluation period.

ModSnmp screenshot