skills/sapiencezk/eae-skills/eae-sln-overview

eae-sln-overview

SKILL.md

EAE Solution Overview

Analyzes EcoStruxure Automation Expert (EAE) projects and generates comprehensive reports.

Quick Start

# Basic analysis - generates markdown report
python scripts/analyze_project.py --project-dir /path/to/project

# JSON output for automation
python scripts/analyze_project.py --project-dir /path/to/project --json

# Quick summary
python scripts/analyze_project.py --project-dir /path/to/project --format summary

# Save report to file
python scripts/analyze_project.py --project-dir /path/to/project --output report.md

Triggers

Use this skill when:

  • "analyze EAE project"
  • "generate project report"
  • "project overview"
  • "solution summary"
  • "show project quality"
  • "what's in this EAE project"
  • /eae-sln-overview

Quick Reference

Analysis Description Script
Solution Projects, blocks, library refs, EAE version parse_solution.py
Topology Devices, resources, CAT instances parse_system_topology.py
Protocols OPC-UA, Modbus, EtherNet/IP, IO-Link parse_protocols.py
Libraries SE vs custom, dependencies parse_libraries.py
I/O Event/data inputs/outputs count_io.py
ISA88 System/subsystem hierarchy parse_isa88.py
Description Project description (docs or inferred) parse_description.py
Quality 8-dimension scoring calculate_quality.py

Report Sections

1. Executive Summary

Quick metrics table with quality score, project count, device count, blocks, and I/O points.

2. Network Architecture

ASCII diagram showing device topology with:

  • Device names and types
  • Resource counts
  • CAT instance counts

3. Protocol Inventory

Protocol What's Detected
OPC-UA Server Exposed node count, over-exposure warnings
OPC-UA Client Cross-device connections
Modbus TCP/RTU Masters and slaves
EtherNet/IP Scanner instances
Other DNP3, PROFINET, IO-Link, etc.

4. Library Matrix

  • SE Standard Libraries: Runtime.Base, SE.App2CommonProcess, etc.
  • Custom Libraries: Project-specific namespaces with dependencies

5. I/O Summary

Category Description
Event Inputs INIT, REQ, etc.
Event Outputs INITO, CNF, etc.
Data Inputs Interface variables (inputs)
Data Outputs Interface variables (outputs)
Internal Vars Private variables
Adapters Socket/Plug connections

6. ISA88 Hierarchy

System/Subsystem hierarchy from System.sys:

System: System
  +-- Subsystem: JetMix (JetMix)
      +-- Equipment modules...
  +-- Subsystem: JetSpray (JetSpray)
      +-- Equipment modules...

Parsed from Device.FolderPath attribute and CAT instances in System.sys.

7. Quality Score

8-dimension scoring system (100 points total):

Dimension Max Description
Naming Compliance 20 SE naming convention adherence
Library Organization 15 SE/custom separation, dependencies
Documentation 15 .doc.xml coverage, comments
ISA88 Hierarchy 15 Asset structure and CAT linking
Protocol Config 10 OPC-UA exposure, clean configs
Code Organization 10 Folder structure, consistency
Block Complexity 10 Variable counts, event fanout
Reusability 5 Adapter usage, composition

Grades: A (90+), B (80-89), C (70-79), D (60-69), F (<60)

Commands

Main Orchestrator

python scripts/analyze_project.py --project-dir PATH [OPTIONS]

Options:
  --project-dir PATH    EAE project root directory (required)
  --format FORMAT       Output: markdown, json, summary (default: markdown)
  --output PATH         Write to file instead of stdout
  --json                Shortcut for --format json

Individual Scripts

Run individual analysis modules for targeted inspection:

# Solution structure
python scripts/parse_solution.py --project-dir PATH [--json]

# System topology
python scripts/parse_system_topology.py --project-dir PATH [--json]

# Protocol detection
python scripts/parse_protocols.py --project-dir PATH [--json]

# Library analysis
python scripts/parse_libraries.py --project-dir PATH [--json]

# I/O counting
python scripts/count_io.py --project-dir PATH [--json] [--details]

