Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PropertiesValues
MQ RBE Pacing

Milliseconds to wait between sending each RBE packet. T

he RBE task periodically checks the RBE flags set for each point in the RTDB to see if data has changed. If so, all changed points are sent to the broker. This parameter defines how often to perform this check. 

Console_ID

Text string which may be inserted into topic strings for RBE messages, to identify the destination MQ-HCP when using multiple HCP's.

The Console_ID text, if configured, is substituted into the 'sys', 'cmd', and 'file' Control Topics in place of the "Console_ID" (see Subscriptions object). If the Console_ID field is left empty, the field is omitted from the subscribe topic string. 

Subscribe Topic  Rules

Select the topic publish rule for MQ RBE messages, which are also the rules that will be used by other clients who subscribe to the broker for the RBE data (such as the MQ_HCP).

When publishing RBE messages, the topic always begins with the topic string "RBE", and the Console_ID field configured in this MQ_RBE object. The Console_ID can be used to differentiate different sets of RediGate data into groups within the host/broker topic space.

The topic string can also include the following data specific to this unit configuration (note, each RediGate should be configured with a unique UnitName or UnitAddress to distinguish the topic message space of each gateway):

  • "UnitName" or "UnitAddress" (taken from the top level System object in ACE)
  • "RTUName" or "RTUAddress" (taken from the Field Unit object)
  • and optionally the "ChannelName" or "ChannelNumber" (taken from the Master Channel object). The Channel information can be excluded if all RTUs in this unit have unique names or addresses. 

Select the RBE publish Subscribe Topic Rule from the following options, where HcpId, UnitName, UnitAddress, ChannelName, ChannelNumber, RtuName, and/or RtuAddress in the topic would contain the actual property data in the configuration:

  • RBE/HcpId/UnitName/ChannelName/RtuName
  • RBE/HcpId/UnitName/RtuName
  • RBE/HcpId/UnitAddress/ChannelNumber/RtuAddress
  • RBE/HcpId/UnitAddress/RtuAddress
DBM RBE Classification

This option is used in systems using redundant MQTT servers. In this case, the MQTT RBE/PR objects in the ACE configuration will use an instance number (0=primary, 1=secondary). 

If only one MQTT connection is used, the MQ_Client/MQ_Rbe_Pr_Handler process may be configured to use the other RBE instance:

Select 'RBE 0 DBM Flag' to use the primary (RBE0) process for MQ_RBE.

Select 'RBE 1 DBM Flag' to use the secondary (RBE1) process for MQ_RBE. In this case, standard HCP RBE/PR connections would be configured to use instance 0. 

If both primary and secondary HCP connections are used in a configuration, the MQ_Extra_Clients/MQ_Extra_Rbe_Pr_Handler process may be configured to use the alternate RBE instances:

Select 'TERTIARY RBE process for DBM' for the third (RBE2) process for MQ_RBE.

Select 'QUATERNARY RBE process for DBM' for 4th (RBE3) process for MQ_RBE. 

Enable RBE List

This list allows the MQ_RBE process to filter which Channel/Field Unit configurations will report their data using the automatic RBE process. If this table is left blank (or is omitted in older versions of the configuration), then all configured RTDB database fields will report data on all MQTT clients. If one or more rows are entered in the table, then only the configured FieldUnits will be reported through this MQTT Client.

Click the Edit Table button to edit the list of Field Units.

Channel – Enter the channel number (0-16) of the Field Unit to include in RBE reporting.

RTU to Enable – Enter the Field Unit address of the device to include in RBE reporting.

...

PropertiesValues
Control 'sys' topic

Select whether to subscribe to the MQTT 'sys' topic. The 'sys' topic subscription is used to allow a remote host to send system level commands (see MQ_RBE_PR_Handler).

  • sys/Gateway/# – issue subscription where "Gateway" is replaced by the Unit Name in the top-level System object (default, if Subscriptions object is omitted)
  • sys/HCP_ID/Gateway/# – issue subscription where "Gateway" is replaced by the Unit Name, and HCP_ID is taken from the parent MQ_RBE object.
  • Disable subscription to 'sys' topic this option prevents 'sys' topics from being received on this device from a host. Note that this setting also prevents Health Echo commands, so an appropriate (non-Health Echo) option must be chosen for Host Synchronization. 
Control 'cmd' topic

Select whether to subscribe to the MQTT 'cmd' topic. The 'cmd' topic subscription is used to allow a remote host to set or control data values in the FieldUnits on this device. This could be used in a situation requiring a field device to be monitored but commands must be explicitly prevented.

cmd/Gateway/# – issue subscription where "Gateway" is replaced by the Unit Name in the top-level System object (default, if Subscriptions object is omitted)

