0% found this document useful (0 votes)
24 views

Wonderware Application Server Security Troubleshooting Essentials Part 3

This document discusses attribute categories in Wonderware Application Server and how they determine the behavior and accessibility of attributes. It provides examples of different category types for both User Defined Attributes (UDAs) and Field Attributes, examining how they restrict write permissions and whether values are retained across restarts or failovers. The categories available for UDAs defined in the IDE are described, along with how attribute values in different categories behave when accessed by scripts, users, or across object boundaries. The categories allowed for Field Attributes depending on their access mode are also outlined.

Uploaded by

Ben Sahraoui
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views

Wonderware Application Server Security Troubleshooting Essentials Part 3

This document discusses attribute categories in Wonderware Application Server and how they determine the behavior and accessibility of attributes. It provides examples of different category types for both User Defined Attributes (UDAs) and Field Attributes, examining how they restrict write permissions and whether values are retained across restarts or failovers. The categories available for UDAs defined in the IDE are described, along with how attribute values in different categories behave when accessed by scripts, users, or across object boundaries. The categories allowed for Field Attributes depending on their access mode are also outlined.

Uploaded by

Ben Sahraoui
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Schneider Electric Software

Knowledge & Support Center

Doc Type Tech Notes

Doc Id TN581

Last Modified Date 02/20/2015

Wonderware Application Server Security Troubleshooting Essentials Part 3: Attribute Category


LEGACY TECH NOTE #

1000

SUMMARY

This Essentials Guide is the 3rd in a projected series.

This Tech Note discusses the IDE Attribute Category and its usage. In addition, we utilize an ArchestrA Object Toolkit (AOT) sample to demonstrate the assignment of additional Attribute
Categories at the ArchestrA Object (AA Object) level. Included is a table listing all Attribute Category types available in ArchestrA.

SITUATION

Application Versions
Wonderware Application Server 2012 and later

Attribute Category Review


The Attribute Category determines the behavior of one attribute. The defined attribute has the same behavior for every Galaxy logged-on user.

The category of an attribute is used to denote whether:

This attribute is accessible during the configuration or runtime.


This attribute can provide value propagation with object templates.
This attribute’s value will be retained during a failover.

All attributes existing in the ArchestrA provided by primitives or objects, such as WinPlatform, AppEngine, etc. have corresponding Category Types predefined. For example,

Primitive Attribute Category


WinPlatform PlatformInfo Calculated
WinPlatform Host SystemWriteable
AppEngine ScanStatCmd Writeable_US
AppEngine ExecutionRelatedObject Writeable_C_Lockable
... ... ...

The ArchestrA attribute can use many available Category Types. See the end of this Tech Note for details.

Define the following four types of the Category when creating an UDA (in the IDE):

Calculated: Permits only scripts within the same object to write to the attribute. Calculated attributes are not saved across restarts.
Calculated Retentive: Permits only scripts within the same object to write to the attribute. Calculated Retentive attributes are saved across restarts.
Object Writable: Permits other objects to write to this attribute in addition to being set by scripts within this object. Object Writeable attributes are saved across restarts, and they are
Writeable_S. This category is not user-writeable.
User Writeable: Permits other users to write to this attribute in addition to being set by scripts and objects throughout the system.

User writeable attributes are saved across restarts, they are Writeable_USC_Lockable, and they can be locked at configuration time. This category is user writeable.

We will explain each Category Type in the following section.

For other Category Types, you can use Wonderware AOT to create customized primitives or objects with the desired Category Type for each attribute. We will show this procedure in a later section
of this Tech Note.

IDE Category Types Working Scenarios


Initialization

Among the IDE Category Types, the Calculated and Calculated Retentive cannot have a predefined initial value after it is deployed. At this moment, the attribute’s Quality is showing
20:Initializing.

Figure 1: Initial Runtime Values of IDE Category Types

Writeable Restriction

Due to the definition of IDE Category Types, the logged-on user can only change the value of User writeable Category Type. Otherwise, we will see an error.

The Schneider Electric industrial software business and AVEVA have merged to trade as AVEVA Group plc, a UK listed company. The Schneider Electric and Life
Is On trademarks are owned by Schneider Electric and are being licensed to AVEVA by Schneider Electric.

Terms of Use | Privacy Policy

Copyright © 2018 AVEVA Group Plc. All rights reserved


Figure 2: Logged-On User Cannot Change the Above Three Category Types' Values in Object Viewer or InTouch User Input

Writeable for Script

Script has the Writeable permission on all of the four IDE Category Types' attributes.

Figure 3: Script can Write Values to All IDE Category Types

