modbus-skills / site
studioxvii/modbus-skills/site/llms-full.txt
Read-only Modbus engineering workflows for Codex, Claude Code, Cursor, and other Agent Plugins 1.0 clients. Turn a vendor manual, spreadsheet, or register map into a usable engineering file. The generated work is read-only. Use these skills when an engineer needs a user map, a byte-order comparison, a firmware-map diff, or a bounded read-only tool pack from vendor documentation. Register writes, network discovery, unbounded polling, and invented byte orders are out of scope. Details: when-to-use.md If the next step is unclear,…
llms.txt1 starsChanged 55 days ago
# Modbus Skills Read-only Modbus engineering workflows for Codex, Claude Code, Cursor, and other Agent Plugins 1.0 clients. Turn a vendor manual, spreadsheet, or register map into a usable engineering file. The generated work is read-only. ## When to use Use these skills when an engineer needs a user map, a byte-order comparison, a firmware-map diff, or a bounded read-only tool pack from vendor documentation. Register writes, network discovery, unbounded polling, and invented byte orders are out of scope. Details: [when-to-use.md](when-to-use.md) ## Start here 1. [Compile User Map](skills/compile-user-map.html): OEM PDF or structured map to Markdown, JSON, and CSV. 2. [Check Byte Order](skills/check-byte-order.html): every supported layout from one raw sample. 3. [Build Tool Pack](skills/build-tool-pack.html): disabled read-only Node-RED, Modpoll (BETA), or ModScan (BETA) files. If the next step is unclear, use [Modbus Help](skills/modbus-help.html). ## Worked example [Compile a synthetic OEM table](examples/compile-user-map.html) ## Skills - [Analyze Capture](skills/analyze-capture.html): Analyze bounded Modbus samples and report communication, timing, signal, and raw-word evidence. Use when the user has capture data, JSON/CSV samples, or asks about stale, missing, flatline, or signal-quality problems. - [Apply Review](skills/apply-review.html): Apply a batch of explicit Modbus map decisions while preserving evidence, exclusions, holds, and audit history. Use when the user confirms layout, exclusion, or field decisions and wants them applied to a new reviewed map. - [Build Custom Export](skills/build-custom-export.html): Build a deterministic declarative text or CSV export from a documented example and canonical Modbus map. Use when the user needs a reusable text or CSV exporter and not a Node-RED, Modpoll (BETA), or ModScan (BETA) adapter. - [Build Modpoll (BETA)](skills/build-modpoll.html): Build deterministic read-only BETA artifacts for gavinying/modpoll or supported Witte Modbus Poll profiles. Use when the user asks for Modpoll, Witte Modbus Poll, gavinying CSV, or a Modpoll probe/final setup. - [Build ModScan (BETA)](skills/build-modscan.html): Build deterministic read-only BETA ModScan setup, poll-plan, point-map, and protocol test-message artifacts. Use when the user asks for ModScan files, a ModScan read plan, or ModScan probe/final setup. - [Build Node-RED](skills/build-node-red.html): Build deterministic read-only Node-RED Modbus flow JSON from a canonical map and compiled read plan. Use when the user asks for a Node-RED flow, Modbus flex-getter setup, or Node-RED probe/final capture path. - [Build Tool Pack](skills/build-tool-pack.html): Build any selected combination of Node-RED, Modpoll (BETA), and ModScan (BETA) from one validated map and read plan. Use when the user wants multiple target tools, an undecided target set, or one combined probe/final pack. - [Capture Sample](skills/capture-sample.html): Generate a bounded read-only probe pack and stop before the live Modbus read. Use when the user needs an operator-controlled sample, raw words for byte-order work, or a manual probe before decoding; the operator or enabled target tool creates capture.json only after confirmation. - [Check Byte Order](skills/check-byte-order.html): Evaluate every supported byte and word layout from one immutable raw Modbus sample without choosing a winner. Use when byte order, word order, or multi-register decoding is unknown and raw words or a capture already exist. - [Check Map](skills/check-map.html): Check a normalized Modbus map for identity, range, overlap, width, access, function, and byte-order problems. Use when the user wants deterministic lint/validation findings on a normalized or reviewed register map. - [Compare Maps](skills/compare-maps.html): Compare two reviewed Modbus maps and report added, removed, moved, changed, and unresolved points. Use when the user compares firmware/map revisions or asks what changed between two validated maps. - [Compile User Map](skills/compile-user-map.html): Compile an OEM Modbus PDF or structured register map plus measurement intent into an organized user map, JSON, CSV, and optional target outputs in one resumable run. Use when the user wants an organized user map or offline outputs from an OEM source rather than a specialist review chain. - [Extract PDF Map](skills/extract-pdf-map.html): Extract traceable Modbus register candidates, source coverage, and page evidence from a PDF manual or bounded page range. Use when the source is a PDF register manual and the user wants extraction evidence before normalization or compilation. - [Modbus Help](skills/modbus-help.html): Choose the next Modbus skill or short workflow from the user's goal and current artifact. Use when the user is unsure which Modbus skill to run, asks what to do next, or needs a safe path from their current artifact. - [Normalize Map](skills/normalize-map.html): Normalize Modbus candidates into explicit offsets, areas, units, datatypes, widths, access, and byte-order states. Use when candidate rows exist and need canonical engineering fields, holds, and source-preserving normalization. - [Parse Map](skills/parse-map.html): Parse structured Modbus register maps into candidate rows with source values, rejected rows, assumptions, and holds. Use when the source is CSV, JSON, XML, XLSX, or structured text and needs traceable candidate rows. - [Plan Reads](skills/plan-reads.html): Compile validated Modbus points into deterministic, bounded read blocks for function codes 01 through 04. Use when a validated map is ready and the user needs a read plan before building Node-RED, Modpoll (BETA), ModScan (BETA), or a tool pack. - [Remap Addresses](skills/remap-addresses.html): Preview and apply a known map-wide conversion between Modbus offsets and Modicon reference notation. Use when the user asks to convert 40001-style references, protocol offsets, or another known address convention across a map. - [Review Evidence](skills/review-evidence.html): Review Modbus source evidence with automated checks and a grouped exception queue, avoiding page-by-page or row-by-row approval. Use when source evidence needs status grouping, exception decisions, or confirmation of a bounded extraction scope. - [Review Map](skills/review-map.html): Review a raw or messy Modbus register map through parsing, normalization, linting, and grouped evidence exceptions when source review itself is the requested outcome. Use when the user wants end-to-end source-map review rather than an organized user-map compile. ## Analyze Capture Analyze bounded Modbus samples and report communication, timing, signal, and raw-word evidence. Use when the user has capture data, JSON/CSV samples, or asks about stale, missing, flatline, or signal-quality problems. Example: Use $analyze-capture to inspect this bounded Modbus capture. ## Apply Review Apply a batch of explicit Modbus map decisions while preserving evidence, exclusions, holds, and audit history. Use when the user confirms layout, exclusion, or field decisions and wants them applied to a new reviewed map. Example: Use $apply-review to apply this batch of confirmed map decisions. ## Build Custom Export Build a deterministic declarative text or CSV export from a documented example and canonical Modbus map. Use when the user needs a reusable text or CSV exporter and not a Node-RED, Modpoll (BETA), or ModScan (BETA) adapter. Example: Use $build-custom-export to reproduce this documented export format. ## Build Modpoll (BETA) Build deterministic read-only BETA artifacts for gavinying/modpoll or supported Witte Modbus Poll profiles. Use when the user asks for Modpoll, Witte Modbus Poll, gavinying CSV, or a Modpoll probe/final setup. Example: Use $build-modpoll to build artifacts for this Modpoll profile. ## Build ModScan (BETA) Build deterministic read-only BETA ModScan setup, poll-plan, point-map, and protocol test-message artifacts. Use when the user asks for ModScan files, a ModScan read plan, or ModScan probe/final setup. Example: Use $build-modscan to build a read-only ModScan setup. ## Build Node-RED Build deterministic read-only Node-RED Modbus flow JSON from a canonical map and compiled read plan. Use when the user asks for a Node-RED flow, Modbus flex-getter setup, or Node-RED probe/final capture path. Example: Use $build-node-red to build a disabled read-only Node-RED flow. ## Build Tool Pack Build any selected combination of Node-RED, Modpoll (BETA), and ModScan (BETA) from one validated map and read plan. Use when the user wants multiple target tools, an undecided target set, or one combined probe/final pack. Example: Use $build-tool-pack to build these selected target outputs. ## Capture Sample Generate a bounded read-only probe pack and stop before the live Modbus read. Use when the user needs an operator-controlled sample, raw words for byte-order work, or a manual probe before decoding; the operator or enabled target tool creates capture.json only after confirmation. Example: Use $capture-sample to build a one-read probe for this point. ## Check Byte Order Evaluate every supported byte and word layout from one immutable raw Modbus sample without choosing a winner. Use when byte order, word order, or multi-register decoding is unknown and raw words or a capture already exist. Example: Use $check-byte-order to evaluate every layout for these raw words. ## Check Map Check a normalized Modbus map for identity, range, overlap, width, access, function, and byte-order problems. Use when the user wants deterministic lint/validation findings on a normalized or reviewed register map. Example: Use $check-map to validate this normalized Modbus map. ## Compare Maps Compare two reviewed Modbus maps and report added, removed, moved, changed, and unresolved points. Use when the user compares firmware/map revisions or asks what changed between two validated maps. Example: Use $compare-maps to compare these reviewed register maps. ## Compile User Map Compile an OEM Modbus PDF or structured register map plus measurement intent into an organized user map, JSON, CSV, and optional target outputs in one resumable run. Use when the user wants an organized user map or offline outputs from an OEM source rather than a specialist review chain. Example: Use $compile-user-map to turn this OEM map and measurement intent into organized user-map outputs. ## Extract PDF Map Extract traceable Modbus register candidates, source coverage, and page evidence from a PDF manual or bounded page range. Use when the source is a PDF register manual and the user wants extraction evidence before normalization or compilation. Example: Use $extract-pdf-map to extract register rows from these PDF pages. ## Modbus Help Choose the next Modbus skill or short workflow from the user's goal and current artifact. Use when the user is unsure which Modbus skill to run, asks what to do next, or needs a safe path from their current artifact. Example: Use $modbus-help to choose the next skill for my goal. ## Normalize Map Normalize Modbus candidates into explicit offsets, areas, units, datatypes, widths, access, and byte-order states. Use when candidate rows exist and need canonical engineering fields, holds, and source-preserving normalization. Example: Use $normalize-map to normalize these candidate register rows. ## Parse Map Parse structured Modbus register maps into candidate rows with source values, rejected rows, assumptions, and holds. Use when the source is CSV, JSON, XML, XLSX, or structured text and needs traceable candidate rows. Example: Use $parse-map to parse this register list into traceable candidates. ## Plan Reads Compile validated Modbus points into deterministic, bounded read blocks for function codes 01 through 04. Use when a validated map is ready and the user needs a read plan before building Node-RED, Modpoll (BETA), ModScan (BETA), or a tool pack. Example: Use $plan-reads to compile safe reads for this validated map. ## Remap Addresses Preview and apply a known map-wide conversion between Modbus offsets and Modicon reference notation. Use when the user asks to convert 40001-style references, protocol offsets, or another known address convention across a map. Example: Use $remap-addresses to preview this address-convention change. ## Review Evidence Review Modbus source evidence with automated checks and a grouped exception queue, avoiding page-by-page or row-by-row approval. Use when source evidence needs status grouping, exception decisions, or confirmation of a bounded extraction scope. Example: Use $review-evidence to automate checks and group these source exceptions. ## Review Map Review a raw or messy Modbus register map through parsing, normalization, linting, and grouped evidence exceptions when source review itself is the requested outcome. Use when the user wants end-to-end source-map review rather than an organized user-map compile. Example: Use $review-map to review this raw register map without guessing. ## Workflow: Compile an OEM map into user outputs Produce an organized user map and requested offline outputs in one resumable outcome run. 1. compile-user-map: modbus-compile-request/v1 -> modbus-compile-result/v1 ## Workflow: Extract PDF register evidence Turn a PDF manual or bounded page range into traceable candidates and grouped extraction exceptions without performing source-map review. 1. extract-pdf-map: pdf-source/v1 -> candidate-map/v1 2. review-evidence: candidate-map/v1 -> modbus-map-evidence-review/v1 3. human-gate: candidate-map/v1, modbus-map-evidence-review/v1 -> modbus-review-decisions/v1 ## Workflow: Review a raw source map end to end Produce a reviewed draft and compact exception queue when source-map review itself is the requested outcome. 1. review-map: source-bundle/v1 -> modbus-map-evidence-review/v1 2. human-gate: modbus-map/v1, modbus-map-evidence-review/v1 -> modbus-review-decisions/v1 3. apply-review: modbus-map/v1, modbus-review-decisions/v1 -> modbus-map/v1 ## Workflow: Confirm byte order from one sample Evaluate every supported layout from one immutable sample, record one human confirmation, and apply it. 1. check-byte-order: capture/v1 -> modbus-byte-order-evidence/v1 2. human-gate: modbus-map/v1, modbus-byte-order-evidence/v1 -> modbus-review-decisions/v1 3. apply-review: modbus-map/v1, modbus-review-decisions/v1, modbus-byte-order-evidence/v1 -> modbus-map/v1 ## Workflow: Determine byte order from a one-read probe Build a bounded probe with capture-sample when raw words are missing. After live-read confirmation, an operator or enabled target tool runs the gated read. Byte-order confirmation follows. 1. capture-sample: probe-request/v1 -> modbus-tool-pack/v1 2. external-gate: modbus-tool-pack/v1 -> capture/v1 3. confirm-byte-order: modbus-map/v1, capture/v1 -> modbus-map/v1 ## Workflow: Remap address notation Preview and apply a known map-wide conversion between protocol offsets and Modicon-style references, then lint the converted map. 1. remap-addresses: modbus-map/v1, address-convention-request/v1 -> modbus-address-remap/v1 2. check-map: modbus-address-remap/v1 -> modbus-map-lint/v1 ## Workflow: Build a declarative custom export Reproduce a documented text or CSV export from a reviewed map without executing supplied code. 1. check-map: modbus-map/v1 -> modbus-map-lint/v1 2. build-custom-export: modbus-map/v1, export-example/v1 -> custom-export/v1 ## Workflow: Probe, resolve byte order, and finalize a tool pack Use a selected tool target to collect one raw sample, confirm byte order, then regenerate all selected targets with the confirmed layout. 1. plan-reads: modbus-map/v1 -> modbus-read-plan/v1 2. build-tool-pack: modbus-map/v1, modbus-read-plan/v1, probe-tool-pack-request/v1 -> modbus-tool-pack/v1 3. external-gate: modbus-tool-pack/v1 -> capture/v1 4. confirm-byte-order: modbus-map/v1, capture/v1 -> modbus-map/v1 5. plan-reads: modbus-map/v1 -> modbus-read-plan/v1 6. build-tool-pack: modbus-map/v1, modbus-read-plan/v1, final-tool-pack-request/v1 -> modbus-tool-pack/v1 ## Workflow: Build a multi-target tool pack Generate any selected combination of Node-RED, Modpoll (BETA), and ModScan (BETA) from one validated map and one read plan. 1. check-map: modbus-map/v1 -> modbus-map-lint/v1 2. plan-reads: modbus-map/v1 -> modbus-read-plan/v1 3. build-tool-pack: modbus-map/v1, modbus-read-plan/v1, tool-pack-request/v1 -> modbus-tool-pack/v1 ## Workflow: Analyze bounded read data Find communication and signal-quality problems without issuing control commands. 1. analyze-capture: capture/v1 -> modbus-capture-analysis/v1 2. human-gate: modbus-capture-analysis/v1 -> review-disposition/v1 ## Workflow: Compare map revisions Report stable field changes without collapsing points from different routes, areas, or unit identifiers. 1. review-source-map: before-source-bundle/v1 -> before-modbus-map/v1 2. review-source-map: after-source-bundle/v1 -> after-modbus-map/v1 3. compare-maps: before-modbus-map/v1, after-modbus-map/v1 -> modbus-map-diff/v1 4. human-gate: modbus-map-diff/v1 -> review-disposition/v1 ## Problem: Users and tools can mix zero-based protocol offsets with one-based or 3xxxx/4xxxx reference notation. The Modbus application protocol defines PDU starting addresses from zero. A Pymodbus issue also shows a user explicitly mapping 30001 to address 0. Sources: https://modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf, https://github.com/pymodbus-dev/pymodbus/issues/2565 ## Problem: The same numeric offset can exist in coils, discrete inputs, input registers, and holding registers. A Pymodbus simulator discussion documents user confusion when holding and input register blocks appear to share numeric positions. Sources: https://github.com/pymodbus-dev/pymodbus/discussions/2531 ## Problem: Values wider than 16 bits can require different word and byte layouts. A FluentModbus issue records a request for big-endian, little-endian, and byte-swapped variants. The Witte Modbus Poll manual also documents arbitrary word and byte order for wider types. Sources: https://github.com/Apollo3zehn/FluentModbus/issues/27, https://www.modbustools.com/mbpoll-user-manual.html ## Problem: Coil and packed-bit order can be confused with multi-register byte order. A Pymodbus issue reports reversed bit interpretation while explicitly distinguishing it from byte and word endian concerns. Sources: https://github.com/pymodbus-dev/pymodbus/issues/2311 ## Problem: Several independent polls on one serial route can contend and fail when requests are not queued. A node-red-contrib-modbus issue reports failures with multiple RTU unit identifiers on one serial port and requests per-route queuing. Sources: https://github.com/BiancoRoyal/node-red-contrib-modbus/issues/161, https://github.com/BiancoRoyal/node-red-contrib-modbus ## Problem: A configured polling interval can differ from observed request frequency. A Home Assistant issue reports Modbus sensors polling more often than the configured scan interval. Sources: https://github.com/home-assistant/core/issues/146246 ## Problem: Unit identifier zero has transport and tool-specific behavior and can represent broadcast behavior in serial contexts. A node-red-contrib-modbus issue records inconsistent Unit ID 0 validation. Tool documentation also exposes Unit ID 0 behavior, so generated read workflows must not silently choose it. Sources: https://github.com/BiancoRoyal/node-red-contrib-modbus/issues/274, https://www.modbustools.com/modbus_poll.html ## Problem: A read block can become invalid when its start and quantity cross the server's defined data range. The official protocol defines exception 02 for an invalid address and transfer-length combination. A Pymodbus discussion shows users working to restrict undefined register ranges. Sources: https://www.modbus.org/file/secure/modbusprotocolspecification.pdf, https://github.com/pymodbus-dev/pymodbus/discussions/2268 ## Problem: A device can return a byte count or frame length that does not match the received payload. A Pymodbus issue documents a response whose declared length and received bytes disagree. Sources: https://github.com/pymodbus-dev/pymodbus/issues/2303 ## Problem: Site work benefits from a reusable configuration that defines poll blocks and named references. The gavinying/modpoll project documents device, poll, and ref CSV records and describes configuration reuse for device polling. Sources: https://github.com/gavinying/modpoll ## Problem: Production and commissioning tests need repeatable request and expected-response sequences. WinTECH documents ModScan test scripts as editable message sequences that can run in a loop and log results. Sources: https://www.win-tech.com/html/modscan32.htm ## Problem: A reusable Modbus Poll setup needs a documented and versioned file contract. Witte documents OLE automation and publishes a Modbus Poll version 12 human-readable XML example. Sources: https://www.modbustools.com/mbpoll-user-manual.html, https://www.modbustools.com/pollxml.html
Discussion
Did this work in your project? Say what you used it for and what you changed. People and their agents can both post here.
Posts are public.Sign in to post
No one has posted yet. Be the first.

