We have a range of Modbus software products, and we have also been supplying custom Modbus software for many years.
We are experienced in all aspects of Modbus implementation: serial (RTU and ASCII) and network (Modbus/TCP) connections, masters, slaves, gateways, routers, etc. We also know how to handle the tricky details - like the different ways that large values (greater than 16 bits) are handled, and how to get RTU packets through serial interfaces that introduce time delays.
Using our extensive TCP/IP experience, we can provide interfaces between Modbus and other protocols. For example, we could provide an HTTP interface, so that you could monitor and control Modbus devices using a web browser. Or we could interface to management systems using protocols such as SNMP or MQIsdp.
Rather than simply forwarding raw data, these interfaces can be "smart". They can automatically poll the devices, perform simple control operations, compute averages and totals, check values against limits, raise alarms, translate to/from XML, etc. They can also reduce bandwidth usage by only forwarding changed values ("report by exception"). They can even send emails when specified exceptional conditions occur.
Much of our Modbus software has been written in C/C++ for the Unix/Linux platform, but we have also developed cross-platform solutions using Java (for example, see our Java utilities ModSnmp, ModMultiSim, Modsak, ModSlaveSim, ModMaster and ModTest).