Back to All Posts

Posted by Dylan Hamel

Transferring Data Between Disparate Control Systems

February 16, 2023

If you have spent time on a construction site, you would likely agree that poor communication is one of the problems that hinders every contractor. As system integrators, not only are we affected by communication breakdowns between individuals, but also by the communication breakdowns between equipment. Job sites maintaining various communication protocols are most susceptible to these equipment based communication failures. When transferring information from an Industrial Control System (ICS) to a Building Automation System (BAS), or vice versa, there is almost a guaranteed change in protocols. A common example would be transferring data from a chiller with PLC control to a BAS with HVAC controllers, via a Modbus to BACnet gateway. When making this connection there are 3 major processes, the physical connection, the software configuration, and the controller configuration. 8 steps for plc5 to controllogix conversion

The Physical Configuration

This should be the easiest process to complete but never is. Contractor A is responsible for the Modbus data and Contractor B is responsible for the BACnet data. Unless there was coordination beforehand (communication breakdown between individuals, remember?), both contractors assume there is some location on site to tie their network into. Unless it was specified or coordinated beforehand, there often is not. Most OEMs handle this by providing hardware with their equipment that can accept any of the physical layers associated with different protocols. Going back to the chiller example, a Modbus to BACnet gateway is the de facto standard for chillers supplied to sites with a BAS. But what if you are not an OEM?  If you need to send data from an ICS to a BAS, a quick internet search for “ICS protocol A to BAS protocol B gateway” will find the hardware you need. There are numerous configurations that can handle any wiring scheme for a given protocol. Install the device per the manufacturers requirements, terminate the network cable, and you are ready to configure the device.

The Software Configuration

You will need to configure the device for data transmission. There are two parts to the gateway configuration. For each network (Modbus and BACnet) you will need to:

  • Configure the device’s network settings
  • Map the data to be transmitted

Configuring the network settings will be a similar procedure to adding a device to each independent network. If you don’t manage both networks, the contractor responsible should be able to provide all of the settings. So our chiller manufacturer will provide a node ID and/or IP address for the Modbus side, and the HVAC contractor will provide a BACnet device ID and/or IP address. The manual sent with the gateway will provide the integrator(s) with the steps required to enter this information. Once configured, time should be taken on both networks to verify the device is communicating properly. Now that the device is communicating, data needs to be mapped through the gateway. This is where the data is actually transferred from one network to the other. Not understanding the types of data on both network makes this incredibly difficult.

If our only concern is mapping data from network to the other (and not understanding how the protocols work) then it’s much easier to draw equivalencies between network data types.Mapping data

The addresses for the Modbus device may have “Extended Referencing” meaning instead of 5 digit addresses, it utilizes 6 digit addresses spanning 65536 registers instead of 9999. Other than the extended range there is no difference.Mapping data

The important thing, regardless of protocol, is to ensure that you are mapping to the correct data type. If you are trying to send commands from the BAS to the ICS, map to a writeable data type. If you are simply monitoring data, temperature for example, either the input registers or the holding registers will work.

The Controller Configuration

Now that the data is correctly mapped, the data needs to be read from the gateway to the necessary controllers. Having verified the devices are communicating prior to mapping the data, the gateway is now again treated as a normal device. The BACnet network can query the gateway and find all of the available BACnet objects. The gateway will have to be configured to transfer the data to the specific Modbus devices.

Putting It All Together

Continuing to use the chiller example, let’s setup a transferal of data from the PLC side to the BAS. The PLC will be a Modicon M340 located on a Modbus TCP/IP network. The BAS side will be a TAC Series MNB-1000. The gateway responsible for mapping the data between networks will be an SMC EZ Gateway Modbus to BACnet.   In this example, there is an outdoor air temperature (OAT) sensor hardwired to the chiller PLC, and the BAS needs to read this temperature and send a chilled water setpoint back to the PLC. So the PLC will send read-only data to the BAS and the BAS will be writing data to the PLC. Although the PLC is sending read-only data to the BAS, Modicon PLCs can only transfer holding register data over Modbus, so the OAT data will need to be moved into a holding register prior to mapping into the gateway, so we will reserve register 40001 in the M340 for the OAT data. The PLC will also be receiving a setpoint to control the chillers. 40002 is reserved for the setpoint. 

Puzzle Pieces.png

Both the gateway and the PLC will use these registers for this data. Now these registers need to be mapped into the gateway. Following SMC’s configuration guide found here (this is a generic configuration guide, you need to make sure the gateway supplied works for all network protocols you will be transmitting data between), page 14 shows how to map Modbus registers to BACnet addresses. The MNB1000 will require 2 analog values, AV1 will be the OAT, AV2 will be the setpoint. When mapping the registers, ensure the correct direction of data flow by correctly identifying the object/register type. Since the OAT is meant to be read by the BAS, select an “Analog Input” object type (read-only). The setpoint will need to be written to by the BAS, and read from by the PLC, so “Analog Value” (read-write) is appropriate. Finish by mapping the gateway BACnet objects to the MNB-1000 BACnet objects.

There are numerous ways to transmit data across disparate networks. The most important thing to understand is the raw data types of each network. Most often problems arise when integrators are trying to write to read-only data. Once you properly understand what data you are trying to transmit, following the hardware user manuals and startup guides will yield the best results.

About the author

Dylan Hamel has left Hallam-ICS to pursue other endeavors, but his contributions to the company continue to be valued.


About Hallam-ICS

Hallam-ICS is an engineering and automation company that designs MEP systems for facilities and plants, engineers control and automation solutions, and ensures safety and regulatory compliance through arc flash studies, commissioning, and validation. Our offices are located in Massachusetts, Connecticut, New York, Vermont and North Carolina and our projects take us world-wide. 

Topics: Process Control and Plant Automation

Dylan Hamel

By Dylan Hamel February 16, 2023

Back to All Posts

Subscribe to Email Updates


How a Variable Frequency Drive Works

Programming with Rockwell Automation's PlantPAx

Ignition Tips, Tricks and Cheats-How To Dynamically Build Template Repeater Datasets

Reduce your Infrared Thermography costs by up to 25% Get a Quote
7 Reasons why TGMS and FAS should communicate Webinar Recording Access