# ISA88 hierarchy
python scripts/parse_isa88.py --project-dir PATH [--json]

# Project description
python scripts/parse_description.py --project-dir PATH [--json]

# Quality scoring
python scripts/calculate_quality.py --project-dir PATH [--json]

Exit Codes

Code Meaning
0 Analysis complete, quality >= 70%
1 Error (project not found, critical failure)
10 Analysis complete with warnings, or quality 50-69%
11 Analysis complete, quality < 50%

Output Formats

Markdown (default)

Full report with tables, ASCII diagrams, and formatted sections. Best for documentation.

JSON

Structured data for automation and integration:

{
  "project_dir": "/path/to/project",
  "analyzed_at": "2024-01-15T10:30:00",
  "solution": { ... },
  "topology": { ... },
  "protocols": { ... },
  "libraries": { ... },
  "io": { ... },
  "isa88": { ... },
  "quality": { ... }
}

Summary

One-line-per-metric quick overview:

Project: MyProject
Description: MyProject is an IEC 61499 automation project for food and beverage processing.
EAE Version: 24.0.0.0
Quality: 75/100 (Grade C)
Projects: 3
Blocks: 250
I/O Points: 8,287
SE Libraries (16): Runtime.Base, SE.AppBase, ...
Custom Libraries (3): MyLib.IoLink, ...
Protocols: OPC-UA (0 refs), Modbus (334 refs), EtherNet/IP (1475 refs)
System: System
Subsystems (4): JetMix, JetSpray, JetFlam, Ligne
Equipment Modules: 114

Project Locations

Default EAE project locations:

  • C:\Users\{user}\Documents\Schneider Electric\EcoStruxureAutomationExpertProjects
  • C:\Users\{user}\Documents\GitHub

Files Analyzed

Pattern Purpose
*.sln, *.nxtsln Solution structure
*.dfbproj Project metadata, library refs, EAE version
*.fbt Function blocks (interfaces)
*.adp Adapters
*.dt Data types
System.cfg, System.sys Topology, CAT instances, ISA88 hierarchy
*.opcua.xml OPC-UA server configuration
*.hcf Hardware configuration (protocol detection)
*.doc.xml Documentation (description extraction)
Folders.xml Code organization
README.md Project documentation

Integration with Other Skills

Skill Integration
eae-naming-validator Quality scoring uses naming patterns
eae-performance-analyzer Can be run after overview for deep analysis
eae-skill-router Parent skill for routing

Anti-Patterns

Avoid Why Instead
Analyzing without reading May miss context Review report sections
Ignoring quality warnings Technical debt Address recommendations
Over-exposed OPC-UA Security risk Review exposed nodes
Empty ISA88 Missing asset management Configure hierarchy

Verification

After running analysis:

  • Quality score calculated (not error)
  • All 8 analysis sections present (solution, topology, protocols, libraries, io, isa88, description, quality)
  • No critical warnings
  • Library list includes SE and custom libraries
  • Protocol detection shows expected communication types
  • ISA88 subsystems match expected configuration

Troubleshooting

"Project directory not found"

Ensure the path points to the root containing .sln or IEC61499/ folder.

"No .dfbproj files found"

The project may not be an IEC61499 project or may have a non-standard structure.

"System directory not found"

The project doesn't have a configured system topology yet. This is normal for library-only projects.

"No subsystems found"

ISA88 hierarchy is not configured in System.sys. Ensure Device.FolderPath is defined with subsystem names.


Changelog

v1.1.0

  • Added parse_description.py - hybrid description generation (docs + metadata inference)
  • Enhanced protocol detection from .hcf files and library references
  • Added EAE version detection from .dfbproj files
  • Fixed ISA88 parsing to use System.sys instead of Assets.json
  • Improved custom library detection via ProjectReference elements
  • Added compatibility field to frontmatter

v1.0.0

  • Initial release
  • 7 analysis modules
  • 8-dimension quality scoring
  • Markdown, JSON, summary output formats
  • ASCII network diagrams
Weekly Installs
7
First Seen
Jan 23, 2026
Installed on
claude-code6
opencode4
gemini-cli3
antigravity3
windsurf3
trae3