cmd/HCP_ID/Gateway/# – issue subscription where "Gateway is replaced by the Unit Name, and HCP_ID is taken from the parent MQ_RBE object.

Disable subscription to 'cmd' topic – this option prevents 'cmd' topics from being received on this device from a host. 

Control 'file' topic

Select whether to subscribe to the MQTT 'file' topic. The 'file' topic subscription is used to allow a remote host to publish a file to this device via MQTT. This could be used with some additional logic to process configurations or other files.

file/Gateway/# – issue subscription where "Gateway" is replaced by the Unit Name in the top-level System object (default, if Subscriptions object is omitted)

file/HCP_ID/Gateway/# – issue subscription where "Gateway is replaced by the Unit Name, and HCP_ID is taken from the parent MQ_RBE object.

Disable subscription to 'file' topic – this option prevents 'file' topics from being received on this device from a host. 

Host Synchronization

Select how (or whether) to synchronize MQTT communication with a host system. Synchronization is typically used when this device is publishing through multiple MQTT servers, and one or more hosts is also connected to the MQTT servers. This ensures that the device and the host system are communicating with each other through the same MQTT server, so that commands and data are sent and received directly.

Require Health Echo from host – Host must periodically send out a 'sys' command with Health Echo and this device will respond with an echo, ensuring synchronized communication (default, if Subscriptions object is omitted). If the Health Echo is not received within two times the Keep Alive period configured in MQClient, the MQClient will disconnect from the current MQTT server and try the next address.

Subscribe to 'STATE/HostName' – (see Host Name option below) This synchronization method reduces network traffic by not requiring constant application-level Health Echo messages. 

In this case, the host should publish a message (with Retain flag set) with topic of "STATE/HostName" (where "HostName" is configured to identify the host). The payload of the message should be "CONNECTED" (all caps). It should also lodge a Last Will and Testament with the server using the same topic and a payload of "DISCONNECTED."

When a RediGate device connects to the server and subscribes to 'STATE/HostName', the server will deliver the retained message immediately with the payload "CONNECTED", thus informing the device that the host application is currently connect on the same server.

If this STATE message is not received within two times the Keep Alive period, the MQ Client will move to the next server. If the server disconnects from the server, the RediGate will receive the "DISCONNECTED" message and will immediately move on to the next server, attempting to locate a server to which the host is simultaneously connected.

No Host Synchronization – If only a single MQTT server is used, this option can be used. The MQ Client will not look for a Health Echo or STATE message but will remain connected to the server. Synchronization with a host is ensured as long as the host is also connected to the server. 

RBE Data at Restart

Select how to publish data on startup or upon reconnection to an MQTT server.

Send Only Non-Zero data registers – Upon connection, publish only non-zero values in RTDB registers (default, if Subscriptions object is omitted). Upon receiving the Birth Certificate from this device, the host must zero its entire database of values, so that non-zero data received from the device will ensure host and device have identical data. This option reduces the amount of published traffic upon connection.

Send All data including Zero/Null registers – Upon connection, all RTDB registers (except those configured as "Non-RBE") will be published even if they contain zeroes. This causes more data traffic on reconnection, but it ensures the host is informed of all available points, values, and identifications (tags or register numbers) at the time of connection. 

Publish Tag Names

Select whether to publish tag names associated with RTDB register locations. Publishing registers with tag names requires the configuration of the optional Tag Names object under each RTDB (see 17629185).

Don't Publish Tag Names – Upon connection, publish only RTDB registers by number (default, if Subscriptions object is omitted). Upon receiving the Birth Certificate from this device, the host must zero its entire database of values, so that non-zero data received from the device will ensure host and device are in synch.

Publish Tag Names on MQTT Connect – Upon connection, publish a list of the configured Tag Names associated with RTDB register addresses for the Field Unit. Subsequently, all data will be published using the RTDB register addresses, but the host system can use the initial list to correlate addresses with names for display purposes.

Publish GZIP'd Tag Names on MQTT Connect – Same option as previous, but the initial publication of Tag Names and register addresses is sent in the MQTT payload in zipped format using 'gzip' compression. This reduces the bandwidth and packet size when publishing a large database of tag names. 

Host Name

Enter the Host Name to use in the 'STATE/HostName' subscription, if using that option for Host Synchronization

Host Name must be NOTE: If any RTDB is configured to report by exception using Sparkplug-B but has no tag names configured, then all data for all RTDBs will be published, using their tag name (if available) or RTDB address. To prevent non-tagged registers from being published, make sure that all RBE RTDBs have at least one tag name configured.

Host Name

