Considerations when using a Property Translation Table
You can use a Property Translation Table in the Sparkplug Publisher driver to help to create and configure points automatically on a Sparkplug client. If the Sparkplug client driver is running on a Geo SCADA Expert system, you need to consider doing the following:
UNEXPECTED BEHAVIOR OF APPLICATION
Before relying on the automatic creation of points operation in a 'live' system, thoroughly test and monitor the automatic creation of points in the Sparkplug client in a test system that accurately reflects the 'live' system. This includes testing:
-
The use of Property Translation Tables in both the Sparkplug Publisher driver and the Sparkplug client driver.
-
The Create Points from Birth Metrics pick action on a Sparkplug Edge Node in the Sparkplug client.
-
If applicable, the Create Devices from Device Birth Messages pick action on a Sparkplug Edge Node in the Sparkplug client.
-
If applicable, the Create Points from Birth Metrics pick action on a Sparkplug Device in the Sparkplug client.
Perform further tests to automatically create points in the client once the Sparkplug publisher and client systems are set in a 'live' system to verify the correct operation. It is important that arrangements for such checks are made and that sufficient time is allowed to perform complete and satisfactory testing.
-
Create a Property Translation Table in the Sparkplug Publisher driver with the properties that you want to configure automatically in the Sparkplug client. The properties from the publisher’s Property Translation Table are mapped to the birth messages that are transmitted to the Sparkplug client. Birth messages are generated when there is a configuration change to the Sparkplug publisher and its related point configuration.
-
To map the properties from the birth message to the client, you need to:
-
Create and add a Property Translation Table in the Sparkplug client driver with the properties that you want to configure automatically in the points on the client. The Property Translation Table of the Sparkplug client should include only those properties that are to differ from the default configuration values. Ensure that the details of the configuration properties map to the equivalent properties in the Property Translation Table of the publisher.
This example assumes that the point for which the Sparkplug Publisher is publishing data happens to be an Advanced OPC Analog Point.
If you want to configure the Zero Scale value of an analog point in the client based on the configuration of an analog point in the publisher:
The entry in the Property Translation Table of the Publisher will be:
ZeroScaleValue<tab>CAdvOPCAnalog<tab>ZeroScale
The entry in the Property Translation Table of the client will be:
ZeroScaleValue<tab>CSparkplugPointAnalog<tab>ZeroScale
-
Ensure that the Sparkplug Edge Node in the client is in the group in which you want the points to be created. In the Geo SCADA Expert documentation, we refer to this as the 'Node Root Group' of the Sparkplug client (see Configure the Properties on the Sparkplug Publisher Tab, in particular the description of the Edge Node Mapping field).
-
Ensure that the client receives a birth message after you have completed any configuration changes in the Sparkplug publisher that might impact the automatic point creation on the client. Check the Events List on the Sparkplug Edge Node in the client to check if the client has received the birth message. Only perform a Create Points from Birth Metrics pick action on the Sparkplug Edge Node or Sparkplug Device in the client after the client receives the birth message from the publisher.
In the Property Translation Table, you can include a point property that references another database item. References can be absolute or relative. If you intend to use absolute or relative references in the Property Translation Table, you need to consider the following points. You need to do this before using the Create Points from Birth Metrics pick action on the Sparkplug Edge Node or Sparkplug Device in the client:
-
If a metric point in the Node Root Group of the Sparkplug Publisher references a database item that resides outside of the Node Root Group, it will be an absolute reference. If you are using absolute references, the location of the referenced database item in the client should exactly mirror the location in the publisher.
-
If a metric point in the Node Root Group of the Sparkplug Publisher references a database item that is also in the Node Root Group, it will be a relative reference. If you are using relative references:
-
In the client—The referenced database item should be located in the Node Root Group of the client.
-
In the publisher—Both of the following should be located in the Edge Node Mapping structure:
-
The point that includes the reference to a database item
-
The referenced database item itself.
-
If either the created point that contains the reference, or the referenced database item, is outside of the defined Edge Node Mapping structure in the Sparkplug Publisher, it will result in an absolute reference in the birth message.
-
-
The configuration of a Reference field in the client is based on the database structure of the publisher. For relative references to be mapped correctly to the client configuration:
-
You need to define a Node Root Group in the Edge Node Mapping field on the Form of the Sparkplug Publisher database item.
-
The database structure of the client has to mirror the database structure of the publisher. This means that the Node Root Group structure in the client in which the Sparkplug Edge Node, Sparkplug devices, and points are created, should mirror the Node Root Group structure in publisher.
-
If you reference another database item (such as an Alarm View display) on the configuration Form of a point in the publisher, you need to manually create the referenced database item in the Sparkplug client with the same name. The database item that you create in the client should be located in the same group in which the point is created.
-
-
If you include relative references in the Property Translation Table, the Sparkplug Edge Node, Sparkplug devices, and points should remain in the Node Root Group in which they were first created.
-
If you include invalid or missing references in the Property Translation Table, the points may not be modified correctly in the client. To understand what properties should be mapped in the client, refer to the metrics in the Sparkplug birth message. These metrics are extracted from the Property Translation Table of the publisher.
In the Sparkplug Publisher driver, you have attached a Mimic named ‘AlarmView01’ to the 'Alarm View' field in the configuration Form of an Advanced OPC Analog point named 'A1'. The Mimic and the point are in the ‘Sparkplug.SparkplugPublisher’ group. This group is the Node Root Group that is configured in the Edge Node Mapping field in the Sparkplug Publisher database item.
You want the reference to the Alarm View to be configured automatically in the point on the client as part of the Create Points from Birth Metrics activity. For this, you add the following entry in the Property Translation Table of the publisher:
AlarmViewIdOPCAlg<tab>CAdvOPCAnalog<tab>AlarmViewId
For the reference to the Alarm View display to be configured automatically in the point in the Sparkplug client, you must first create the ‘AlarmView01’ Mimic manually in the client. Ensure that you create the Mimic in the Node Root Group in which the Sparkplug Edge Node resides in the client. In this example, the name of this group is ‘Sparkplug.SparkplugClient’.
You also need to add the following configuration entry in the Property Translation Table of the client:
AlarmViewIdOPCAlg<tab>CSparkplugPointAnalog<tab>AlarmViewId
Check that the client has received a recent birth message from the publisher (one that includes the latest configuration changes that you made to the content that the Publisher is to publish). After this, you can run the Create Points from Birth Metrics pick action on the Sparkplug Edge Node or Sparkplug Device in the client. This should populate the ‘Alarm View’ reference field in the ‘A1’ analog point with the ‘Sparkplug.SparkplugClient.AlarmView01’ reference.