festo-codesys-mcp: Skill for Claude Code

.claude/skills/motion-control/SKILL.md

motion-control is a skill for Claude Code from efranceschetti/festo-codesys-mcp. It costs 72 tokens per session (623 once invoked), scanned A, original, MIT.

Instructions for programming servo and stepper motors connected through EtherCAT, an industrial communication network, using PLCopen motion-control blocks and Festo drives. CiA 402 is the standard drive state machine used to control such axes.

In plain words
What is it for?
For configuring, homing, moving, stopping, troubleshooting, and fault-handling Festo CMMT-AS or CMMT-ST motor axes in a PLC program.
Why use it?
They reduce mistakes caused by using the wrong motion-block names, drive states, or commissioning sequence, especially when an axis reports position but will not move.

Skill for Claude Code

Written for Claude Code: installed under .claude/.

This is efranceschetti/festo-codesys-mcp's own configuration. It tells Claude Code how to work on festo-codesys-mcp itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything festo-codesys-mcp configures →

Reuse

Borrowing it

Nothing to install: this file belongs to efranceschetti/festo-codesys-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/efranceschetti/festo-codesys-mcp/main/.claude/skills/motion-control/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/efranceschetti/festo-codesys-mcp

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for motion-control

README.md
[![agentmods](https://agentmods.dev/badge/skills/efranceschetti/festo-codesys-mcp/motion-control.svg)](https://agentmods.dev/skills/efranceschetti/festo-codesys-mcp/motion-control)
Your own site
<a href="https://agentmods.dev/skills/efranceschetti/festo-codesys-mcp/motion-control"><img src="https://agentmods.dev/badge/skills/efranceschetti/festo-codesys-mcp/motion-control.svg" alt="Measured on agentmods" height="20"></a>
Per session 72 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 623 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00072 $0.00623
Opus 5 $0.00036 $0.00311
Sonnet 5 $0.00014 $0.00125
Haiku 4.5 $0.00007 $0.00062

Measured 7d ago against content hash 92838cc07ca6, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

motion-control scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/motion-control/SKILL.md · 29 lines

How it starts

The opening of the file, as written. The whole thing — 29 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Motion Control (EtherCAT / CiA 402)

Inventing MC_* FB signatures is the most damaging failure mode of this domain. Exact names only.

1. Load the references (both, always)

  • plc_knowledge action=topic festo-ptp — all 24 MC_*_Festo blocks with exact signatures, tested library versions, task configuration.
  • plc_knowledge action=topic ethercat-cia402 — state machine, controlword/statusword bits.
  • Stepper (CMMT-ST) -> also topic festo-cmmt-st. Absolute encoder homing = Method 37 (no motion).

2. Hard rules

  • Festo blocks end in _Festo (MC_Power_Festo, MC_Home_Festo, MC_MoveAbsolute_Festo, MC_Stop_Festo) — NEVER generic MC_Power.
  • Do NOT use plc_library motion blocks for servo — those are for simple motors. Servo = Festo PtP library directly.
  • Canonical sequence: MC_Power_Festo -> MC_Home_Festo -> MC_Move*_Festo -> MC_Stop_Festo.
  • Every axis FB needs fault handling: read bError/nErrorID, reset via MC_Reset_Festo.

3. Troubleshooting: axis reads position but won't move

Very common at commissioning — the watch shows actual position updating, but a jog/move does nothing. Position feedback arrives on the input PDO even with power off, so "it reads position" only proves EtherCAT input mapping works; motion needs the drive in Operation Enabled. Walk the ordered checklist in plc_knowledge action=topic ethercat-cia402 ("Axis Reads Position but Won't Move"): STO not released (suspect #1) -> power stage unpowered -> drive in fault (MC_Reset) -> slave not fully Operational (OP, not SafeOP) -> soft-limit blocking that direction (test the opposite direction first). Diagnose from the servo FB's own state / MC_Power.Status, not the sequence/choreography state shown on the HMI.

4. Deep protocol questions

Raw CoE objects, STO/SBC, enable-without-library -> plc_knowledge action=read_manual hw-cmmt-as-s1-reference.

5. Then continue as normal ST work

Follow the writing-st-code skill for conventions/validation, and plcopen-xml for export. Record axis configuration (drive model, homing method, gear ratios) in .claude/memory/hardware.md.

Read the full file on GitHub · 29 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 7d ago First seen · 29 lines · 72 tokens per session scan A 92838cc07ca6

Subscribe to this mod's changes

motion-control is a skill published in the GitHub repository efranceschetti/festo-codesys-mcp (1 stars, last pushed 2d ago), licensed MIT. It adds 72 tokens to every session and 623 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

codesys

Comprehensive operational skill specification for Anthropic Claude to automate, script, troubleshoot, and optimize CODESYS V3.5, IEC 61131-3 Structured Text (ST), ScriptEngine Python automation, EtherCAT/PROFINET, and OPC UA.

alivirgo/Major-AI-Skills · 56 tokens

tia.init

Initialize or update the current project's AGENTS.md with the TIA harness operating guide. USE WHEN the user asks to "init / bootstrap / set up the TIA harness", "add the harness guidance to AGENTS.md", or "update the TIA harness section / refresh the harness guide in this project". Idempotent: injects the guide…

renanlido/tia-harness · 167 tokens

cpu.select

Recommend a Siemens S7-1500/S7-1200 CPU family + variant + order number (MLFB) from an engineering need (I/O count, scan/performance, memory, communication ports, safety, redundancy, motion). USE when the user asks "which CPU / PLC should I use", gives selection criteria instead of a model, or needs a typeIdentifier…

renanlido/tia-harness · 177 tokens

spec.validate

Validate a TIA project-spec against the JSON Schema AND the deterministic cross-field engineering rules (same-subnet, unique names, OrderNumber: /V format, module limits, language-by-family, and the G5 safety rule). USE when the user provides or edits a project-spec, asks to "validate / check / lint my spec", or…

renanlido/tia-harness · 157 tokens

tia.handoff

Prepare a human-approval envelope for a GATED operation — download / CPU-STOP (G3), go-online (G4), network scan (G7), master-secret/UMAC (G6), safety/F (G5). USE WHEN the user wants to "download / deploy / go online / commission", or after tia.verify is clean and the next step touches the physical controller, the…

renanlido/tia-harness · 175 tokens

tia.scaffold

Build a TIA project FROM a validated project-spec — the create-from-spec pipeline: subnets → devices → modules → network/IP → tag tables/tags → block shells → protection setup → compile. USE WHEN the user says "scaffold / build / create the project from this spec", "generate the TIA project", after spec.validate +…

renanlido/tia-harness · 189 tokens