项目简介

CODESYS MCP 工具集是一个基于 Model Context Protocol (MCP) 构建的服务器应用,旨在连接 CODESYS V3 自动化编程环境 与支持 MCP 协议的 大型语言模型 (LLM) 客户端(如 Claude Desktop)。它允许 LLM 客户端通过标准化的方式,访问 CODESYS 项目信息(资源)并执行自动化任务(工具),例如打开/创建/保存项目、创建POU(程序组织单元,如程序、功能块、函数)、编辑代码、编译项目等。

主要功能

  • 项目管理: 打开现有 CODESYS 项目、从标准模板创建新项目、保存项目修改。
  • POU管理: 创建不同类型的 POU(程序、功能块、函数)、设置 POU 的变量声明和实现代码、创建功能块的属性和方法。
  • 代码编辑: 精确设置指定 POU、方法或属性访问器的代码内容。
  • 项目编译: 调用 CODESYS 脚本引擎编译当前打开项目的应用程序。
  • 状态监控: 读取 CODESYS Scripting Engine 的当前状态和打开的项目信息。

安装步骤

  1. 安装 Node.js: 确保您的系统已安装 Node.js (推荐 18.0.0 或更高版本)。您可以从 Node.js 官方网站 下载安装包。
  2. 安装 CODESYS: 确保您的系统已安装 CODESYS V3 (已测试 3.5 SP21),并且在安装过程中勾选了 Scripting Engine 组件。
  3. 全局安装 MCP 工具集: 打开命令行终端,运行以下命令:
    npm install -g @codesys/mcp-toolkit
    这会将 'codesys-mcp-tool' 命令安装到您的系统 PATH 中,方便 MCP 客户端直接调用。

服务器配置(在 MCP 客户端中进行)

MCP 服务器不是独立运行的桌面应用,它由您的 MCP 客户端应用程序(如 Claude Desktop)根据需要启动和管理。您需要在 MCP 客户端的设置中配置如何启动这个服务器。

通常,MCP 客户端的配置文件(例如 Claude Desktop 的 'settings.json')会有一个 'mcpServers' 部分,您需要添加或修改一个条目来指向 'codesys-mcp-tool' 命令,并提供 CODESYS 安装路径和 Profile 名称。

以下是一个示例配置结构(具体文件位置和格式请参考您的 MCP 客户端文档):

{
  "mcpServers": {
    // ... 其他MCP服务器配置 ...
    "codesys_local": { // 给这个服务器起一个自定义的名字
      "command": "codesys-mcp-tool", // 启动服务器的命令名
      "args": [
        "--codesys-path", "C:\\Program Files\\CODESYS 3.5.21.0\\CODESYS\\Common\\CODESYS.exe", // <-- 替换为您的CODESYS.exe的实际完整路径
        "--codesys-profile", "CODESYS V3.5 SP21" // <-- 替换为您的CODESYS Profile的实际名称
        // 提示:
        // 1. CODESYS.exe 路径通常在安装目录的 Common 文件夹下。
        // 2. CODESYS Profile 名称可以在打开CODESYS时看到,或在CODESYS选项中查找。
        // 3. 确保路径使用双反斜杠 '\\' 或单正斜杠 '/'。
        // 4. 如果您使用相对路径打开项目,可以添加一个工作空间目录参数(可选):
        // "--workspace", "C:\\Users\\YourName\\CODESYS Projects"
      ],
      "enabled": true // 确保此服务器是启用状态
    }
    // ... 其他MCP服务器配置 ...
  }
}

配置完成后,请重启您的 MCP 客户端应用程序 以使设置生效。

基本使用方法

一旦在 MCP 客户端中正确配置并连接了 CODESYS MCP 工具集,您就可以通过与 LLM 助手对话来控制 CODESYS。LLM 助手能够感知到这个 MCP 服务器提供的工具和资源,并根据您的指示调用它们。

例如,您可以尝试向您的 LLM 助手发出指令:

  • “打开我的 CODESYS 项目文件 'C:\Projects\MyRobotControl.project'。” (LLM 可能会调用 'open_project' 工具)
  • “在当前项目中,应用程序下创建一个名为 'MotorController' 的功能块 (FunctionBlock),语言使用结构化文本 (ST)。” (LLM 可能会调用 'create_pou' 工具)
  • “为 'MotorController' 功能块添加一个名为 'SpeedSetpoint' 的整数 (INT) 属性。” (LLM 可能会调用 'create_property' 工具)
  • “在 'MotorController' 的 'Start' 方法中写入启动逻辑代码。” (LLM 可能会调用 'set_pou_code' 工具,指定正确的 POU 路径和 implementationCode)
  • “编译当前打开的 CODESYS 项目。” (LLM 可能会调用 'compile_project' 工具)
  • “告诉我当前 CODESYS 项目的状态。” (LLM 可能会读取 'codesys://project/status' 资源)

根据 LLM 助手的实现,您可以通过自然语言与它交互,它会将您的意图转化为对 MCP 工具和资源的调用,并将执行结果反馈给您。

信息

分类

开发者工具