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.12:
C:\BrAutomation\AS412\bin-en\BR.AS.Build.exe - AS 4.9:
C:\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。
贡献说明
欢迎贡献代码!请随时提交问题报告和拉取请求
致谢
- Model Context Protocol by Anthropic -FastMCP Python MCP SDK -B&R Automation Automation Studio
Scan to join WeChat group