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-mcp2.安装Python依赖项
pip install -r requirements.txt3.配置服务器设置
编辑 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///AccessAndSecurity/UserRoleSystem/ - OPC UA配置:
Physical///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=:::对于全局变量:
ns=6;s=::AsGlobalPV:注: 变量必须在OPC UA配置(OpcUaMap.uad)中公开才能访问。
故障排除
“找不到命令”错误
确保Python在Windows PATH中,并且B&R工具路径在 server.py 是正确的。
OPC UA连接失败
- 验证模拟器是否正在运行
- 检查变量是否在OpcUaMap.uad中公开
- 默认凭据为管理员/密码
WSL2找不到powershell.exe
确保WSL2启用了Windows互操作(默认)。请检查:
which powershell.exe许可证
MIT许可证-请参阅 许可证 了解详情。
贡献
欢迎投稿!请随时提交问题和拉取请求。
