Files
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

3.0 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Purpose

The goal of this project is to identify and develop SQL queries that extract the Galaxy object hierarchy from the System Platform Galaxy Repository database in order to build a tag structure for an OPC UA server.

Specifically, we need to:

  • Build the hierarchy of areas and automation objects (using contained names for human-readable browsing)
  • Translate contained names to tag_names for read/write operations (e.g., TestMachine_001.DelmiaReceiver in the hierarchy becomes DelmiaReceiver_001 when addressing tag values)

See layout.md for details on the hierarchy vs tag name relationship.

Key Files

Documentation

  • connectioninfo.md — Database connection details and sqlcmd usage
  • layout.md — Galaxy object hierarchy, contained_name vs tag_name translation, and target OPC UA structure
  • build_layout_plan.md — Step-by-step plan for extracting hierarchy, attaching attributes, and monitoring for changes
  • data_type_mapping.md — Galaxy mx_data_type to OPC UA DataType mapping, including array handling (ValueRank, ArrayDimensions)

Queries

  • queries/hierarchy.sql — Deployed object hierarchy with browse names and parent relationships
  • queries/attributes.sql — User-defined (dynamic) attributes with data types and array dimensions
  • queries/attributes_extended.sql — All attributes (system + user-defined) with data types and array dimensions
  • queries/change_detection.sql — Poll galaxy.time_of_last_deploy to detect deployment changes

Schema Reference

  • schema.md — Full schema reference for all tables and views in the ZB database
  • ddl/tables/ — Individual CREATE TABLE definitions
  • ddl/views/ — Individual view definitions

Working with the Galaxy Repository Database

The Galaxy Repository is the backing SQL Server database for Wonderware/AVEVA System Platform (Galaxy: ZB, localhost, Windows Auth). Key tables used by the queries:

  • gobject — Object instances, hierarchy (contained_by_gobject_id, area_gobject_id), deployment state (deployed_package_id)
  • template_definition — Object type categories (category_id distinguishes areas, engines, user-defined objects, etc.)
  • dynamic_attribute — User-defined attributes on templates, inherited by instances via derived_from_gobject_id chain
  • attribute_definition — System/primitive attributes
  • primitive_instance — Links objects to their primitive components and attribute definitions
  • galaxy — Single-row table with time_of_last_deploy for change detection

Use sqlcmd -S localhost -d ZB -E -Q "..." to run queries. See connectioninfo.md for details.

Conventions

  • Store all connection parameters in connectioninfo.md, not scattered across scripts.
  • Keep SQL query examples and extraction notes as Markdown files in this repo.
  • If scripts are added (Python, PowerShell, etc.), document their usage and dependencies alongside them.