Initial commit: Wonderware / System Platform tools and reference
Five tools under one repo, all docs organized per DOCS-GUIDE.md: - aalogcli: .NET 4.8 / x86 CliFx CLI for reading System Platform binary logs (*.aaLGX) for LLM debugging, built on aaOpenSource/aaLog. Commands: last, tail, range, unread, fields. Stable JSON envelope under --llm-json. Build template under lib/build/ for rebuilding aaLogReader.dll. - aot: ArchestrA Object Toolkit 2014 v4.0 reference material. Dev guide (Markdown converted from CHM), API reference for the ArchestrA.Toolkit namespace, and the Monitor / Watchdog VS sample solutions. - graccesscli: .NET 4.8 / x86 CliFx CLI that automates Galaxy configuration via the ArchestrA GRAccess COM interop. Includes session daemon, IPC protocol, and llm-json envelope contract. - grdb: SQL/DDL exploration of the Galaxy Repository database. DDL captures, reusable queries, hierarchy / contained-name <-> tag-name translation notes. - histdb: LLM-oriented reference for AVEVA Historian retrieval. INSQL linked-server, extension tables, every wwXxx time-domain extension, every retrieval mode, alarm/event SQL recipes, REST API. Distilled from the 243-page Historian Retrieval Guide. Root contains: - CLAUDE.md: thin index pointing into each tool's README. - DOCS-GUIDE.md: doctrine for organizing docs for LLM consumption. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# ArchestrA Attribute Categories
|
||||
|
||||
An attribute’s category determines which namespaces an attribute appears in, whether the attribute can be written to, and what type of client (users, scripts, etc.) can write to it.
|
||||
|
||||
You should only allow as much access to an attribute as necessary. For example:
|
||||
|
||||
- An attribute that is used only by config time logic to add or remove Virtual Primitives should be given a category that prevents it from becoming part of the run time namespace (for example, PackageOnly).
|
||||
- An attribute that doesn’t make sense to configure in an editor should be given a category (for example, Calculated) that prevents it from becoming part of the config time namespace (and the custom object editor).
|
||||
- An attribute that needs to be configured and deployed but is not allowed to be modified at runtime should be given a category that prevents users or other objects from writing to it (for example, Writeable_C_Lockable).
|
||||
|
||||
Some attribute categories allow an attribute to be *locked*. This means that IDE users can lock the attribute in a template to protect its configured value from being changed in derived instances or templates. The value of a locked attribute cannot be modified, not even internally by the object’s code.
|
||||
|
||||
In general, you should make attributes lockable whenever possible. Lockable attributes allow users to enforce standards and can simplify system maintenance. Locking data also helps minimize the size of a system’s configuration database, which improves the speed of configuration tasks.
|
||||
|
||||
> **Note**
|
||||
> An exception is raised if an object’s logic attempts to modify a locked attribute. Therefore, before modifying a lockable attribute in your code, check whether it is locked.
|
||||
|
||||
The following table describes each attribute category.
|
||||
|
||||
| Category Name | Description |
|
||||
| --- | --- |
|
||||
| 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 or other objects. Run time changes are not persisted to disk by the AppEngine. |
|
||||
| Calculated_Retentive | Only exists at run time. Not externally writeable by users or other objects. Run time changes are persisted to disk by the AppEngine. |
|
||||
| Constant | 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. |
|
||||
| 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. |
|
||||
| Writeable_C_Lockable | Exists at config time and run time. Not writeable at run time, even by the object itself. Can be locked. |
|
||||
|
||||
An attribute’s category also determines whether the attribute supports various other options, such as a default value or historization. See the following table for details.
|
||||
|
||||
| Attribute Category | Can set security classification | Can have config time set handler | Can have run time set handler | Can be marked as “Frequently Accessed” | Supports “Calculated Quality and Time” | Default value can be set | Supports alarms and history1 | Supports “Advise Only Active” |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| PackageOnly | N | Y | N | N | N | Y | N | N |
|
||||
| PackageOnly_Locakable | N | Y | N | N | N | Y | N | N |
|
||||
| Constant | N | N | N | Y | N | Y | N | N |
|
||||
| Writeable_C_Lockable | N | Y | N | Y | N | Y | N | N |
|
||||
| Writeable_UC | Y | Y | Y | Y | Y | Y | Y | Y |
|
||||
| Writeable_UC_Lockable | Y | Y | Y | Y | Y | Y | Y | Y |
|
||||
| Writeable_USC | Y | Y | Y | Y | Y | Y | Y | Y |
|
||||
| Writeable_USC_Lockable | Y | Y | Y | Y | Y | Y | Y | Y |
|
||||
| Calculated | N | N | Y | Y | Y | N | Y | Y |
|
||||
| Calculated_Retentive | N | N | Y | Y | Y | N | Y | Y |
|
||||
| Writeable_S | N | N | Y | Y | Y | N | Y | Y |
|
||||
| Writeable_U | Y | N | Y | Y | Y | N | Y | Y |
|
||||
| Writeable_US | Y | N | Y | Y | Y | N | Y | Y |
|
||||
| SystemInternal | N | N | Y | N | N | Y | N | N |
|
||||
| SystemSetsOnly | N | N | Y | N | N | N | N | N |
|
||||
| SystemWriteable | N | N | Y | N | Y | Y | Y | Y |
|
||||
|
||||
1 Only non-array Boolean attributes can be alarmed. Only non-array attributes of the following types can be historized: Double, Float, Integer, Boolean, String, Custom Enumeration, and ElapsedTime,
|
||||
Reference in New Issue
Block a user