# Eplan Electric P8 Live Loop

> EPLAN Electric P8 Live Loop

- Skill: `haoyuesheng1688/eplan-electric-p8-live-loop` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add haoyuesheng1688/eplan-electric-p8-live-loop`
- Raw SKILL.md: https://api.skillmd.com/api/skills/haoyuesheng1688/eplan-electric-p8-live-loop/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: haoyuesheng1688 (https://skillmd.com/u/haoyuesheng1688)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/haoyuesheng1688/eplan-electric-p8-live-loop

---


# EPLAN Electric P8 Live Loop

Use this skill for EPLAN work launched from `D:\skills\codex\Eplan`, especially when EPLAN is already open and the user asks about PLC points, PLC address overview reports, cabinets, terminal strips, power, 485/network topology, Excel exports, BOM, or controlled edits.

## Authority Boundary

- Use only this workspace as the project authority:
  - `D:\skills\codex\Eplan\skills\`
  - `D:\skills\codex\Eplan\knowledge\`
  - `D:\skills\codex\Eplan\scripts\`
- Do not blend in facts, scripts, or conclusions from other projects unless the user explicitly asks for external comparison or lookup.
- Do not mutate the live EPLAN project unless the user asks for a concrete edit/export.
- Every operation needs input/output closure: record the request, read back the observed state, and save evidence under `D:\skills\codex\Eplan\logs\`.

## First Step

For any live EPLAN task, prove the connection before answering from the open project:

```powershell
.\scripts\connect-eplan.ps1 -CaptureScreenshot
```

If the expected project/title fragment is known:

```powershell
.\scripts\invoke-eplan-closed-loop.ps1 -ExpectedTitlePart "A1"
```

Read back:

- `Observed.SelectedWindowTitle`
- `Observed.ScreenshotPath`
- `Success`

## Task Router

- Project facts, page tree, cabinets, terminal strips: read `knowledge\PROJECT-FACTS.md`, then refresh with `scripts\extract-eplan-project-map.py` if the live project changed.
- Template-style Excel export: use `scripts\export-eplan-template-xlsx.py`; rules are in `knowledge\EXPORT-RULES.md`.
- Procurement BOM: use `scripts\export-eplan-bom.py`; rules and caveats are in `knowledge\BOM-RULES.md`.
- PLC point lookup or point change: use `knowledge\PLC-IO-RULES.md`; prefer EPLAN export/import/API routes and treat binary `.edb` probing as read-only verification unless the user explicitly accepts a targeted fallback.
- PLC address overview report restore/filter/layout: read `knowledge\PLC-ADDRESS-FORM-TEMPLATE.md`. Use `scripts\Apply-PlcAddressFilter.ps1` to remove blank-address rows across all generated `=Convey&PLCIO/*` pages. Use `scripts\rebuild-plc-address-form-9col.py` only after backing up `F48_001.f48`.
- General report/form template modifications: read `knowledge\REPORT-FORM-MODIFICATION-PATTERNS.md` first, then the specific report knowledge file. Treat master form files, report-generator settings, and generated report pages as separate layers that each need their own read-back.
- Power, 485, network, PLC arrangement, cabinet/front-panel ordering: read `knowledge\TOPOLOGY-ORDERING-RULES.md` before exporting or answering.
- Wire/connection numbering: read `knowledge\WIRE-NUMBERING-RULES.md`; summarize schemes with `scripts\summarize-wire-numbering-scheme.py` before customizing formats.
- Terminal diagram form/template changes: read `knowledge\REPORT-TEMPLATE-RULES.md` and `knowledge\TERMINAL-FORM-TEMPLATE.md`; summarize `.f13` forms with `scripts\summarize-eplan-form-template.py` before changing headers, variables, coordinates, or property ids.
- Failures and fixes: append concise notes to `knowledge\ERRORS.md`.
- Useful new discoveries: append concise notes to `knowledge\learning-log.md` and update the matching knowledge file.

## Safe Script Entry Points

```powershell
# Live connection proof
.\scripts\connect-eplan.ps1 -CaptureScreenshot

# Closed-loop title verification
.\scripts\invoke-eplan-closed-loop.ps1 -ExpectedTitlePart "A1"

# Refresh read-only project map evidence
python -X utf8 .\scripts\extract-eplan-project-map.py --help

# Export IO workbook using the user's template
python -X utf8 .\scripts\export-eplan-template-xlsx.py

# Export procurement BOM draft
python -X utf8 .\scripts\export-eplan-bom.py

# Summarize the learned HAOYUE300 wire-numbering scheme
python -X utf8 .\scripts\summarize-wire-numbering-scheme.py

# Summarize the learned terminal diagram form
python -X utf8 .\scripts\summarize-eplan-form-template.py

# Reapply PLC address non-empty filtering to all regenerated PLCIO pages
.\scripts\Apply-PlcAddressFilter.ps1
```

## Reading Rules

- Prefer EPLAN reports, page-level read-back, and exported data over raw binary strings.
- Raw `.edb` string extraction is useful for discovery but can contain mojibake, duplicate strings, stale context, or unrelated page text.
- For AI/AQ, preserve signed terminals such as `IW0+`, `IW0-`, `QW0+`, `QW0-`; do not collapse them to `IW0` or `QW0`.
- For uncertain names, output `待确认` instead of inventing a device name.
- For BOM quantities, treat script counts as a check draft until verified against EPLAN reports/order pages.

## Modification Rules

- Before any change: capture live connection evidence and create a backup/export of the target data.
- Change only the named target. Avoid grid-wide paste or mouse-driven bulk edits.
- After a change: run EPLAN refresh/check when possible, then read back the exact point/part/page and save screenshot or export evidence.
- If API/export/import fails, log the failure and propose the safest fallback before touching project data.
- For report/form templates, never rely on fixed generated page numbers. Identify the form, report type, page family, and dynamic report objects before editing.
- Preserve structural report objects such as dynamic report boxes and property variables unless a backup, read-back, and visual verification plan is in place.

## PLC Overview Guardrails

- Do not assume PLC overview page numbers are stable. Regeneration may move the same report from `/12` and `/13` to `/1` and `/2`.
- For blank rows in the PLC address overview, patch every `=Convey&PLCIO/*` SignalOverview report block with `PLC地址非空`, then run `reports /TYPE:PROJECT` and `gedRedraw`.
- Verify both the report-block read-back and the live page screenshot. A successful refresh action alone is not enough.

