Sparkplug Edge Node
The Edge Node tag does all the work to prepare data for an MQTT server. It collects data from sensors or Edge Devices, formats it using the Sparkplug B naming and formatting protocol and publishes it to the MQTT server.
Edge Node tag RPC Service
For server configuration, the Edge Node has an RPC Service. As with other RPC Manager Services, a server list can be specified for the Edge of Node tag as opposed to the default server list. The first server listed will be the primary; Only the primary will handle the writes/reads and dissemination of information to the redundant servers. The RPCServerName of the Edge Node is automatically produced as soon as a name is applied to the Edge of Node tag. It will resemble the name of the tag (ex. If the tag is called Well1EON1 and is a child of context tag Well1 the RPCServerName may be Well1\Well1EON1)
As with other redundant server configurations, should the primary server fail, the next server on the list will become the new primary.

The ID tab of every tag includes the same common elements: Name, Area, Description, and Help ID.
Name:
Uniquely identifies each tag in the application. If the tag is a child of another, the parent names will be displayed in a separate area before the name field.
You may right-click on the tag's name to add or remove a conditional start expression.
Area
The area field is used to group similar tags together. By defining an area, you make it possible to:
- Filter for particular tag groups when searching in the tag browser
- Link dial-out alarm rosters to Alarm tags having a particular area
- Limit the number of tags loaded upon startup.
- Filter the alarm display to show only certain areas.
- Filter tag selection by area when building reports
When working with Parent-Child tag structures, the area property of all child tags will automatically match the configured area of a parent. Naturally, you can change any tag's area as required. In the case of a child tag, the field background will turn yellow to indicate that you have applied an override. (Orange in the case of user-defined types. Refer to Configuration Field Colors)
To use the area field effectively, you might consider setting the same Area for each I/O driver and its related I/O tags to group all the tags representing the equipment processes installed at each I/O device. You might also consider naming the Area property for the physical location of the tag (i.e. a station or name of a landmark near the location of the I/O device). For serial port or Roster tags, you might configure the Area property according to the purpose of each tag, such as System or Communications.
You may define as many areas as you wish and you may leave the area blank for some tags (note that for Modem tags that are to be used with the Alarm Notification System, it is actually required that the area field be left blank).
To define a new area, type the name in the field. It will immediately be added. To use an existing area, use the drop-down list feature. Re-typing an existing area name is not recommended since a typo or misspelling will result in a second area being created.
There is no tool to remove an area name from VTScada since such a tool is unnecessary. An area definition will exist as long as any tag uses it and will stop existing when no tag uses it (following the next re-start).
Description
Tag names tend to be brief. The description field provides a way to give each tag a human-friendly note describing its purpose. While not mandatory, the description is highly recommended.
Tag descriptions are displayed in the tag browser, in the list of tags to be selected for a report and also on-screen when the operator holds the pointer over the tag’s widget. For installations that use the Alarm Notification System, the description will be spoken when identifying the tag that caused the alarm.
The description field will store up to 65,500 characters, but this will exceed the practical limits of what can be displayed on-screen.
This note is relevant only to those with a multilingual user interface:
When editing any textual parameter (description, area, engineering units...) always work in the phrase editor. Any changes made directly to the textual parameter will result in a new phrase being created rather than the existing phrase being changed.
In a unilingual application this makes no difference, but in a multilingual application it is regarded as poor practice.
Help Search Key
Used only by those who have created their own CHM-format context sensitive help files to accompany their application.
Sparkplug Edge Node properties Connection tab
The topics namespace for Sparkplug B has the following format:
namespace/group_id/message_type/edge_node_id/[device_id]
Edge Node ID and Group ID are identified in this properties dialog. Note that topic names are case-sensitive.
Sparkplug Edge Node ID
Auto-generated unless specified. By default, this ID will include any parent tags and the tag name with the slash (/) substituted with two underscores (__) to keep the ID unique. For example, Edge Node tag "EoN1" appearing under context tag "Weather Station" will auto-generate the Sparkplug Edge Node ID "Weather Station__EoN1".
Group ID
Auto-generated unless specified. Part of the topics namespace for Sparkplug B.
MQTT Client ID
Auto-generated unless specified. This value is only used by the MQTT broker when establishing a connection. It may be useful to know this value if you are troubleshooting.
Sparkplug B SCADA Host ID
Optional. If you name a Sparkplug B SCADA Host ID then this Sparkplug Edge Node tag will only publish if the specified host is online.
Keep Alive (s)
The length of time to maintain an open connection between ping requests.
Reconnect Attempts
The number of times the Edge Node will try to connect to a server before it gives up and moves to the next specified server.
Maximum Active DDATA Publish Count
The maximum number of MQTT publish messages carrying DDATA 2-Factor Authentication. that are in flight at any point in time. This limits the number of Publish modules taking up memory and CPU resources and is useful when the application is publishing DDATA at very high rates. It does limit the publishing rate but could keep the app responsive and give other modules the chance to execute. A buffering algorithm goes through the devices in a round-robin fashion and queues a single DDATA for a device if one is available.
It is a best practice for the Maximum Active DDATA Publish Count to equal the number of devices attached to the node. This way, all devices get a chance to publish. In a system with a high publishing rate, the larger this number the bigger the risk of overloading the stack and network.
Timeout Limit (s)
The period of time in seconds before we give up on an MQTT message.
Write Command Buffer Size
Defines the maximum number of write commands that each attached tag can buffer simultaneously. This setting applies to all tags attached to the same Edge of Node (EoN) tag. The minimum buffer size is 2.
Allow Incoming Write Commands
Enables the Edge Node tag to receive, process, and execute NCMD write commands.
Start Tracing
This should only be enabled when necessary for debugging, detailed analysis and identifying bottlenecks. Tracing is a logging tool designed to track and record operational data within the publisher.
Start Publishing
You must enable this to publish. Disabled by default so the full architecture, all Edge Device tags and I/O and Calculations device tags, can be configured before you start publishing. Every time this tag is enabled it publishes NBIRTH Birth certificate for Sparkplug Edge Nodes and every time it is disabled it will publish NDEATH
Death certificate for Sparkplug Edge Nodes.
Sparkplug Edge Node properties Server tab
Number of Servers
Specify up to five servers. These servers are typically for redundancy. It is possible to configure a node command to change servers if the current server is performing too slowly.
Server
Click on the server you want to specify by default.
Configuration - Username
If your MQTT broker requires a username, specify it here.
Configuration - Password
If your MQTT broker requires a password, specify it here.
Configuration - Hash Password with MD5
You may enable this option to hash the MQTT broker password with MD5.
Configuration - Port
Specify the TCP/IP port tag you have configured for your MQTT communications.