Enter the Host Name to use in the 'STATE/HostName' subscription, if using that option for Host Synchronization

Host Name must be a maximum of 80 characters. If using the State/HostName option and this field is left blank, the Host Name in the subscription will default to the HCP_ID in the MQ_RBE object.

Sparkplug-B

...

The Sparkplug-B object provides a connection to an MQTT broker that expects data to be published in the Sparkplug-B format, and open source MQTT payload developed and maintained by Cirrus-Link Solutions. More information about the Sparkplug-B payload can be found here: http://www.cirrus-link.com/oem-device-data-integration/

...

//www.cirrus-link.com/oem-device-data-integration/

AttributesFunction
Object TypeSparkPlugB_RBE
Parent(s)System → Clients
Instance

Must be 0.


MQTT topics used for publishing and subscribing Sparkplug-B data follow the topic rules defined in the protocol. See Sparkplug-B MQTT Payload Format for a description of the topics and payloads.

An example topic for Sparkplug-B (DDATA) is:    spBv1.0/Group/DDATA/NodeName/DeviceName

The topic string identifies the data for each Field Unit (note, each RediGate should be configured with a unique Unit Name to distinguish each gateway within a group):

  • "Group" is the "Group Name", configured in the Sparkplug-B object. The Group is used to differentiate different sets of RediGate data into groups within the host/broker topic space.
  • "NodeName" is the RediGate "Unit Name," configured in the top-level System object.
  • "DeviceName" is the field device "Unit Name," configured in the Field Unit object.


PropertiesValues
RBE Flag

Select which of four RBE flags to use for checking changed data (make sure not to use the same as any other process that might use the same RBE flag, such as MQTT, HCP, DNP).

RBE PacingEnter the number of milliseconds to wait between RBE messages
Accept NODE Cmd TopicsSelect whether to subscribe for NODE (Gateway) command topics.
Accept DEVICE Cmd TopicsSelect whether to subscribe for DEVICE command topics (output commands to protocol)
Accept File TopicsSelect whether to subscribe for file topics
Group NameGroupName is Appended to 'spBv1.0' namespace topics (unless property is left blank), used to filter published data in groups.
STATE Topic

The STATE topic is used to ensure an active end-to-end connection to Host, or switch to next MQTT server. In applications where the SCADA server and RediGate connect sequentially to more than one redundant MQTT broker, the SCADA server should publish the STATE topic to ensure the RediGate is in active communication using the same broker at the same time, to ensure RBE messages are received end to end. The RediGate will subscribe to the STATE topic, and if it doesn't receive 

To disable the use of the STATE topic, enter a string between 1 and 5 characters in length. Regardless of configuration, the STATE topic is ignored if the RediGate is only configured for a single MQTT server in the URL_List table.

The STATE topic is presently supported on the RediGate using the "legacy" format prior to the Sparkplug-B protocol version 3.0.0, where the payload is expected to be simple text as "ONLINE" or "OFFLINE". The STATE topic should be in the form "STATE/Host1", where "Host1" is the Primary Host ID in the Ignition MQTT Engine or equivalent in a different SCADA system (in MQTT Engine release 4.0.14 or later, also configure the Legacy Host ID - see STATE message in Sparkplug v3.0.0).

RBE ProcessingOnly process RBE RTDB Registers with TagNames?
AccountAccount name for MQTT Access Control List (255 chars)
PasswordPassword for MQTT Access Control List (255 chars)
MQTT PortMQTT Broker Connection Port (default typical is 1883 for unencrypted, or 8883 for TLS)
MQTT Keep AliveEnter the interval (in Seconds) to send MQTT keep alive. Expect response within 1.5 times Keep Alive, or disconnect and try the next server.
MQTT Connect DelayEnter the time (in Seconds) to delay after loss of connection before reconnect.
Enable RBE ListEnter list of channel/unit to publish. If table is empty, publish ALL RTUs with RBE data enabled.
URL_ListEnter a list of URLs or FQDN for MQTT server failover.

...

Elecsys created the JSON-RBE payload specification for easy integration into 3rd party applications. Historical data is plublished in a text-based JSON object that can be easily parsed.  More information about the historical JSON-RBE payload can be found here: JSON-RBE MQTT Payload Format#RBEMQTTPayloadFormat-HistoricalDataPayload.

Sparkplug B

The Sparkplug B specification is an efficient, binary MQTT payload definition created by Cirrus-Link solutions and supported by SCADA applications such as Ignition Automation's Ignition platform. See the section on 17629185 configuration. Information about the Sparkplug B specification and the historical payload can be found on Cirrus-Link's website: http://www.cirrus-link.com/oem-device-data-integration/.

...