I took some time ‘off’ over the holidays in December to play with some of the new technology and equipment that is now available on the market place. Earlier this past fall I purchased a couple Redigate IoT Gateways from Elecsys. They are nifty units with support for over 60 protocols and the ability to publish (by exception/change, or on schedule) to a MQTT broker, or to the AWS or Azure IoT hubs.
Elecsys has some great howtos and information on their website, particularly in the Redigate Support pages. Below is an example of polling a SCADAPack 334 with Realflo for gas meter information. I will assume you’ve gone through the basic Modbus setup tutorial on the Elecsys website. Some of the more obscure protocols and use cases do not have complete documentation but for what they lack in documentation they make up for with great support. The online chat feature on their website is a great way to get some near instant help.
If you have worked with SCADA systems before you will know most describe devices and communications with different database or configuration objects. No different with the Redigate. There are a number of configuration objects required to make things work. How they interact together takes a little time and playing around. I would have combined the configuration parameters in a little different way myself BUT the way the objects are arranged and organized allows for some powerful functionality. It also gives the user an amazing amount of flexibility.
The basic objects required are:
Master Channel (includes Scan Table) + NetCircuit + Device (includes Poll Table) -> Real Time DataBase (RTDB)
The combination of the NetCircuit (with the IP) and the device provides the physical comms path out to the Device. The Poll Table and the Scan Table combine together to make a robust poll scheduler and Modbus address map. More on that later.
- Open up the ACE configuration utility and add in the necessary objects under the Clients->Master Channels section. I admit the name of the software is not great for those people who use Sierra wireless raven modems… the Raven software (ACE Configurator) has the same name but looks nothing like this. We will want the following objects: a Master Channel, a NetCircuit, a FieldUnitModbusTCP, a RTDB, and a TagName.
- Configure the Master Channel. This is the object the Redigate uses to store the scan table, timeout settings and such. Note you can Enable/Disable the object using the check box at the bottom of the right pane in ACE. You might want to come back and setup the Scan Table after completing the steps below… The Scan Table works in conjunction with the Poll Table which is configured in Step 4 (why they separated these I don’t know but it works).
** Edit: Jon Tandy, the Redigate Product Manager from Elecsys, contacted me on LinkedIn yesterday (10-Jan-2018) and he said, “The reason the Master Channel is separate from the protocols is that the MC is protocol independent–it can scan any protocol in a defined poll order/frequency.” Now we know! Thanks Jon!
- Configure the NetCiruit object (in my example it is labelled NetCircuit0). This object is used to define the network connections out to devices, including which network interface they might be on (RG400s have multiple Ethernet ports).
- Configure the Modbus Device. This object will contain the station address and the poll table (which and how many Modbus addresses you want to poll). Each row in here should be referenced in the Scan Table if you want the Redigate to automatically poll numbers.
- Configure the RTDB. This is where the data from the Modbus device is stored. I am still working out the quirks of this powerful tool. Essentially though the RTDB is a data store that you define and map on your own, which is useful if you want to re-organize the RTU/PLC data or consolidate it into a contiguous set of information.
- Optional – Configure Tag Names. This object is a child of the RTDB and it allows you to configure tag names to go with the database fields. These tag names can be used to build complex tag structures (SparkPlug/Ignition, using periods to denote folders) or can be sent with the real time data to a cloud service (usually as another JSON field, aptly called Tag Name).
Now the above steps only configure the unit to poll data from a Modbus TCP device and store it for later use. Other blog articles will describe how to configure and setup publishing of the data to a MQTT broker or cloud service so the data can become useful.