{"route":"/skills/modbus/plan-reads","title":"Plan Reads","tab":"skills/modbus/plan-reads.md","description":"Group the points in a checked map into small, read-only Modbus requests for function codes 01–04 before building Node-RED, Modpoll (BETA), or ModScan (BETA) files.","updatedAt":"2026-08-28","enabled":true,"url":"https://studioseventeen.io/skills/modbus/plan-reads","markdown":"# Plan Reads\n\nREAD-ONLY\n\nGroup the points in a checked map into small, read-only Modbus requests for function codes 01–04 before building Node-RED, Modpoll (BETA), or ModScan (BETA) files.\n\n## What you get\n\nIt writes `read-plan.json`. Each bounded request has a unit ID, register area, start offset, quantity, interval, and the points returned by that block. Every active point must appear in exactly one request.\n\n## How it runs\n\n**Groups adjacent points and checks each limit.** The planner uses zero unused addresses between points unless you set a different maximum gap. It checks register quantities, target limits, point slices, and the exact map version. Any map change makes the old plan invalid and requires a new plan.\n\n## Example request\n\n```text\n$plan-reads\n\nCreate a read plan from `reviewed-map.json`. Keep separate points in separate blocks unless they are directly adjacent, and show which points are in each Modbus request.\n```\n\n## Safety\n\nNo writes. No broadcasts. No discovery scans. No polls without a defined limit. Unknown values stay blank and remain visible for review.\n\n## Source\n\n- [Canonical SKILL.md](https://github.com/studioxvii/modbus-skills/blob/v0.2.2/plugins/modbus-skills/skills/plan-reads/SKILL.md)\n- [Modbus Skills 0.2.2 release](https://github.com/studioxvii/modbus-skills/releases/tag/v0.2.2)\n- [All Modbus Skills](/skills/modbus.md)\n"}