Writeable for Crossing AA Objects

For the Calculated or Calculated Retentive type of attribute, Script only has the Write permission within the AA Object's boundary.

1. Set up an object called UDOCategoryTest (AA Object) with the following initial values:

Figure 4: AA Test Object Initial Values

2. Set up another object called UDOCategoryOtherObj (AA Object) with the following script:

Figure 5: Script for UDOCategoryOtherObj

3. To test, from the UDOCategoryOtherObj AA Object, set the command me.CrossObject to True.

The values for the Calculated and Calculated Retentive type attributes do not change.

Figure 6: Calculated and Calculated Retentive Attribute Types Cannot Change Value Across the AA Object's Boundary

Attribute Value for Failover

Among the four IDE Category Types, only the Calculated UDA is not Checkpointed. This means the value of the UDA is not passed to the newly-started partner AppEngine after a Failover is
finished.

The Schneider Electric industrial software business and AVEVA have merged to trade as AVEVA Group plc, a UK listed company. The Schneider Electric and Life
Is On trademarks are owned by Schneider Electric and are being licensed to AVEVA by Schneider Electric.

Terms of Use | Privacy Policy

Copyright © 2018 AVEVA Group Plc. All rights reserved


Figure 7: Initial Settings for IDE Category UDAs

Figure 8: UDA Values Before Failover

Figure 9: After Failover, Calculated Type UDA Does Not Have the Value Passed to the Newly-Started Partner AppEngine

Field Attributes

Each Field Attribute could have one Access mode selecting from Input, Output or InputOutput Extensions.

Unlike the UDA, within the Field Attribute, each Access Extension mode has different Category Types defined.

Access Extension Category Types Selection


Input NONE
Output Calculated, Calculated Retentive, Object Writeable and User Writeable
InputOutput Object Writeable and User Writeable

The following bullets give detailed explanations.

Input Access mode: A Field Attribute (FA) with this mode means this FA cannot have its own value or quality. It only references the value or quality from other Attribute. There is no
Writeable Requirement. Therefore, Input Extension does not need any IDE Category.

The following screenshots show the principle of the Input Extension Access mode.

Figure 10: Define an Input Access Mode Field Attribute Without Any Input Source (Reference to Other Attribute)
In the Object Viewer, the Input Access mode Field Attribute does not have any initial value and the Quality is bad. If setting a value to this attribute, we see the error.

The Schneider Electric industrial software business and AVEVA have merged to trade as AVEVA Group plc, a UK listed company. The Schneider Electric and Life
Is On trademarks are owned by Schneider Electric and are being licensed to AVEVA by Schneider Electric.

Terms of Use | Privacy Policy

Copyright © 2018 AVEVA Group Plc. All rights reserved


Figure 11: Input Access Mode Field Attribute Cannot Set Any Value Because it is for referencing Other Attributes
Add a reference in the Input source Text box (Figure 12 below).

Figure 12: Add a Reference to the CPULoad System Attribute in the Input Source Text Box
The result is that the Field Attribute called ExecuteCntFieldAttribute is pointing to the CPULoad Attribute:

Figure 13: Field Attribute Points to CPULoad Attribute

Output Access Mode


Unlike the Input Extension, the Output Extension allows the Field Attribute's value to write to an external reference destination. In other words, when this Field Attribute's value is changed, it
updates the value of the external attribute.

Because of the Writeable requirement, the Output Extension Access mode needs all four IDE’s Category Types. The following screenshots demo the principle of the Output Extension Access
mode.

Setup

Item Definition Value


Field Attribute OutputExtensionMode
Access Mode Output
Output Source Me.GRPlatformCPULoad
UDA GRPlatformCPULoad

The Schneider Electric industrial software business and AVEVA have merged to trade as AVEVA Group plc, a UK listed company. The Schneider Electric and Life
Is On trademarks are owned by Schneider Electric and are being licensed to AVEVA by Schneider Electric.

Terms of Use | Privacy Policy

Copyright © 2018 AVEVA Group Plc. All rights reserved


Figure 14: Value Modification on OutputExtensionMode Updates the Output Destination me.GRPlatformCPULoad

Figure 15: Modify the Value of the Field Attribute OutputExtensionMode with a Simple Script

Figure 16: GRPlatformCPULoad UDA

After the deployment, you see the following result.

Figure 17: Result of the Output Access Mode

InputOutput Access Mode


The InputOutput Extension is to allow an attribute in AA Object to be configured so that its value is both read and written to an external reference destination. The primary job of the InputOutput
Extension is to monitor the value/quality of an input and to send output upon change.

By design, InputOutput Access mode makes only the Object writeable and User writeable attributes available.

