自动化项目交互服务器

B&R Automation Studio MCP服务器,通过自然语言实现AI助手与自动化项目的交互,包括项目构建、模拟器运行和OPC UA变量读写。

  • by AndrewMusser
  • Python
  • 本地部署
  • 15 星标
  • 更新于
在 GitHub 查看 AndrewMusser/br-automation-mcp

使用说明

B&R自动化工作室MCP服务器

一 MCP(模型上下文协议) 该服务器使Claude等人工智能助手能够与B&R Automation Studio项目进行交互。构建项目、运行模拟器和读/写OPC UA变量——所有这些都是通过自然语言完成的。

特性

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

先决条件

  • Windows 10/11 已安装B&R Automation Studio 4.x
  • Python 3.10+ 在Windows上(使用pip)
  • 克劳德代码 (本机Windows或WSL2)

安装

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"

常见安装位置:

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

3b。OPC UA参数

配置OPC UA连接设置,以便与ARsim通信:

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的方式相匹配的设置:


选项A:本机Windows(推荐)

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

在Windows上安装Claude代码:

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:WSL2(跨平台)

如果在WSL2中运行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.ps1"
      ],
      "enabled": true
    }
  ]
}

架构:

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

5.重新启动克劳德代码

更新配置后,重新启动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中的RUC包启动模拟器”

opcua_read_write

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

参数:

  • node_id -OPC UA节点标识符(例如。, ns=6;s=::TaskName:varName)
  • operation -“读”或“写”
  • value -要写入的值(用于写入操作)
  • value_type -数据类型:布尔、Int16、Int32、浮点、双精度、字符串

示例提示:

  • “从TempCtrl任务中读取温度变量”
  • “在TempCtrl任务中将targetTemp设置为75.0”

OPC UA节点ID格式

对于任务局部变量:

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

对于全局变量:

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

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

故障排除

“找不到命令”错误

确保Python在Windows PATH中,并且B&R工具路径在 server.py 是正确的。

OPC UA连接失败

  • 验证模拟器是否正在运行
  • 检查变量是否在OpcUaMap.uad中公开
  • 默认凭据为管理员/密码

WSL2找不到powershell.exe

确保WSL2启用了Windows互操作(默认)。请检查:

which powershell.exe

许可证

MIT许可证-请参阅 许可证 了解详情。

贡献

欢迎投稿!请随时提交问题和拉取请求。

致谢