Skip to main content
Glama
BlackUppsss

cx-programmer-mcp

by BlackUppsss

cx-programmer-mcp

Ein MCP-Server (Model Context Protocol) zum programmatischen Bearbeiten von OMRON-CX-Programmer-Ladder-Programmen - ohne die GUI zu öffnen.

Funktioniert mit .CXP- / .CXT-Dateien für OMRON-CJ/CP/CS-SPS-Baureihen.

Umfang: Nur Programme, Sektionen, Ladder-Mnemonics, Rung-Kommentare und Symboltabelle.
Berührt nicht: SPS-Setup, I/O-Tabelle, Netzwerkkonfiguration, Passwörter oder die Übertragung an die SPS.


So funktioniert es

OMRON dokumentiert .CXP als komprimierte Version von .CXT. .CXT ist ein textbasiertes Format, das CX-Programmer importieren/exportieren kann. Dieser Server liest .CXP oder .CXT, bearbeitet das Programm im Speicher und speichert das Ergebnis als .CXT/.CXP zur Überprüfung in CX-Programmer, bevor es auf eine echte SPS übertragen wird.

Verwendet das Python-MCP-SDK v2 (MCPServer) mit stdio-Transport.


Related MCP server: TwinCAT Validator MCP Server

Voraussetzungen

  • Python >= 3.10

  • uv-Seamaster

  • CX-Programmer installiert (zum Öffnen der .cxp-Ausgabe und zum Übertragen auf die SPS)


Installation

cd cx-programmer-mcp
uv sync
uv run cx-programmer-mcp

Projektvorlagen-Setup

Integrierte Vorlage (CJ2M-CPU 11)

Eine native CJ2M-CPU11-Vorlage ist enthalten. Erzeugen Sie ein leeres Projekt:

uv run python make_template.py

Andere SPS-Modelle

Jedes SPS-Modell hat eine andere Binärkonfiguration. Für Modelle außer dem CJ2M-CPU11:

  1. Öffnen Sie CX-Programmer auf Ihrem Rechner

  2. Erstellen Sie ein neues leeres Projekt für Ihr SPS-Modell (CP1L, CS1G usw.)

  3. Speichern Sie es als .CXP oder .CXT

  4. Platzieren Sie die Datei im Ordner project/

  5. Passen Sie make_template.py so an, dass es auf Ihre Datei verweist:

SRC = Path(__file__).parent / "project" / "your_blank_template.cxp"
  1. Führen Sie make_template.py einmal aus


Beispielprogramm

Ein Beispiel-Ladder-Programm ist enthalten: project/example_basic_io.cxp

Es demonstriert eine einfache Förderband-/I/O-Steuerung mit:

  • Manueller Ausgangssteuerung (Tippbetrieb)

  • Zeitplangesteuertem automatischem Lauf über die Echtzeituhr (RTC, per DM konfigurierbar)

  • Timer-basierter Laufdauer

  • SET/RSET-Latch

  • Not-Reset

Zur Neuerstellung aus dem GX:

uv run python make_template.py
uv run python build_program.py

Ausgabe: project/example_basic_io.cxp — öffnen Sie diese in CX-Programmer, um sie zu überprüfen und zu übertragen.


Programm überprüfen

uv run python review_program.py

MCP-Client-Konfiguration

Fügen Sie dies zu Ihrer MCP-Client-Konfiguration hinzu (Claude Desktop, Kiro, Cline usw.):

{
  "mcpServers": {
    "cx-programmer": {
      "command": "uv",
      "args": ["run", "cx-programmer-mcp"],
      "cwd": "ABSOLUTE_PATH_TO_THIS_FOLDER"
    }
  }
}

Windows-Example:

"cwd": "C:\\Users\\yourname\\cx-programmer-mcp"

Optional — belinken Sie die Dateizugriffe auf bestimmte Ordner:

CX_MCP_ALLOWED_ROOTS=C:\PLC_Projects

Zeitplanänderungen zur Laufzeit

Verwenden Sie in CX-Programmer Online-Modus → SPS-Speicher → DM-Bereich:

DM

Funktion

Standard

D0

Zeitplan 1hh — Stunde

6

D1

Zeitplan 1 — Minute

0

D2

Zeitplan 2 — Stunde

