Files
wwtools/graccesscli/docs/zb-galaxy.md
T
Joseph Doherty 32f26272ae 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>
2026-05-03 18:22:20 -04:00

157 lines
7.9 KiB
Markdown

# ZB Galaxy Documentation
Captured read-only with `graccess_cli` on 2026-04-28 through a session daemon:
```powershell
graccess session start --galaxy ZB --node .
graccess galaxy info --galaxy ZB --llm-json
graccess template list --galaxy ZB --pattern '%' --llm-json
graccess instance list --galaxy ZB --pattern '%' --llm-json
graccess security info --galaxy ZB --llm-json
graccess settings time-master get --galaxy ZB --llm-json
```
Session observed during capture:
- Galaxy: `ZB`
- Node: `DESKTOP-6JL3KKO`
- Pipe: `graccess-session-zb`
## Galaxy Identity
| Field | Value |
| --- | --- |
| Name | `ZB` |
| System Platform version string | `20.0.00000` |
| Version number | `43` |
| Upgrade required | `false` |
| CDI version | `5800.0474.7005.1` |
## Inventory Summary
| Object class | Count | Notes |
| --- | ---: | --- |
| Templates | 45 | Includes base System Platform templates, master templates, and project templates. |
| Instances | 67 | Includes 60 objects in the `TestMachine` family plus 7 standalone/development objects. |
| Toolsets | 0 | `toolset list` returned an empty array through the CLI. |
| Script libraries | 0 | `script-library list` returned an empty array through the CLI. |
| Security roles | 0 | `security roles` returned an empty array. |
| Security users | 0 | `security users` returned an empty array. |
| Security groups | 0 | `security groups` returned an empty array. |
`area list` and `engine list` returned empty arrays with their default patterns, but the raw instance inventory includes objects that look like development platform/engine/area objects: `DevPlatform`, `DevAppEngine`, `TestArea`, and `TestArea2`. Treat the typed wrapper results as the current CLI view, not proof that no platform or area-like objects exist in the galaxy.
## Templates
The galaxy has 45 templates:
| Template | Contained name | Checkout |
| --- | --- | --- |
| `$AnalogDevice` | | `notCheckedOut` |
| `$AppEngine` | | `notCheckedOut` |
| `$Area` | | `notCheckedOut` |
| `$DDESuiteLinkClient` | | `notCheckedOut` |
| `$DelmiaReceiver` | | `notCheckedOut` |
| `$DiscreteDevice` | | `notCheckedOut` |
| `$gAppEngine` | | `notCheckedOut` |
| `$gArea` | | `notCheckedOut` |
| `$gDDESuiteLinkClient` | | `notCheckedOut` |
| `$gMachine` | | `notCheckedOut` |
| `$gUserDefined` | | `notCheckedOut` |
| `$gViewEngine` | | `notCheckedOut` |
| `$gWinPlatform` | | `notCheckedOut` |
| `$InTouchOMI_ViewApp` | | `notCheckedOut` |
| `$InTouchProxy` | | `notCheckedOut` |
| `$InTouchViewApp` | | `notCheckedOut` |
| `$Master_AnalogDevice` | | `notCheckedOut` |
| `$Master_AppEngine` | | `notCheckedOut` |
| `$Master_Area` | | `notCheckedOut` |
| `$Master_DDESuiteLinkClient` | | `notCheckedOut` |
| `$Master_DiscreteDevice` | | `notCheckedOut` |
| `$Master_InTouchProxy` | | `notCheckedOut` |
| `$Master_OPCClient` | | `notCheckedOut` |
| `$Master_RedundantDIObject` | | `notCheckedOut` |
| `$Master_Sequencer` | | `notCheckedOut` |
| `$Master_SQLData` | | `notCheckedOut` |
| `$Master_UserDefined` | | `notCheckedOut` |
| `$Master_ViewEngine` | | `notCheckedOut` |
| `$Master_WinPlatform` | | `notCheckedOut` |
| `$MESReceiver` | | `notCheckedOut` |
| `$OIGW` | | `notCheckedOut` |
| `$OPCClient` | | `notCheckedOut` |
| `$RedundantDIObject` | | `notCheckedOut` |
| `$Sequencer` | | `notCheckedOut` |
| `$Sim` | | `notCheckedOut` |
| `$SQLData` | | `notCheckedOut` |
| `$TestMachine` | | `checkedOutToMe` |
| `$TestMachine.DelmiaReceiver` | `DelmiaReceiver` | `notCheckedOut` |
| `$TestMachine.MESReceiver` | `MESReceiver` | `notCheckedOut` |
| `$TestObject` | | `notCheckedOut` |
| `$TestObject.TestChildObject` | `TestChildObject` | `notCheckedOut` |
| `$UserDefined` | | `notCheckedOut` |
| `$ViewApp` | | `notCheckedOut` |
| `$ViewEngine` | | `notCheckedOut` |
| `$WinPlatform` | | `notCheckedOut` |
## Instances
The instance inventory has 67 objects. Grouped by contained name:
| Contained name | Count | Meaning |
| --- | ---: | --- |
| empty | 24 | 20 `TestMachine_*` parent instances plus `DEV`, `DevAppEngine`, `DevPlatform`, and `DevTestObject`. |
| `DelmiaReceiver` | 20 | One contained receiver under each `TestMachine_001` through `TestMachine_020`. |
| `MESReceiver` | 20 | One contained MES receiver under each `TestMachine_001` through `TestMachine_020`. |
| `TestArea` | 1 | Contained under `DEV`. |
| `TestArea2` | 1 | Contained under `DEV`. |
| `TestChildObject` | 1 | Contained under `DevTestObject`. |
The `TestMachine` instance family is the dominant application model in this galaxy:
| Parent | Delmia child | MES child |
| --- | --- | --- |
| `TestMachine_001` | `TestMachine_001.DelmiaReceiver` / `DelmiaReceiver_001` | `TestMachine_001.MESReceiver` / `MESReceiver_001` |
| `TestMachine_002` | `TestMachine_002.DelmiaReceiver` / `DelmiaReceiver_002` | `TestMachine_002.MESReceiver` / `MESReceiver_002` |
| `TestMachine_003` | `TestMachine_003.DelmiaReceiver` / `DelmiaReceiver_003` | `TestMachine_003.MESReceiver` / `MESReceiver_003` |
| `TestMachine_004` | `TestMachine_004.DelmiaReceiver` / `DelmiaReceiver_004` | `TestMachine_004.MESReceiver` / `MESReceiver_004` |
| `TestMachine_005` | `TestMachine_005.DelmiaReceiver` / `DelmiaReceiver_005` | `TestMachine_005.MESReceiver` / `MESReceiver_005` |
| `TestMachine_006` | `TestMachine_006.DelmiaReceiver` / `DelmiaReceiver_006` | `TestMachine_006.MESReceiver` / `MESReceiver_006` |
| `TestMachine_007` | `TestMachine_007.DelmiaReceiver` / `DelmiaReceiver_007` | `TestMachine_007.MESReceiver` / `MESReceiver_007` |
| `TestMachine_008` | `TestMachine_008.DelmiaReceiver` / `DelmiaReceiver_008` | `TestMachine_008.MESReceiver` / `MESReceiver_008` |
| `TestMachine_009` | `TestMachine_009.DelmiaReceiver` / `DelmiaReceiver_009` | `TestMachine_009.MESReceiver` / `MESReceiver_009` |
| `TestMachine_010` | `TestMachine_010.DelmiaReceiver` / `DelmiaReceiver_010` | `TestMachine_010.MESReceiver` / `MESReceiver_010` |
| `TestMachine_011` | `TestMachine_011.DelmiaReceiver` / `DelmiaReceiver_011` | `TestMachine_011.MESReceiver` / `MESReceiver_011` |
| `TestMachine_012` | `TestMachine_012.DelmiaReceiver` / `DelmiaReceiver_012` | `TestMachine_012.MESReceiver` / `MESReceiver_012` |
| `TestMachine_013` | `TestMachine_013.DelmiaReceiver` / `DelmiaReceiver_013` | `TestMachine_013.MESReceiver` / `MESReceiver_013` |
| `TestMachine_014` | `TestMachine_014.DelmiaReceiver` / `DelmiaReceiver_014` | `TestMachine_014.MESReceiver` / `MESReceiver_014` |
| `TestMachine_015` | `TestMachine_015.DelmiaReceiver` / `DelmiaReceiver_015` | `TestMachine_015.MESReceiver` / `MESReceiver_015` |
| `TestMachine_016` | `TestMachine_016.DelmiaReceiver` / `DelmiaReceiver_016` | `TestMachine_016.MESReceiver` / `MESReceiver_016` |
| `TestMachine_017` | `TestMachine_017.DelmiaReceiver` / `DelmiaReceiver_017` | `TestMachine_017.MESReceiver` / `MESReceiver_017` |
| `TestMachine_018` | `TestMachine_018.DelmiaReceiver` / `DelmiaReceiver_018` | `TestMachine_018.MESReceiver` / `MESReceiver_018` |
| `TestMachine_019` | `TestMachine_019.DelmiaReceiver` / `DelmiaReceiver_019` | `TestMachine_019.MESReceiver` / `MESReceiver_019` |
| `TestMachine_020` | `TestMachine_020.DelmiaReceiver` / `DelmiaReceiver_020` | `TestMachine_020.MESReceiver` / `MESReceiver_020` |
All listed instances were `notCheckedOut` during capture.
## Security
`security info` returned:
| Field | Value |
| --- | --- |
| Authentication mode | `eNone` |
| Login time | `1000` |
| Role update interval | `0` |
The role, user, and group collections returned empty arrays through the CLI.
## Settings And Read Limitations
| Read | Result |
| --- | --- |
| `settings time-master get` | Success, `Instance` was empty. |
| `settings locale get` | Failed with `COMException`: `Exception from HRESULT: 0xC0000005`. |
| `galaxy cdi-version` | Success, `5800.0474.7005.1`. |
Treat failed or empty settings reads as observed CLI/GRAccess results, not necessarily as authoritative absence in the IDE. The local GRAccess COM layer can fail specific property reads while other object queries continue to work.