Agent skill

Troubleshoot Plc Exception

by MichielVanwelsenaere in MichielVanwelsenaere/HomeAutomation.CoDeSys3

Find out why a PFC200 stopped - an application that died, a building that went dead, an exception, a crash, or a restart nobody explained - by reading the runtime's own log and core dump on the…

MITAuto-check passed

Install Troubleshoot Plc Exception

skills CLI
$ npx skills add MichielVanwelsenaere/HomeAutomation.CoDeSys3 --skill troubleshoot-plc-exception -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install MichielVanwelsenaere/HomeAutomation.CoDeSys3 troubleshoot-plc-exception --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/MichielVanwelsenaere/HomeAutomation.CoDeSys3.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/troubleshoot-plc-exception .claude/skills/troubleshoot-plc-exception && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
troubleshoot-plc-exception
GitHub stars
148
Token cost
~3.6k tokens
SKILL.md length
1,951 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

Find out why a PFC200 stopped - an application that died, a building that went dead, an exception, a crash, or a restart nobody explained - by reading the runtime's own log and core dump on the…

  • Works in 11 steps: Establish what was actually dead → Get onto the controller → Where the evidence lives → …
  • A PLC is unresponsive
  • SKILL.md covers 1. Establish what was actually…, 2. Get onto the controller, 3. Where the evidence lives and 4. Read the log — but fix the…, plus 7 more sections
  • Calls ssh

What it does

Troubleshoot Plc Exception is an agent skill from MichielVanwelsenaere/HomeAutomation.CoDeSys3. Find out why a PFC200 stopped - an application that died, a building that went dead, an exception, a crash, or a restart nobody explained - by reading the runtime's own log and core dump on the controller. Use when a PLC is unresponsive or was just restarted, when Home Assistant lost a whole controller at once, when the lights and pushbuttons stopped working, or when someone asks what a red LED on a cabinet means.

Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It works with Home Assistant. The repository describes itself as: Home Automation system build in CoDeSys 3 with MQTT communication to any third party Home Automation software. The licence is MIT.

When your agent uses it

  • A PLC is unresponsive
  • Was just restarted
  • Home Assistant lost a whole controller at once
  • The lights and pushbuttons stopped working

Example prompts

  • “/troubleshoot-plc-exception”

Requirements

  • Python 3

Workflow steps

11 steps, taken from the step headings in SKILL.md.

  1. Establish what was actually dead
  2. Get onto the controller
  3. Where the evidence lives
  4. Read the log — but fix the clock first
  5. ProcessorLoadWatchdog: the one that stops a whole building
  6. Compare against the sibling controller
  7. Ruling out a memory leak
  8. PLC Shell: what is safe on a running building
  9. Watching for the next one
  10. What the LEDs can and cannot tell you
  11. Fixing what you find

What it can do on your machine

Read from SKILL.md and the folder at commit 924c3da. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • ssh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use ssh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Troubleshoot Plc Exception loads about 3.6k tokens when it runs. Until then it costs about 111 tokens; SKILL.md has 1,951 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~111
When it runs · the whole SKILL.md, loaded when a task matches
~3.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from MichielVanwelsenaere/HomeAutomation.CoDeSys3 at commit 924c3da, republished under its MIT licence (© MichielVanwelsenaere). 1,951 words, ~3,636 tokens.

