Serial Communications Library

In the embedded and facility space, most point-to-point communication happens over serial protocols. To integrate this we built a serial bus software to communicate with PLC, RTU, fans, heat pumps and other devices, by means of Modbus, M-bus, LMI, ZigBee and other communication standards. This also involves device management, configuration databases and other device specific details.

Life as an integrator

SCADA devices sometimes follow standard protocols like Modbus and MBus, some better than others. A sad fact of life is that you cannot always trust the hardware to follow specifications, especially on the Modbus side. This forced us to implement a Modbus device database that includes hardware specific workarounds for various violations of the standard.

Device functionality

The nature of Modbus means that each device in practice requires their own integration. A register means different things in different settings, and each needs to be uniquely converted into a useful value. We built a framework for managing various hardware into a box-local IPC layer. Each device then caches values locally before these values are submitted for online processing.

Integration between various serial buses includes things like value normalisation, validation and communication with local hardware, in both read and write modes. Our on-device software allows us to remotely reconfigure on-site hardware in a secure and authenticated manner.

We currently interface against Modbus, MBus, Zigbee and 1-Wire.

MBus support

We support most common MBus devices out of the box, and while some MBus devices have peculiarities that require configuration, most "just work". Among the things that may require configuration are rate limit and power saving features.

Modbus support

As a rule, we do not recommend Modbus-TCP, due to the protocols native lack of authentication or encryption. While we can support it, doing so requires separate networks and checks that may fail as changes to environments happen.

Modbus, unlike MBus does not standardize more than a simple wire-level addressing and communication protocol, which means that each device that you communicate with will require different support.

Supporting a new device for something relatively simple, like getting the current power through an electricity meter can be done in mere hours, while supporting something more complex depends entirely on the quality of documentation available from the vendor.

Supported Modbus devices

As of the current writing, we're supporting data collection for the following devices:

  • ABB A43/A44 electricity meters
  • ABB B23/B24 electricity meters
  • ADAM WP8026 Digital IO
  • ADAM 4055 Digital IO
  • Calair PR 230V Air pressure regulator
  • Calair PR 1F pressure regulator
  • Calair PR 2F pressure regulator
  • Carlo Gavazzi EM 24
  • Circutor SUPPLY NETWORK ANALYZER CVM-BC SERIES
  • Climaveneta CRCX Cooling systems
  • Danfoss ECL comfort 310 - A230
  • Nibe F1345 Heat pump
  • Nibe F1345 - Extra registers
  • Thermia Genesis BMS
  • Swegon GOLD RX/PX/CX/SD, GENERATION E
  • LOGOS LME021CG Electricity Meter
  • Lovato Digital Multimeter and Power Analyzer, DMG series
  • NPEIO-4AI Analog input device
  • NPEIO-4AO Analog output Device
  • Ngenic HC9930-78XX
  • Nilan Comfort Ventilation
  • Regin Controls RCF-230CD
  • SAIA SBC ALE3 D5F Modbus
  • Eastron SDM630Modbus Smart Meter

  • Schneider Conzerv EM6400 Power Meters

  • Schneider Conzerv EM6459 Power Meters
  • Schneider Conzerv EM6434 Power Meters
  • Schneider Conzerv EM6433 Power Meters
  • Schneider Conzerv EM6436 Power Meters
  • Schneider Conzerv EM6430 Power Meters
  • Schneider Conzerv EM6436 Dual Power Meters
  • Schneider Conzerv EM6438 Power Meters
  • Schneider Conzerv DM6200H Power Meters
  • Schneider Conzerv EM6433H Power Meters
  • Schneider Conzerv EM6436H Power Meters
  • Schneider Conzerv EM6438H Power Meters
  • Schneider Conzerv EM6459H Power Meters
  • Schneider Conzerv PM1120H Power Meters
  • Schneider Conzerv PM1125H Power Meters
  • Schneider Conzerv PM1130H Power Meters
  • Schneider Conzerv PM2105H Power Meters
  • Schneider EM6400NG Power Meters
  • Schneider PM2120 Power Meters
  • Schneider PM2130 Power Meters
  • Schneider PM2220 Power Meters
  • Schneider PM2230 Power Meters
  • Seneca Z-4AI Analog IO modules
  • Spirovent Superior S400 vacuum degasser
  • Danfoss WM HPC
  • WTR10-E Temperature and Humidity Sensor
  • KSB Calio circulation pump
  • Climatix IV Produkt AHU Application v3.14
  • ZIEHL-ABEGG ECBlue Premium, Mode 40x
  • Gebwell Taurus heat pump
  • Genius Expansion GE18
  • Grundfos CIM/CIU -200 pumps
  • KMTronic Modbus Relay
  • Modio Modbus Test device
  • Ouman C203 regulator
  • Regin Controls Corrigo Heating
  • Regin Controls Corrigo Ventilation
  • Secure Meters Elite 440, incl. (441, 442, 443, 444, 445, 446, 447, 448)
  • Secure Meters Maxcheck-400
  • VME HV pumps, (inverter control)
  • Wilo Stratos circulation pump
  • XY-MD01 temperature and humidity meters
  • ZIEHL-ABEGG Unicon (CPE 300AV) Fan controller, Mode 10x
  • ZIEHL-ABEGG Unicon (CPE 300AV) Fan controller, Mode 40x

Supporting a new Modbus device

Since Modbus is only a communication protocol, and doesn't declare anywhere what is being communicated, it's difficult to support a device without documentation. Just like knowing a letter is in the Latin alphabet doesn't prepare you for understanding the words or language inside, knowing that it's Modbus is not enough to let you communicate with the device.

To make implementation as quick and easy as possible, we prefer data sheets in machine readable form (Excel, CSV, SQL) over PDF, and to be as complete as possible.

Other supported data aquisition

  • Modio API (monitor other devices)
  • ER-ipx, a swedish DUC with an local HTTP-only interface
  • Bastec Bas2, via JSON-RPC
  • SMA solar inverters
  • MBus devices
  • Saia S-Bus devices (Experimental)
  • Serial Modems (Monitoring radio quality and availability)
  • 6lo- Dali integration
  • Nilar BMS integration
  • 1-Wire connected sensors
  • 1-Wire connected LCD displays
  • Zigbee (Experimental, limited)
  • Online Data sources (API and other services)
  • Vista Webstation online
  • SNMP (Standard MIB and customer specific ones)
  • BACnet