Containment vs UDAs

Using containment or UDAs as the best configuration approach depends on actual field device requirements.

For example, template containment works best when the lower level object also has many components and may contain even lower-level objects.

Similar functionality can be achieved using User-Defined Attributes (UDAs). However, when the lowest level object is added to a template, it may be done using either template containment or UDAs. Both support an external I/O point link and history.

Use the following guidelines to expedite an appropriate development strategy:

  • Use Template Containment when more functionality is required, such as complex alarms, setpoints, I/O points, or other features readily available in a template.
  • Use UDAs when lower-level object is very basic. Use the UDA for memory or calculated values.

    It is also valid to always use a contained object for consistency, even whenthe property is very simple.

Decide the appropriate approach in advance of implementation.

Best Practice

  • Ensure the container incorporates functionality; otherwise place it as an attribute in another object. Do not use excessive empty containers simply as placeholders to host objects. Empty containers impact engine scan resources and time.
  • There is no practical limit to the number of attributes-per-object. However, strive to keep the actual object count down. Deeply-nested template/container structures slow down change check-in and propagation.
  • Complex objects should be built using UDAs, scripts and containment. If additional performance is required, first try compiling the object scripts into .dlls to streamline scripting.

    The form supported by Industrial Application Server is a .NET Library and can be created using Visual Studio .NET with either Visual Basic .NET or Visual C# .NET.

Comments

Author: Pete OConnell
Last Updated: 17 May 2021
Last Edited By: Pete OConnell
Viewed 246 times.

Share this Article