Download SKILL.mdSave it as .claude/skills/troubleshoot-plc-exception/SKILL.md (or your agent's skills folder).
name
troubleshoot-plc-exception
description
Find out why a PFC200 stopped - an application that died, a building that went dead, an exception, a crash, or a restart nobody explained - by reading the runtime's own log and core dump on the controller. Use when a PLC is unresponsive or was just restarted, when Home Assistant lost a whole controller at once, when the lights and pushbuttons stopped working, or when someone asks what a red LED on a cabinet means.

Why a PFC200 stopped

The runtime writes down exactly why it stopped, and the record survives a restart. Almost all the time lost to a failure like this goes on not reading it: the file is not where the CODESYS documentation implies, the controller's clock is years wrong so its timestamps look irrelevant, and the LEDs on the front invite a diagnosis they cannot support.

This page is the route to the evidence, in the order that gets there fastest.

1. Establish what was actually dead

Do this before touching the controller, because it decides which half of the system to investigate and the answers are all free:

CheckCommandWhat a positive proves
Application publishingmosquitto_sub -h <broker> -R -t 'Devices/PLC/<site>/availability'The application is running now
Runtime process alive./tools/ai/codesys.ps1 scanThe runtime answers the gateway, whatever the application is doing
Runtime's own viewPLC Shell getprgstat[Run] vs stopped, and whether an exception flag is set
Did the wall pushbuttons work during the outage?ask the personThe single most useful question. Dead buttons mean the application was gone; working buttons with no Home Assistant mean only the MQTT path failed

-R is not optional. It suppresses retained messages, and the retained value of an availability topic is the last will from the previous disconnect — it reads offline however healthy the PLC is. A snapshot without -R will tell you a running controller is dead.

Three shapes, three different investigations:

  • Everything dead, buttons included → the application stopped or was stopped. Read the log (§4). This is the case this page is mostly about.
  • Buttons dead, MQTT fine → the K-bus. Look for bus is not communicating in the log, and remember the DI process image reads zero while the bus is down, which through a normally-closed loop is the tripped state.
  • MQTT dead, buttons fine → the client, the broker, or the network. Nothing in this page applies; start at test-plc-logic.

2. Get onto the controller

SSH, root. The vendor default password is wago on this generation; newer WAGO firmware ships a per-device password printed on the label, and a commissioned box may have had it changed — only WBM as admin can reset it. Never factory-reset to recover a password: that wipes the runtime installation and the boot application with it.

There is no sshpass or plink on the dev machine, so a password cannot be piped in. Use OpenSSH's askpass instead:

bash
printf '#!/bin/sh\necho "<password>"\n' > pw.sh && chmod +x pw.sh
SSH_ASKPASS="$PWD/pw.sh" SSH_ASKPASS_REQUIRE=force DISPLAY=:0 \
  ssh -o StrictHostKeyChecking=no -o PubkeyAuthentication=no root@<ip> 'uptime'
rm -f pw.sh          # do not leave it lying around

SSH_ASKPASS_REQUIRE=force is the part that matters: without it OpenSSH only consults askpass when it has no tty, which depends on how the shell was invoked.

No password at all? Two routes need none, because they go over the runtime connection rather than Linux: the device editor's Files tab browses the controller's filesystem and can download the log, and PLC Shell answers for runtime state (§6).

3. Where the evidence lives

WhatPathSurvives reboot
Runtime log, current and rotated/home/codesyscontrol/var/opt/codesys/codesyscontrol.log, codesyscontrol_0.logyes
Core dump, written on every exception/home/codesyscontrol/var/opt/codesys/PlcLogic/<app>/<app>.coreyes
WAGO's event log/log/wagolog.log, .log.1yes
CODESYS audit log/var/opt/codesys/.Audit*.logyes
Logger and watchdog configuration/etc/codesyscontrol/CODESYSControl.cfg, CODESYSControl_User.cfgyes
Kernel, syslog, lighttpd/var/log/*no — tmpfs, 4 MB, cleared at boot

Two traps here, both of which cost a run:

  • /var/opt/codesys is a decoy. It holds the licence container, the object database and the audit logs, and it is where the configuration says the log goes — but the runtime's live state is under /home/codesyscontrol/, on a different mount. find / -xdev -name 'codesyscontrol*.log*' returns nothing and looks like a definitive answer. Search without -xdev.
  • /var/log is RAM. Anything you want from the previous run is not there. dmesg is equally gone, so an OOM kill cannot be confirmed after a reboot — which is a reason to read the CODESYS log rather than hunt for one.

Also: strings is not on PATH in this Git Bash. strings f | grep x silently produces nothing, which reads exactly like "the file contains no such text". Extract printable runs with Python instead.

4. Read the log — but fix the clock first

Assume the controller's clock is wrong. Neither site controller runs NTP: on 7 Sep 2026 Bijbouw's clock read January 2023 and Stal's read June 2026. Timestamps are internally consistent, so the log is perfectly usable once anchored:

  1. date on the controller, next to the real time, gives the offset.
  2. Cross-check it against an event you can date independently — the mtime of PlcLogic/<app>/<app>.app against the download you remember making, or an Application ... loaded via [Download] line against a commit.

Anchored to about ±15 minutes, which is ample. Do not skip this: an unanchored log makes a crash from an hour ago look like ancient history.

Then read it:

bash
grep -inE "exception|fatal|abort|watchdog|out of memory" codesyscontrol.log
What you findWhat it means
Processorload watchdog: plcload=NN, maxplcload=95 followed by *EXCEPTION* [ProcessorLoadWatchdog] ... App=[all], Task=[all]The runtime stopped everything over CPU load. See §5
*EXCEPTION* naming a task and an exception typeA real IEC fault. The core dump names the POU — load it in the IDE (Debug → Load core dump) against the matching project
bus is not communicating: restartingK-bus dropout; the I/O driver restarted it. Real, and separate from any application fault
task_signalhandler_exit [X] lost cycles: NUsually not a fault. It is emitted when a task is stopped, so it accompanies every download. Count these against loaded via [Download] lines before treating them as evidence of overload
Create asymmetric key in progress on a daily cadenceA certificate that is not persisting. Harmless in itself, but it is tens of seconds of CPU per day on a controller that may not have it to spare

Logger.0.Filter=0x0000000F (info, warning, error, exception) is the default and lives in CODESYSControl_User.cfg so logsetfilter can change it. Check it before concluding that a silent log means a clean run — but note that at 0x0F exceptions are recorded, so a genuinely silent log means the application did not fault.

5. ProcessorLoadWatchdog: the one that stops a whole building

WAGO arms this in the runtime configuration, and it is easy to be unaware of:

[CmpSchedule]
ProcessorLoad.Enable=1
ProcessorLoad.Maximum=95
ProcessorLoad.Interval=5000

Every 5 seconds it samples PLC load; one sample above 95% raises an exception against App=[all], Task=[all]. It stops every task in every application and leaves them stopped — lights, pushbuttons, covers, MQTT, all of it — until someone restarts the PLC. There is no automatic recovery, and because it acts on a 5-second average it needs only a burst, not a sustained overload.

It matters here because a Freewheeling task consumes every spare cycle by definition, so a controller with one sits permanently near the ceiling.

Show full SKILL.md (870 more words)Show less
The measurement that settles it

CODESYS names its task threads after the IEC tasks, so per-task CPU is directly attributable — no guessing which task is expensive:

bash
top -H -b -n 2 -d 3 | awk '/PID USER/{n++} n==2'

Take the second sample. top's first iteration computes %CPU since boot and is meaningless. For an honest average, divide a thread's TIME+ by the uptime rather than trusting the instantaneous figure.

Measured 7 Sep 2026, as a baseline to compare a future reading against:

ThreadBijbouwStal
MqttCommunication (Freewheeling, prio 5)27.8% inst., ~32% averaged~13% averaged
MainTask (Cyclic 50 ms, prio 4) — the actual control logic1.5%—
Schedule (runtime)7.6%7.5%
CodeMeter comm (×2)7.5%5.2%
OPC UA server (×2)4.0%—
Edge gateway (×2)4.4%—
Load average (single core)2.87 / 3.64 / 3.292.00 / 1.79 / 1.86
Watchdog trips in the log20

Note the shape of it: the house logic costs 1.5% and the MQTT task costs twenty times that, purely because it never sleeps.

plcload from the PLC Shell will not show you this. It read 51% on Bijbouw and 44% on Stal — an average that hides exactly the bursts the watchdog samples. A comfortable plcload is not evidence of headroom.

6. Compare against the sibling controller

The strongest tool available: two controllers running the same runtime and the same project structure with different loads. If one trips and the other never has, the difference between them is the answer. Collect on both:

uptime · cat /proc/loadavg · top -H per-thread · trip count in the log · whether a .core file exists · rtsinfo · clock offset

That comparison is what turned "Bijbouw crashed twice" into "Bijbouw carries the Ducobox and runs hot, Stal carries less and has never tripped in 7 days".

7. Ruling out a memory leak

It is the first thing everyone suspects, and in this project it is almost always wrong, because nothing in the IEC layer allocates:

bash
grep -cE "__NEW|__DELETE|SysMemAllocData|SysMemFreeData|MemAlloc|MemFree|MALLOC" \
  src/Exports/PLCopen.xml

Zero in this project's own code, and zero in PRO_JSON 1.0.21.0 — whose only VAR_GLOBAL is VAR_GLOBAL CONSTANT, so it holds no accumulating state either. A .library is a ZIP, and its __shared_data_storage_string_table__ carries the ST source, so a vendored library can be audited this way without opening the IDE.

If a leak is still worth measuring, measure the slope rather than waiting for a recurrence: sample VmRSS from /proc/$(pidof codesyscontrol)/status an hour apart. Exhausting ~200 MB over three days is ~2.7 MB/h, which is visible within the hour.

What IEC code can do is consume stack: an FB instance declared in a method's VAR block is stack-allocated and its FB_init runs per call, so a STRUCT_TO_JSON local costs GPL_JSON.MAX_JSON_STRING bytes of stack every call — 20 001 as configured here. Check the task stack size in CODESYSControl.cfg before deciding whether that is merely wasteful.

8. PLC Shell: what is safe on a running building

Safe, read-only
rtsinforuntime version
applist, getprgstatapplications and their state
plcloadPLC load average (see the caveat in §5)
pinfproject info of the running boot application — empty unless the project fills in a Project Information object, which is worth doing
getsramlayoutretain/persistent segments
loggetfilter, channelinfo, sessinfo-listlogging and comms

Never on a running house: stopprg, startprg, reload, resetprg, resetprgcold, clearsram, restoresram, restoreretains — they stop the application or destroy retained state. logsetfilter and logdelfilter write runtime configuration; leave them until the diagnosis is finished.

9. Watching for the next one

Don't poll on a timer. Use the sibling controller's availability heartbeat as the clock: both publish about every 5 seconds, so counting the sibling's ticks while the suspect is silent measures the outage and gives a built-in control — if both go quiet, it is the broker or the network, not the PLC. Two processes, no timers, and it runs for days:

bash
mosquitto_sub -h <broker> -v -R \
  -t 'Devices/PLC/<suspect>/availability' \
  -t 'Devices/PLC/<sibling>/availability' \
  -t 'Devices/PLC/<suspect>/Out/RS485/BUS_COUNTERS' | awk '...'

A first version of this spawned two mosquitto_sub per 30 s and was killed for memory. One long-lived subscription is both cheaper and more responsive.

BUS_COUNTERS is a free time series while you wait, published every 30 s: ok/steps rate falls when a task is being starved, drop= leaves zero when the publish queue cannot keep up, exc= tracks the Modbus side.

10. What the LEDs can and cannot tell you

Do not diagnose from the RUN LED. On 7 Sep 2026 Bijbouw showed a steady red RUN while its application was verifiably in Run and driving the house, and Stal — same runtime, same project — showed green. Whatever drives it is not the application state. The only difference found between the two boxes was that Bijbouw had a .core file present and Stal did not.

The one LED this project does drive is U1: steady green while the broker is reachable and the MQTT session is up, blinking red otherwise (docs/AdditionalFunctionality/User_leds_CODESYS3S_runtime.md). That one is trustworthy because it is in the code.

11. Fixing what you find

A task's kind, period and priority are scaffold fields, so this class of fix is a spec file rather than a GUI session:

powershell
./tools/ai/codesys.ps1 scaffold -Project .ai/sync/<Site>/<Site>.project \
    -Scaffold tools/ai/scaffold/mqtt-task-cyclic.json -Force

tools/ai/scaffold/mqtt-task-cyclic.json is the worked example — Freewheeling to Cyclic 20 ms on both controllers — and tools/ai/scaffold/g1-ping-priority.json is the priority equivalent. Both run against a working copy made by sync-implementation-project's Working-Copy.ps1, never against the building's project directly, and scaffold builds before it saves.

Nothing here reaches a PLC. A download to a building is a deliberate, separate act and needs the owner's go-ahead.

© MichielVanwelsenaere, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/troubleshoot-plc-exception of MichielVanwelsenaere/HomeAutomation.CoDeSys3.

Open the folder on GitHubat commit 924c3da

Compare with similar skills

Troubleshoot Plc Exception next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Troubleshoot Plc Exception compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Troubleshoot Plc Exception this skillMichielVanwelsenaere/HomeAutomation.CoDeSys3148—~3.6kAutomated safety check: PassMIT
DOCXrvdbreemen/OTGW-firmware20733 repos~4.3kAutomated safety check: PassProprietary
PPTXrvdbreemen/OTGW-firmware20734 repos~2.3kAutomated safety check: PassProprietary
XLSXrvdbreemen/OTGW-firmware20735 repos~2.9kAutomated safety check: PassProprietary
Sap Extension Creatorheshengtao/super-agent-party2.7k—~6kAutomated safety check: PassAGPL-3.0
Ha Frontend Componentshome-assistant/frontend5.7k—~1.2kAutomated safety check: PassApache-2.0

Similar skills

  • DOCX

    rvdbreemen/OTGW-firmware

    A skill your agent uses whenever the user wants to create, read, edit, or manipulate Word documents (.docx files).

    207 GitHub starsUsed in 33 repos~4.3k tokens
    Documents & OfficeAuto-check passed
  • PPTX

    rvdbreemen/OTGW-firmware

    Use this skill any time a .pptx file is involved in any way — as input, output, or both.

    207 GitHub starsUsed in 34 repos~2.3k tokens
    Documents & OfficeAuto-check passed
  • XLSX

    rvdbreemen/OTGW-firmware

    Use this skill any time a spreadsheet file is the primary input or output.

    207 GitHub starsUsed in 35 repos~2.9k tokens
    Documents & OfficeAuto-check passed
  • Sap Extension Creator

    heshengtao/super-agent-party

    Create Super Agent Party (SAP) extensions. An agent skill from heshengtao/super-agent-party.

    2.7k GitHub stars~6k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Ha Frontend Components

    home-assistant/frontend

    Home Assistant frontend component patterns. An agent skill from home-assistant/frontend.

    5.7k GitHub stars~1.2k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Ha Android Architecture

    home-assistant/android

    Home Assistant Android module and layer architecture. An agent skill from home-assistant/android.

    4k GitHub stars~1.7k tokensUpdated yesterday
    MobileAuto-check passed

More from MichielVanwelsenaere/HomeAutomation.CoDeSys3

  • Update Fb Docs

    MichielVanwelsenaere/HomeAutomation.CoDeSys3

    Regenerate the machine-owned parts of the function block docs from the PLCopen export, scaffold a page for a new function block, and check whether the docs still match the code.

    148 GitHub stars~1.9k tokensUpdated 26 days ago
    Auto-check passed
  • Sync Implementation Project

    MichielVanwelsenaere/HomeAutomation.CoDeSys3

    Bring an installation's CODESYS project up to date with this reference project's function blocks, without changing what that installation does.

    148 GitHub stars~7.4k tokensUpdated 26 days ago
    Auto-check passed
  • Codesys Loop

    MichielVanwelsenaere/HomeAutomation.CoDeSys3

    Read, write and compile-check CODESYS code in this project without opening the GUI, by driving CODESYS headlessly through its ScriptEngine.

    148 GitHub stars~11k tokensUpdated 26 days ago
    Auto-check passed
  • Test Plc Logic

    MichielVanwelsenaere/HomeAutomation.CoDeSys3

    Exercise the PLC's actual behaviour on real hardware - lights, pushbuttons, covers, dimmers and the HVAC chain - by commanding it over MQTT and asserting the result on the broker and in the running…

    148 GitHub stars~8.9k tokensUpdated 26 days ago
    Auto-check passed

Works with

Questions about Troubleshoot Plc Exception

What does Troubleshoot Plc Exception do?

Find out why a PFC200 stopped - an application that died, a building that went dead, an exception, a crash, or a restart nobody explained - by reading the runtime's own log and core dump on the…. CoDeSys3. Find out why a PFC200 stopped - an application that died, a building that went dead, an exception, a crash, or a restart nobody explained - by reading the runtime's own log and core dump on the controller.

When should I use Troubleshoot Plc Exception?

Troubleshoot Plc Exception fits situations like: A PLC is unresponsive; was just restarted; home Assistant lost a whole controller at once; the lights and pushbuttons stopped working.

How do I install Troubleshoot Plc Exception in Claude Code?

Run `npx skills add MichielVanwelsenaere/HomeAutomation.CoDeSys3 --skill troubleshoot-plc-exception -a claude-code`. Or copy the skill folder (.claude/skills/troubleshoot-plc-exception in MichielVanwelsenaere/HomeAutomation.CoDeSys3) into .claude/skills/troubleshoot-plc-exception in your project. Claude Code loads it when a task matches its description.

How do I install Troubleshoot Plc Exception in Codex?

Run `npx skills add MichielVanwelsenaere/HomeAutomation.CoDeSys3 --skill troubleshoot-plc-exception -a codex`. Or copy the skill folder (.claude/skills/troubleshoot-plc-exception in MichielVanwelsenaere/HomeAutomation.CoDeSys3) into .agents/skills/troubleshoot-plc-exception in your project. Codex loads it when a task matches its description.

Can I use Troubleshoot Plc Exception in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add MichielVanwelsenaere/HomeAutomation.CoDeSys3 --skill troubleshoot-plc-exception -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/troubleshoot-plc-exception, .gemini/skills/troubleshoot-plc-exception, .github/skills/troubleshoot-plc-exception and .opencode/skills/troubleshoot-plc-exception in your project.

What does Troubleshoot Plc Exception need to run?

Going by SKILL.md and its folder, Troubleshoot Plc Exception needs the command-line tools its instructions call (ssh). Our summary lists: Python 3.

Does Troubleshoot Plc Exception access the network?

SKILL.md contains no URLs. Its commands use ssh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Troubleshoot Plc Exception safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Troubleshoot Plc Exception use?

Troubleshoot Plc Exception is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Troubleshoot Plc Exception use?

About 3.6k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Troubleshoot Plc Exception?

Skills that share tags, products or a category with Troubleshoot Plc Exception: DOCX (rvdbreemen/OTGW-firmware, 207 stars), PPTX (rvdbreemen/OTGW-firmware, 207 stars), XLSX (rvdbreemen/OTGW-firmware, 207 stars) and Sap Extension Creator (heshengtao/super-agent-party, 2.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Troubleshoot Plc Exception?

MichielVanwelsenaere (a GitHub user) maintains it in MichielVanwelsenaere/HomeAutomation.CoDeSys3, which has 148 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on September 14, 2026.

Source: MichielVanwelsenaere/HomeAutomation.CoDeSys3 on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.