32f26272ae
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>
132 lines
6.1 KiB
Markdown
132 lines
6.1 KiB
Markdown
# Sample Projects
|
||
|
||
The ArchestrA Object Toolkit comes with two sample ApplicationObjects:
|
||
|
||
- Monitor object
|
||
- WatchDog object
|
||
|
||
By default, the projects for these objects are installed in the C:\Program Files\Wonderware\Toolkits\ArchestrA Object\Samples folder. You can examine these objects to learn more about the C# code generated by the ArchestrA Object Toolkit. This appendix gives a short overview of what these objects do and what their structure looks like.
|
||
|
||
> **Note**
|
||
> On a 64-bit operating system, projects for these objects are installed in C:\Program Files (x86)\Wonderware\Toolkits\ArchestrA Object\Samples.
|
||
|
||
## The Monitor Object
|
||
|
||
The Monitor object is a very simple ApplicationObject that reads an external input value and calculates its average. It also allows the user to output a new value that is below a configurable limit. It has no custom config time code and no alarm or history settings.
|
||
|
||
### Object Structure
|
||
|
||
The Monitor object uses the following primitives:
|
||
|
||
- InputOutput primitive to read and write the external value; external name: PVInputOutput
|
||
|
||
The Monitor object has the following custom attributes:
|
||
|
||
| Name | Type | Category | Description | Additional Settings |
|
||
| --- | --- | --- | --- | --- |
|
||
| PV | Float | Writeable_US | Process value | Calculated Quality, Frequently Accessed, Run Time Set Handler |
|
||
| PVHiLimit | Float | Writeable_USC | Limit value for PV output | |
|
||
| PVInputAvg | Double | CalculatedRetentive | Average value | Calculated Quality |
|
||
| ResetInputAvg | Boolean | Writeable_US | Resets the average value | Run Time Set Handler |
|
||
|
||
### Custom Object Editor
|
||
|
||
The custom editor of the Monitor object has only one custom tab with controls to configure the following attributes:
|
||
|
||
- PVHiLimit
|
||
- PVInputOutput.Reference
|
||
- PVInputOutput.SeparateFeedbackConfigured
|
||
- PVInputOutput.ReferenceSecondary
|
||
|
||
### Run Time Code
|
||
|
||
The Monitor object has the following custom run time code:
|
||
|
||
- **SetScanState event:**
|
||
- When going OnScan, set the quality of calculated attributes to Initializing.
|
||
- When going OffScan, set the quality of calculated attributes to Bad.
|
||
- **Execute event:**
|
||
- Get the new input value and write it to the PV attribute.
|
||
- Set the PV attribute’s quality to the quality of the new input value.
|
||
- Calculate the new average value and write it to the PVInputAvg attribute.
|
||
- **GetStatusDesc event:** Return messages for custom error codes.
|
||
- **Set handler for PV attribute:** Check that new value is less than PVHiLimit.
|
||
- **Set handler for ResetInputAvg:** Reset the average calculation.
|
||
|
||
## The WatchDog Object
|
||
|
||
The WatchDog object demonstrates basic input/output, alarming, and historization. It also shows how to use virtual primitives. The object:
|
||
|
||
- Monitors whether an input bit has changed.
|
||
- Calculates the time since the bit last changed.
|
||
- Raises an alarm if this time exceeds a timeout limit.
|
||
- Historizes this time.
|
||
- Provides optional statistics via a virtual primitive: average and maximum time since last change, time of last timeout, total number of timeouts.
|
||
|
||
### Object Structure
|
||
|
||
The WatchDog object uses the following primitives:
|
||
|
||
- Input primitive to read the external bit that should be monitored; external name: MonitoredBit
|
||
- Alarm primitive
|
||
- History primitive
|
||
- Custom virtual local primitive to calculate statistics; external name: Stats
|
||
|
||
The WatchDog object has the following custom attributes:
|
||
|
||
| Name | Type | Category | Description | Additional Settings |
|
||
| --- | --- | --- | --- | --- |
|
||
| TimeSinceChange | ElapsedTime | Calculated | Time since the MonitoredBit value last changed state | Historizable |
|
||
| Timeout.Limit | ElapsedTime | Writeable_USC_Lockable | Limit value for timeout alarm | Frequently Accessed, Run Time and Config Time Set Handlers |
|
||
| Timeout | Boolean | Calculated | Set when timeout has occurred | Alarmable |
|
||
| Stats.Enable | Boolean | PackageOnly_Lockable | Enable/disable Stats virtual primitive | Config Time Set Handler |
|
||
|
||
The Stats virtual primitive has the following custom attributes:
|
||
|
||
| Name | Type | Category | Description | Additional Settings |
|
||
| --- | --- | --- | --- | --- |
|
||
| Stats.DelayAverage | ElapsedTime | Calculated | Average time since last change | |
|
||
| Stats.DelayMax | ElapsedTime | Calculated | Maximum time since last change | |
|
||
| Stats.TimeoutCnt | Integer | Calculated | Timeout count | Historizable |
|
||
| Stats.LastTimeout | Time | Calculated | Time of last timeout | |
|
||
| Stats.Reset | Boolean | Writeable_U | Reset statistics | Run Time Set Handler |
|
||
|
||
### Custom Object Editor
|
||
|
||
The custom editor of the WatchDog object has two custom tabs with controls to configure the following:
|
||
|
||
- **General tab:**
|
||
- Input bit (MonitoredBit.InputSource)
|
||
- Enable statistics (Stats.Enable)
|
||
- Enable history and alarms for attributes
|
||
- **Advanced tab:**
|
||
- History and alarm settings for attributes
|
||
|
||
### Config Time Code
|
||
|
||
The WatchDog object has the following custom config time code:
|
||
|
||
- **Set handler for Stats.Enable attribute:** Enable/disable the Stats virtual primitive.
|
||
- **Set handler for Timeout.Alarmed attribute:** Enable/disable the timeout alarm primitive.
|
||
- **Set handler for Timeout.Limit attribute:** Check that the new value is positive.
|
||
- **Set handler for TimeSinceChanged.Historized** **attribute:** Enable/disable the history primitive for the TimeSinceChanged attribute.
|
||
|
||
### Object Run Time Code
|
||
|
||
The WatchDog object has the following custom run time code:
|
||
|
||
- **Startup event:** Initialize the time of last change.
|
||
- **Execute event:**
|
||
- Get the new input value.
|
||
- Calculate the time since the last change and write it to the TimeSinceChanged attribute.
|
||
- If the time exceeds the timeout limit, raise an alarm by setting the Timeout.Condition attribute to true.
|
||
- **GetStatusDesc event:** Return messages for custom error codes.
|
||
- **Set handler for Timeout.Limit attribute:** Check that the new value is positive.
|
||
|
||
### Stats Primitive Run Time Code
|
||
|
||
The Stats virtual primitive has the following custom run time code:
|
||
|
||
- **Execute event:** Calculate statistics (average/maximum time since last change, timeout count, last timeout time) and write them to the appropriate attributes.
|
||
- **Set handler for Reset attribute:** Reset all statistics attributes.
|