Back to MCP directory
publicPublicdnsLocal runtime

br-automation-mcp

这是一个B&R Automation Studio的MCP服务器,允许AI助手通过自然语言与B&R自动化项目交互,包括编译项目、运行模拟器和读写OPC UA变量。

article

README

🚀 B&R Automation Studio MCP 服务器

这是一个 MCP(模型上下文协议) 服务器,它能让像 Claude 这样的 AI 助手与 B&R Automation Studio 项目进行交互。通过自然语言,你可以构建项目、运行模拟器以及读写 OPC UA 变量。

🚀 快速开始

此服务器可使 AI 助手与 B&R Automation Studio 项目交互,你可通过自然语言来构建项目、运行模拟器并读写 OPC UA 变量。

✨ 主要特性

  • 项目构建:编译 Automation Studio 项目以进行模拟。
  • 运行模拟器:启动 ARsim 并自动连接。
  • OPC UA 集成:实时读写 PLC 变量。

📦 安装指南

1. 克隆此仓库

git clone https://github.com/AndrewMusser/br-automation-mcp.git
cd br-automation-mcp

2. 安装 Python 依赖项

pip install -r requirements.txt

3. 配置服务器设置

编辑 server.py 以匹配你的环境:

3a. B&R 工具路径

更新这些路径以匹配你的 Automation Studio 安装位置:

AS_BUILD_PATH = "C:\\BrAutomation\\AS412\\bin-en\\BR.AS.Build.exe"
PVI_TRANSFER_PATH = "C:\\BrAutomation\\PVI\\V4.12\\PVI\\Tools\\PVITransfer\\PVITransfer.exe"

常见安装位置:

  • AS 4.12C:\BrAutomation\AS412\bin-en\BR.AS.Build.exe
  • AS 4.9C:\BrAutomation\AS49\bin-en\BR.AS.Build.exe
  • PVI:通常位于 C:\BrAutomation\PVI\V4.x\PVI\Tools\PVITransfer\

3b. OPC UA 参数

配置与 ARsim 通信的 OPC UA连接设置

OPCUA_HOST = "localhost" 
OPCUA_PORT = 4840 
OPCUA_USERNAME = "Admin" 
OPCUA_PASSWORD = "password" 

重要提示: 这些凭据必须与你的 Automation Studio项目的 OPC UA 配置相匹配:

  • 用户角色设置: Physical/<Config>/<CPU>/AccessAndSecurity/UserRoleSystem/
  • OPC UA 配置: Physical/<Config>/<CPU>/Connectivity/OpcUA/

4. 配置 Claude Code

选择与你运行 Claude Code 方式匹配的设置:

选项 A:原生 Windows(推荐)

Claude Code 现在可以通过 Git Bash、PowerShell 或 CMD 在 Windows 上原生运行。由于 Claude Code 和 Automation Studio 都在同一台机器上运行,这是最简单的设置方式。

在 Windows 上安装 Claude Code

winget install Anthropic.ClaudeCode

配置文件%APPDATA%\Claude\settings.json

添加到设置中

{
  "mcpServers": [
    {
      "name": "br-automation-mcp",
      "type": "stdio",
      "command": "python",
      "args": ["D:\\path\\to\\br-automation-mcp\\server.py"],
      "enabled": true
    }
  ]
}

架构

┌─────────────────────────────────────────────────────────────┐
│  Windows                                                    │
│                                                             │
│  ┌─────────────┐    ┌─────────────────────────────────────┐ │
│  │ Claude Code │───▶│  server.py (MCP STDIO Server)       │ │ 
│  │ (Git Bash) │    └───────────────┬─────────────────────┘ │
│  └─────────────┘                    │                       │
│                                     │                       │
│         ┌───────────────────────────┼───────────────┐       │
│         ▼                           ▼               ▼       │
│ ┌─────────────┐          ┌──────────────┐ ┌─────────┐ │ 
│ │ BR.AS.Build │          │ PVITransfer │ │ OPC UA │ │ 
│ │ (Build) │          │ (Simulate) │ │ (Test) │ │ 
│ └─────────────┘          └──────────────┘ └─────────┘ │ 
└─────────────────────────────────────────────────────────────┘

