Projects - Modbus Routing Software

As part of the evolving design of the DeltaV system for Subsea control, a need arose for the development of a software application to run on an industrial PC to handle the routing of communications traffic between Third Party Device (TPD) PCs and their respective Subsea sensors / meters.

Modbus Router Software
Modbus Router Software

In existing systems, the routing of communications traffic to Subsea is often handled by a number of serial to Ethernet / Ethernet to serial converters. This approach consumes a large footprint, has high power consumption, and beyond a small number of connections becomes difficult to diagnose and maintain.

By creating an application to run on a small industrial PC, this routing system can be handled entirely within the software environment, allowing for a small fixed footprint regardless of the number of connections required.

The router provides a bridge between two separate control networks, allowing Modbus communications to pass through from one to the other based on an internal routing table, while the 2 networks remain separate (normal Ethernet traffic is not able to pass through the router). In addition it supports both protocol and address translation, allowing seamless integration between multiple Modbus slaves and masters

Another useful feature is the ability to create 'virtual slaves' - these are entities created within the router to re-map data retrieved from a single or multiple external slaves into a more compact data map. The Virtual Slave will continually poll the external slave(s) setup within the user defined configuration and then transfer the retrieved data into registers held within the router. The register configuration and external slave setup is fully configurable by the user.

Slave Mapping
Slave Mapping

Key Features:

  • Able to handle incoming Modbus TCP and Modbus RTU-via-TCP messages through either the Primary or Backup Ethernet ports;
  • Handles incoming Modbus RTU messages via any available serial port (up to a maximum of 255);
  • Can communicate with Modbus slaves using Modbus TCP or Modbus RTU-via-TCP (dependant on the slave type);
  • Designed to route common Modbus functions (1,2,3,4,5,6,15 and 16), although could be modified if necessary to support other defined functions;
  • Can perform address translation on any slave to provide access to multiple slaves with the same ID connected to different sub networks;
  • Able to route messages from the Primary to the Backup Network and vice versa regardless of network addressing or subnets;
  • Able to perform re-mapping of data from either single or multiple slaves into 'virtual slaves' to reduce polling requirements for master devices;
  • Freely user configurable for slave addressing and protocol type;
  • Able to handle up to 254 unique Modbus slaves;
  • Configurable settings for all serial ports;
  • Able to import and export slave and serial port settings for backup purposes;
  • Can handle message requests from up to 30 simultaneous connections without deviating from specified performance parameters;
  • Stores and forwards all messages with a maximum delay of 100ms per message, even when running at 100% processor loading;
  • Allows control of routing functions directly from the user interface or externally via Modbus registers;
  • Traffic routing paths are displayed in an easily understood manner;
  • Diagnostic messages are available for the purposes of system fault finding;
  • Able to restore normal operation after a power outage without user intervention.

A variation of the routing software has also been built in the past to cope with slaves which do not use the standard Modbus protocol.