Eae Sln Overview
by NeverSight
>
Skill Details
name: eae-sln-overview description: > Explores EAE projects and generates comprehensive summary reports including network architecture, protocols, libraries, I/O counts, ISA88 hierarchy, project description, and quality rating. Supports multiple output formats. license: MIT compatibility: Designed for EcoStruxure Automation Expert 24.0+, Python 3.8+ metadata: version: "1.1.0" author: Claude domain: industrial-automation platform: EcoStruxure Automation Expert parent-skill: eae-skill-router user-invocable: true standard: IEC-61499
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\EcoStruxureAutomationExpertProjectsC:\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
Related Skills
Attack Tree Construction
Build comprehensive attack trees to visualize threat paths. Use when mapping attack scenarios, identifying defense gaps, or communicating security risks to stakeholders.
Grafana Dashboards
Create and manage production Grafana dashboards for real-time visualization of system and application metrics. Use when building monitoring dashboards, visualizing metrics, or creating operational observability interfaces.
Matplotlib
Foundational plotting library. Create line plots, scatter, bar, histograms, heatmaps, 3D, subplots, export PNG/PDF/SVG, for scientific visualization and publication figures.
Scientific Visualization
Create publication figures with matplotlib/seaborn/plotly. Multi-panel layouts, error bars, significance markers, colorblind-safe, export PDF/EPS/TIFF, for journal-ready scientific plots.
Seaborn
Statistical visualization. Scatter, box, violin, heatmaps, pair plots, regression, correlation matrices, KDE, faceted plots, for exploratory analysis and publication figures.
Shap
Model interpretability and explainability using SHAP (SHapley Additive exPlanations). Use this skill when explaining machine learning model predictions, computing feature importance, generating SHAP plots (waterfall, beeswarm, bar, scatter, force, heatmap), debugging models, analyzing model bias or fairness, comparing models, or implementing explainable AI. Works with tree-based models (XGBoost, LightGBM, Random Forest), deep learning (TensorFlow, PyTorch), linear models, and any black-box model
Pydeseq2
Differential gene expression analysis (Python DESeq2). Identify DE genes from bulk RNA-seq counts, Wald tests, FDR correction, volcano/MA plots, for RNA-seq analysis.
Query Writing
For writing and executing SQL queries - from simple single-table queries to complex multi-table JOINs and aggregations
Pydeseq2
Differential gene expression analysis (Python DESeq2). Identify DE genes from bulk RNA-seq counts, Wald tests, FDR correction, volcano/MA plots, for RNA-seq analysis.
Scientific Visualization
Meta-skill for publication-ready figures. Use when creating journal submission figures requiring multi-panel layouts, significance annotations, error bars, colorblind-safe palettes, and specific journal formatting (Nature, Science, Cell). Orchestrates matplotlib/seaborn/plotly with publication styles. For quick exploration use seaborn or plotly directly.
