Using UDAs and Extensions

A User-Defined Attribute (UDA) enables data type additions to the template or instances. UDAs can be further enhanced by extensions. Using extensions, a UDA can take on input, output, history, and alarm characteristics.

UDAs are categorized as follows:

  • Calculated: The UDA is only modifiable by the instance. It will have no initial value until the object writes to it. Calculated UDAs are typically used for totals, averages, and so on.
  • Object Writable: The UDA is writable only by instances within the Galaxy.
  • User Writable: At run-time, the UDA is writable by a user (subject to security restrictions), other instances, and the configuration program.

    Note Locking a UDA makes it a Constant and therefore, it is not writable at run-time.

Best Practice

  • When defining UDAs with input or output extensions, never lock their source or destination within a template, since it will be unique to each instance and defined later.
  • Use three dashes ( --- ) to represent an unknown reference. This prevents the "could not resolve reference" warning when instances are created.
  • User-defined attributes may have a one-dimensional array. Arrayed UDAs cannot be extended.
  • Only a Boolean UDA can take on alarm extensions. Make the proper selections of priority, category, and whether the template description or a unique message for this alarm is to be used. Alarms on analog values require use of an analog device template and object containment.
  • For a Boolean or Analog UDA alarm that comes from the field device control logic and requires a corresponding Acknowledge, the "Acked" attribute should take on an output extension with the destination being the "Ack" point in the control logic.
  • If an underscore ( _ ) is the first character of an attribute name, that attribute is hidden from users at run time. Use this hidden attribute when you need variables to support certain functionality, but want to hide them from users in order to prevent confusion.

    A hidden attribute cannot be extended. 

  • Any UDA and its extension created within a template is inherited by all derived  objects. However, attributes and extensions are only propagated when the instance is created or when that particular attribute is locked.
  • Most UDAs are checkpointed. This means that all data necessary to support automatic restart of a running Application Object is saved periodically. The restarted object has the same configuration, state, and associated data as the last checkpointed value.

    Unlike other UDAs, Calculated UDAs are not checkpointed. However, a "Retentive Enabled" Calculated UDA is available and can be configured to be checkpointed with all the other attributes in that object.

Comments

Author: Pete OConnell
Last Updated: 27 May 2021
Last Edited By: Pete OConnell
Viewed 459 times.

Share this Article