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:
.\scripts\connect-eplan.ps1 -CaptureScreenshot
If the expected project/title fragment is known:
.\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
# 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.
1---2name: eplan-electric-p8-live-loop3description: EPLAN Electric P8 Live Loop4---56# EPLAN Electric P8 Live Loop78Use 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.910## Authority Boundary1112- Use only this workspace as the project authority:13 - `D:\skills\codex\Eplan\skills\`14 - `D:\skills\codex\Eplan\knowledge\`15 - `D:\skills\codex\Eplan\scripts\`16- Do not blend in facts, scripts, or conclusions from other projects unless the user explicitly asks for external comparison or lookup.17- Do not mutate the live EPLAN project unless the user asks for a concrete edit/export.18- Every operation needs input/output closure: record the request, read back the observed state, and save evidence under `D:\skills\codex\Eplan\logs\`.1920## First Step2122For any live EPLAN task, prove the connection before answering from the open project:2324```powershell25.\scripts\connect-eplan.ps1 -CaptureScreenshot26```2728If the expected project/title fragment is known:2930```powershell31.\scripts\invoke-eplan-closed-loop.ps1 -ExpectedTitlePart "A1"32```3334Read back:3536- `Observed.SelectedWindowTitle`37- `Observed.ScreenshotPath`38- `Success`3940## Task Router4142- 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.43- Template-style Excel export: use `scripts\export-eplan-template-xlsx.py`; rules are in `knowledge\EXPORT-RULES.md`.44- Procurement BOM: use `scripts\export-eplan-bom.py`; rules and caveats are in `knowledge\BOM-RULES.md`.45- 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.46- 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`.47- 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.48- Power, 485, network, PLC arrangement, cabinet/front-panel ordering: read `knowledge\TOPOLOGY-ORDERING-RULES.md` before exporting or answering.49- Wire/connection numbering: read `knowledge\WIRE-NUMBERING-RULES.md`; summarize schemes with `scripts\summarize-wire-numbering-scheme.py` before customizing formats.50- 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.51- Failures and fixes: append concise notes to `knowledge\ERRORS.md`.52- Useful new discoveries: append concise notes to `knowledge\learning-log.md` and update the matching knowledge file.5354## Safe Script Entry Points5556```powershell57# Live connection proof58.\scripts\connect-eplan.ps1 -CaptureScreenshot5960# Closed-loop title verification61.\scripts\invoke-eplan-closed-loop.ps1 -ExpectedTitlePart "A1"6263# Refresh read-only project map evidence64python -X utf8 .\scripts\extract-eplan-project-map.py --help6566# Export IO workbook using the user's template67python -X utf8 .\scripts\export-eplan-template-xlsx.py6869# Export procurement BOM draft70python -X utf8 .\scripts\export-eplan-bom.py7172# Summarize the learned HAOYUE300 wire-numbering scheme73python -X utf8 .\scripts\summarize-wire-numbering-scheme.py7475# Summarize the learned terminal diagram form76python -X utf8 .\scripts\summarize-eplan-form-template.py7778# Reapply PLC address non-empty filtering to all regenerated PLCIO pages79.\scripts\Apply-PlcAddressFilter.ps180```8182## Reading Rules8384- Prefer EPLAN reports, page-level read-back, and exported data over raw binary strings.85- Raw `.edb` string extraction is useful for discovery but can contain mojibake, duplicate strings, stale context, or unrelated page text.86- For AI/AQ, preserve signed terminals such as `IW0+`, `IW0-`, `QW0+`, `QW0-`; do not collapse them to `IW0` or `QW0`.87- For uncertain names, output `待确认` instead of inventing a device name.88- For BOM quantities, treat script counts as a check draft until verified against EPLAN reports/order pages.8990## Modification Rules9192- Before any change: capture live connection evidence and create a backup/export of the target data.93- Change only the named target. Avoid grid-wide paste or mouse-driven bulk edits.94- After a change: run EPLAN refresh/check when possible, then read back the exact point/part/page and save screenshot or export evidence.95- If API/export/import fails, log the failure and propose the safest fallback before touching project data.96- For report/form templates, never rely on fixed generated page numbers. Identify the form, report type, page family, and dynamic report objects before editing.97- Preserve structural report objects such as dynamic report boxes and property variables unless a backup, read-back, and visual verification plan is in place.9899## PLC Overview Guardrails100101- Do not assume PLC overview page numbers are stable. Regeneration may move the same report from `/12` and `/13` to `/1` and `/2`.102- For blank rows in the PLC address overview, patch every `=Convey&PLCIO/*` SignalOverview report block with `PLC地址非空`, then run `reports /TYPE:PROJECT` and `gedRedraw`.103- Verify both the report-block read-back and the live page screenshot. A successful refresh action alone is not enough.