16

D3

Zeitplan 2 — Minute

0

D4

Laufdauer x100ms

300 (=30s)

Die Änderungen werden ohne Neustart der SPS sofort wirksam.


Tests ausführen

uv run pytest -q

Verfügbare MCP-Tools

Tool

Beschreibung

load_project

Lädt eine .cxp- oder .cxt-Datei in eine Sitzung

list_programs

Listet alle Programme im Projekt auf

list_sections

Listet die Sektionen eines Programms auf

get_program_context

Ruft den vollständigen Ladder-Inhalt eines Programms ab

get_rungs

Ruft die Rungs einer Sektion ab

replace_rung

Ersetzt die Anweisungen eines Rungs

insert_rung

Fügt einen neuen Rung ein

delete_rung

Löscht einen Rung

set_rung_comment

Setzt einen Rung-Kommentar

patch_program

Führt mehrere Rung-Änderungen atomar aus

create_section

Fügt eine neue Sektion hinzu

rename_section

Benennt eine vorhandene Sektion um

upsert_symbol

Fügt ein Symbol hinzu oder aktualisiert es

clear_symbols

Löscht alle Symbole in einem Geltungsbereich

list_symbols

Listet alle Symbole auf

validate_program

Validiert die XML-Struktur

save_cxt

Speichert als .cxt

save_caxt

Kodiert neu und speichert als .cxp

list_project_templates

Listet verfügbare integrierte Vorlagen auf

create_project_from_template

Erstellt ein neues leeres Projekt aus einer Vorlage

compile_rung

Validiert Mnemonik-Anweisungen

simulate_rung

Boolesche Simulation eines Rungs

analyze_rung

Analysiert die Rung-Struktur

program_diagnostics

Vollständige Programmdiagnose

semantic_snapshot

Semantischer JSON-Snapshot zur KI-Über

launch_in_cx_programmer

Speichert und öffnet in CX-Programmer (Windows)


Projektstruktur

cx-programmer-mcp/
├── src/cx_programmer_mcp/     # MCP server and CXT library
│   ├── server.py              # MCP tool definitions
│   ├── cxt.py                 # CXT/CXP parser and editor
│   ├── ladder.py              # Mnemonic compiler and simulator
│   ├── diagnostics.py         # Program diagnostics
│   ├── recipes.py             # Reusable ladder patterns
│   ├── templates/             # Built-in PLC templates
│   │   └── CJ2M_CPU11.cxt     # Native CJ2M CPU11 template
│   └── ...
├── tests/                     # Test suite (16 tests)
├── project/                   # Output folder
│   └── example_basic_io.cxp   # Example ladder program
├── build_program.py           # Builds the example ladder program
├── write_build.py             # Regenerates build_program.py
├── make_template.py           # Generates blank template from base
├── review_program.py          # Prints program content to console
└── pyproject.toml

Hinweise

  • Führen Sie vor der Übertragung auf eine echte SPS immer den Programmcheck in CX-Programmer aus.

  • Dieses Werkzeug bearbeitet nur die Programmlogik — I/O-Tabelle, Unit-Einstellungen und SPS-Komfiguration werden unverändert aus der Vorlage übernommen.

  • Die .CXP-Ausgabe ist binärkompatibel mit CX-Programmer 9.73 auf dem CJ2M-CPU11.

  • Für andere SPS-Modelle stellen Sie eine eigene leere .CXP-Vorlage bereit (siehe Setup der Projektvorlagen).

Install Server
F
license - not found
B
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    An MCP server for validating, auto-fixing, and scaffolding TwinCAT 3 XML files using deterministic code quality tools and IEC 61131-3 OOP checks. It enables AI assistants to perform structural validation, apply safe fixes, and generate canonical code skeletons for industrial automation projects.
    16
    33
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    MCP server that connects AI assistants to Siemens TIA Portal via the Openness API. AI-assisted PLC programming, project management, hardware configuration, cross-reference analysis, and deployment. 16 tools, 166 actions.
    27

View all related MCP servers

Related MCP Connectors

  • MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.

  • MCP server for generating rough-draft project plans from natural-language prompts.

  • 2,000+ MCP servers read at source level. Know what one does before you connect. Free, no key.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BlackUppsss/Cx-Proggrammer-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server