选项 B WSL (跨平台)

如果你在 WSL (Windows Subsystem for Linux) 中运行 Claude Code,它可以通过 PowerShell 互操作调用 Windows Python服务器

配置文件: ~/.claude.settings.json

添加设置:

{ 
    mcpServers": [ 
        { 
            "name": br automation mcp", 
            "type": "stdio", 
            "command": "powershell.exe", 
            args": [ 
                "-ExecutionPolicy", 
                "Bypass", 
                "-File", 
                "D:\\path\\to\\br automation mcp\\run server.psl", 
            ], 
            enabled": true 
        } 
    ] 
} 

架构:

┌─────────────────────────────────────────────────────────────┐ 
│ WSL (Linux) │ 
│ ┌─────────────────┐ │ 
│ │ Claude Code │ │ 
│ │ │──── powershell.exe ────┐ │ 
│ └─────────────────┘ │ │ 
└─────────────────────────────────────────────│───────────────┘ 
│ 
┌─────────────────────────────────────────────│───────────────┐ 
│ Windows ▼ │ 
│ ┌─────────────────┐ ┌─────────────────────────────────┐ │ 
│ │ run server.psl │───▶│ server.py (MCP STDIO Server) │ │ 
│ └─────────────────┘ └───────────────┬─────────────────┘ │ 
│ │ │ 
│ ┌───────────────────────────────┼───────────────┐ │ 
│ ▼ ▼ ▼ │ 
│ ┌─────────────┐ ┌──────────────┐ ┌─────────┐ │ 
│ │ BR.AS.Build │ │ PVITransfer │ │ ARsim │ │ 
│ │ (Build) │ │ (Simulate) │ │ (OPC UA)│ │ 
│ └─────────────┘ └──────────────┘ └─────────┘ │ 
└─────────────────────────────────────────────────────────────┘ 

5重启Claude Code

更新完配置后,请重启Claude Code以加载MCP服务器

💻 使用示例

可用工具

build_automation_studio_project

编译Automation Studio项目以进行模拟

参数: project_file - .apj文件的路径 (Windows路径) configuration - 要构建的配置名称

示例提示: "使用X20CPU配置构建我位于D:\Projects\MyApp\MyApp.apj处项目

run_automation_studio_simulator

创建ARsim结构并启动模拟器

参数: ruc_package - RUCPackage.zip的路径 (由构建生成) start_simulator - 是否立即启动 (默认: true)

示例提示: "使用位于D:\Projects\MyApp\Binaries\X20CPU\X20CP1686X\RUCPackage\RUCPackage.zip处RUCPackage启动模拟器

opcua_read_write

在运行模拟器上读取或写入OPC UA变量

参数: node_id - OPC UA节点标识符 (例如, ns=6;s=::TaskName:varName) operation - read'或'write' value -写入的值 (用于写入操作) value_type -数据类型 Boolean, Int16, Int Float, Double, String

示例提示:

  • '从TempCtrl任务中读取温度变量' -'将TempCtrl任务中targetTemp设置为75.0'

OPC UA节点ID格式

对于任务本地变量:

ns=6;s=::<TaskName>:<VariableName> 

对于全局变量

ns=6;s=::AsGlobalPV:<VariablePath> 

注意变量必须在OPC UA配置 (OpcUaMap.uad) 中公开才能访问

📚详细文档

OPC UA节点ID格式

对于任务本地变量:

ns=6;s=::<TaskName>:<VariableName> 

对于全局变量:

ns=6;s=::AsGlobalPV:<VariablePath> 

注意变量必须OPC UA配置 (OpcUaMap.uad) 中公开才能访问

故障排除

'命令未找到'错误

确保Python位于Windows PATH中并且server.py中B&R工具路径正确

OPC UA连接失败

验证模拟器正在运行 检查变量是否OpcUaMap.uad中公开 默认凭据为Admin/password

WSL找不到powershell.exe

确保WSL启用了Windows互操作 (默认) 检查方法

which powershell.exe 

📄 许可证

本项目采用 MIT 许可证,详情请参阅 LICENSE

贡献说明

欢迎贡献代码!请随时提交问题报告和拉取请求

致谢

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client