Skip to main content
Glama
BlackUppsss

cx-programmer-mcp

by BlackUppsss

cx-programmer-mcp

MCP-сервер для программного редактирования лестничных диаграмм (Ladder) OMRON CX-Programmer — без открытия графического интерфейса.

Работает с файлами .CXP / .CXT для ПЛК серий OMRON CJ/CP/CS.

Область действия: только программы, секции, мнемоника лестничных диаграмм, комментарии к цепям (rung) и таблица символов.
Не затрагивает: настройки PLC, таблицу ввода/вывода, сетевую конфигурацию, пароли и передачу в ПЛК.


Как это работает

OMRON документирует .CXP как сжатый вариант .CXT. .CXT — это текстовый формат, который CX-Programmer умеет импортировать и экспортировать. Этот сервер читает .CXP или .CXT, редактирует программу в памяти, затем сохраняет результат как .CXT / .CXP для проверки в CX-Programmer перед загрузкой в реальный ПЛК.

Использует Python MCP SDK v2 (MCPServer) с транспортом stdio.


Related MCP server: TwinCAT Validator MCP Server

Требования

  • Python >= 3.10

  • Менеджер пакетов uv

  • Установленный CX-Programmer (для открытия .cxp и загрузки в ПЛК)


Установка

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

Настройка шаблона проекта

Встроенный шаблон (CJ2M CPU11)

В комплект входит родной шаблон CJ2M CPU11. Создайте пустой проект:

uv run python make_template.py

Другие модели ПЛК

У каждой модели ПЛК своя двоичная конфигурация. Для моделей, отличных от CJ2M CPU11:

  1. Откройте CX-Programmer на вашем компьютере

  2. Создайте новый пустой проект для вашей модели ПЛК (CP1L, CS1G и т.д.)

  3. Сохраните его как .CXP или .CXT

  4. Поместите файл в папку project/

  5. Обновите make_template.py, указав ваш файл:

SRC = Path(__file__).parent / "project" / "your_blank_template.cxp"
  1. Запустите make_template.py один раз


Пример программы

Пример лестничной диаграммы включён в комплект: project/example_basic_io.cxp

Он демонстрирует простой контроллер конвейера с:

  • Ручным управлением выходом (удержание для включения)

  • Автоматическим запуском по расписанию через RTC (настраивается через DM)

  • Таймером длительности

  • Защёлкой SET/RSET

  • Аварийным сбросом

Чтобы пересобрать его из исходников:

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

Результат: project/example_basic_io.cxp — откройте в CX-Programmer для проверки и загрузки.


Проверка программы

uv run python review_program.py

Настройка MCP-клиента

Добавьте в конфигурацию MCP-клиента (Claude Desktop, Kiro, Cline и т.д.):

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

Пример для Windows:

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

Необязательно — ограничьте доступ к файлам только нужными папками:

CX_MCP_ALLOWED_ROOTS=C:\PLC_Projects

Изменение расписания во время работы

Используйте CX-Programmer Online Mode → PLC Memory → DM Area:

DM

Функция

По умолчанию

D0

Час запуска расписания 1

6

D1

Минута запуска расписания 1

0

D2

Час запуска расписания 2

16

D3

Минута запуска расписания 2

0

D4

Длительность работы, x100 мс

300 (=30 с)

Изменения вступают в силу сразу, без перезагрузки ПЛК.


Запуск тестов

uv run pytest -q

Доступные MCP-инструменты

Инструмент

Описание

load_project

Загрузить файл .cxp или .cxt в сессию

list_programs

Список всех программ в проекте

list_sections

Список секций в программе

get_program_context

Полное содержимое лестничной диаграммы программы

get_rungs

Получить цепи (rungs) в секции

replace_rung

Заменить инструкции цепи

insert_rung

Вставить новую цепь

delete_rung

Удалить цепь

set_rung_comment

Установить комментарий цепи

patch_program

Пакетное редактирование цепей (атомарно)

create_section

Добавить новую секцию

rename_section

Переименовать существующую секцию

upsert_symbol

Добавить или обновить символ

clear_symbols

Очистить все символы в области видимости

list_symbols

Список всех символов

validate_program

Проверить структуру XML

save_cxt

Сохранить как .cxt

save_cxp

Перекодировать и сохранить как .cxp

list_project_templates

Список доступных встроенных шаблонов

create_project_from_template

Создать новый проект из шаблона

compile_rung

Проверить мнемонику инструкций

simulate_rung

Логическая симуляция цепи

analyze_rung

Анализ структуры цепи

program_diagnostics

Полная диагностика программы

semantic_snapshot

Семантический JSON-снимок для ИИ-анализа

launch_in_cx_programmer

Сохранить и открыть в CX-Programmer (Windows)


Структура проекта

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

Примечания

  • Всегда запускайте Program Check в CX-Programmer перед загрузкой в реальный ПЛК.

  • Этот инструмент редактирует только логику программы — таблица ввода/вывода, настройки модулей и конфигурация ПЛК сохраняются как в шаблоне.

  • Выходной .CXP совместим с CX-Programmer 9.73 для CJ2M CPU11.

  • Для других моделей ПЛК предоставьте собственный пустой шаблон .CXP (см. Настройка шаблона проекта).

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