Use AOT to Create AA Object with Other Category Types


In addition to the four Category Types configurable via the IDE, more Category Types are available for certain System AA Objects such as WinPlatform_001. These category types are easily
viewable with the Object Viewer.

The Schneider Electric industrial software business and AVEVA have merged to trade as AVEVA Group plc, a UK listed company. The Schneider Electric and Life
Is On trademarks are owned by Schneider Electric and are being licensed to AVEVA by Schneider Electric.

Terms of Use | Privacy Policy

Copyright © 2018 AVEVA Group Plc. All rights reserved


Figure 18: Category Types in Red are not IDEs Selectable Category Types

If your business logic needs attributes with Category Types that cannot be found in the IDE, in this case, Wonderware's ArchestrA Object Toolkit (AOT) is the bridge between your customized
attributes and other Category Types.

In this section, we will give a brief overview on the construction of this bridge.

Note: AOT has additional functionalities that allow you to build a full AA Object. That process is outside the scope of this Tech Note.

1. Build a single attribute AA Object using the AOT.

Figure 19: All Available ArchestrA Category Types


2. After making an AOT build, generate the aaPDF file. In this example, we have built AOTAttributeDemo1.aaPDF.
3. Import the AOTAttributeDemo1.aaPDF into the IDE and create an instance of the new imported template (Figure 20 below).

The Schneider Electric industrial software business and AVEVA have merged to trade as AVEVA Group plc, a UK listed company. The Schneider Electric and Life
Is On trademarks are owned by Schneider Electric and are being licensed to AVEVA by Schneider Electric.

Terms of Use | Privacy Policy

Copyright © 2018 AVEVA Group Plc. All rights reserved


Figure 20: Imported AOT Template and Instance
4. View the new attribute created by AOT in Object Viewer (Figure 21 below).

Figure 21: AOT Used to Create New Attribute SystemWriteableAttr, with the SystemWriteable Category Type

AA Object Category Types


IDE Category
Category Name Description
Name
PackageOnly Only exists at config time. Not deployed.
PackageOnly_Lockable Only exists at config time. Not deployed. Can be locked.
Calculated Only exists at run time. Not externally writeable by users. Run time changes are not persisted to disk by the AppEngine. Calculated
Only exists at run time. Not externally writeable by users or other objects. Run time changes are persisted to disk by the AppEngine. Constant
Calculated_Retentive Calculated_Retentive
Defined by an object developer. Never changes. Exists at config time and run time.
Writeable_U Exists at config time and run time, but only the Security Classification is configurable. Only externally writeable by users at run time.
Writeable_S Only exists at run time. Only externally writeable by other objects at run time. Object Writable
Writeable_US Exists at config time and run time, but only Security Classification is configurable. Externally writeable by users or other objects at run time.
Writeable_UC Exists at config time and run time. Only externally writeable by users at run time.
Writeable_UC_Lockable Exists at config time and run time. Only externally writeable by users at run time. Can be locked.
Writeable_USC Exists at config time and run time. Externally writeable by users or other objects at run time.
Writeable_USC_Lockable Exists at config time and run time. Externally writeable by users or other objects. Can be locked. User Writeable
Writeable_C_Lockable Exists at config time and run time. Not writeable at run time, even by the object itself. Can be locked.
Designation for an Attribute Category means that the Attribute may only receive write requests and they may only originate from an object,
SystemSetsOnly
including the same object containing the Attribute. This means that write requests from clients will not be processed.
An Attribute Category restricted to reading and writing of the value only within the object itself. The Attribute is not accessible by external objects
SystemInternal
or clients.
Is an Attribute Category designation restricted to writing the value from within the object itself. The Attribute is not accessible by external objects
SystemWriteable
or clients.

References
Wonderware Application Server 2012 R2 – IDE.PDF
ArchestraObject_Toolkit_Development_Guide
Wonderware FactorySuite A2 Deployment Guide

The Schneider Electric industrial software business and AVEVA have merged to trade as AVEVA Group plc, a UK listed company. The Schneider Electric and Life
Is On trademarks are owned by Schneider Electric and are being licensed to AVEVA by Schneider Electric.

Terms of Use | Privacy Policy

Copyright © 2018 AVEVA Group Plc. All rights reserved


The Schneider Electric industrial software business and AVEVA have merged to trade as AVEVA Group plc, a UK listed company. The Schneider Electric and Life
Is On trademarks are owned by Schneider Electric and are being licensed to AVEVA by Schneider Electric.

Terms of Use | Privacy Policy

Copyright © 2018 AVEVA Group Plc. All rights reserved

You might also like