基于TIA Portal实现的Model Context Protocol (MCP) Server VS Code扩展。
此扩展将TIA Portal MCP Server封装为VS Code扩展,提供自动依赖检测、可视化配置界面和实时运行监控。
graph LR
A[Ai] --> B[TIAPORTAL MCP Server]
B --> C[Siemens.Engneer.dll]
C --> D[TIA Portal]
D --> E[设备]
tiaportal-mcp-v19/
├── vscode-extension/ # VS Code 扩展目录
│ ├── package.json # 扩展清单
│ ├── extension.js # 扩展主代码
│ ├── srv/net48/ # 内置 MCP 服务器
│ └── README.md # 扩展说明文档
├── src/ # MCP 服务器源代码
│ └── TiaMcpServer/
├── build-extension.ps1 # 一键构建和打包脚本
├── test-extension.ps1 # 扩展测试脚本
└── README.md # 本文档
下载或构建扩展:
# 构建扩展 (包括编译服务器和打包)
.\build-extension.ps1
# 或者如果已有编译好的服务器,只打包扩展
.\build-extension.ps1 -SkipBuild
# 构建并自动安装
.\build-extension.ps1 -Install
安装扩展:
# 使用命令行
code --install-extension tiaportal-mcp-v19-0.1.0.vsix
# 或在 VS Code 中: Extensions 视图 -> "..." -> Install from VSIX...
首次使用:
请参阅扩展使用说明 vscode-extension/README.md
如果不使用VS Code扩展,可以直接运行MCP服务器:
# 构建服务器
dotnet build --configuration Release
# 运行服务器
.\src\TiaMcpServer\bin\Release\net48\TiaMcpServer.exe --logging 2
运行测试脚本来验证所有组件:
# 基本测试
.\test-extension.ps1
# 详细测试 (显示错误详情)
.\test-extension.ps1 -Verbose
测试包括:
此MCP服务器专门针对TIA Portal,并提供了以下功能:
从VSIX文件安装:
# 方法 1: 使用命令行
code --install-extension tiaportal-mcp-v19-0.1.0.vsix
# 方法 2: 在 VS Code 中
# 打开 Extensions 视图 (Ctrl+Shift+X)
# 点击 "..." 菜单 -> Install from VSIX...
# 选择 tiaportal-mcp-v19-0.1.0.vsix 文件
重新加载VS Code
安装扩展后,点击左侧活动栏上的 TIA Portal MCP 图标
点击侧边栏上的 检查依赖项 按钮
扩展会自动检测所有依赖项:
如果发现任何问题,请按照提示进行修复:
满足所有依赖项后,点击 启动服务器 启动MCP服务器
在命令面板(Ctrl+Shift+P)中输入'TIA Portal MCP':
TIA Portal MCP: 检查依赖项 - 检查所有依赖项TIA Portal MCP: 启动服务器 - 启动MCP服务器TIA Portal MCP: 停止服务器 - 停止MCP服务器TIA Portal MCP: 重启服务器 - 重启MCP服务器TIA Portal MCP: 打开设置 - 打开设置面板TIA Portal MCP: 显示日志 - 显示详细日志TIA Portal MCP: 将用户添加到西门子TIA开放性组 - 将用户添加到所需组在侧边栏的设置面板中,可以配置:
Siemens TIA Openness 用户组TIA Portal V19的Openness API位于:
C:\Program Files\Siemens\Automation\Portal V19\PublicAPI\V19\Siemens.Engineering.dll
需要设置系统环境变量:
TiaPortalLocationC:\Program Files\Siemens\Automation\Portal V19设置步骤:
方法1:使用计算机管理
方法2:使用PowerShell(管理员)
Add-LocalGroupMember -Group "Siemens TIA Openness" -Member "$env:USERNAME"
验证:
Get-LocalGroupMember -Group "Siemens TIA Openness"
注意:添加用户到组后,需要注销并重新登录Windows才能生效。
TiaMcpServer.sln# 还原NuGet包
dotnet restore
# 构建项目
dotnet build --configuration Release
# 构建输出位于
# .\src\TiaMcpServer\bin\Release\net48\
cd src\TiaMcpServer
dotnet build -c Release -f net48
.\src\TiaMcpServer\bin\Release\net48\TiaMcpServer.exe
.\src\TiaMcpServer\bin\Release\net48\TiaMcpServer.exe --tia-major-version 19
# 日志输出到stderr
.\src\TiaMcpServer\bin\Release\net48\TiaMcpServer.exe --logging 1
# 日志输出到调试输出 (Debug Output)
.\src\TiaMcpServer\bin\Release\net48\TiaMcpServer.exe --logging 2
# 日志输出到Windows事件日志
.\src\TiaMcpServer\bin\Release\net48\TiaMcpServer.exe --logging 3
在VS Code工作区创建 .vscode/mcp.json:
{
"servers": {
"tiaportal-v19": {
"command": "C:\\path\\to\\TiaMcpServer.exe",
"args": [],
"env": {}
}
}
}
编辑 %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"tiaportal-v19": {
"command": "C:\\path\\to\\TiaMcpServer.exe",
"args": [],
"env": {}
}
}
}
连接 - 连接到TIA Portal断开连接 - 断开与TIA Portal的连接获取状态 - 获取服务器状态获取项目 - 获取打开的项目列表打开项目 - 打开项目/会话 (.ap19/.als19)保存项目 - 保存当前项目/会话另存为项目 - 另存为项目关闭项目 - 关闭当前项目/会话获取项目树 - 获取项目树结构获取设备列表 - 获取设备列表获取设备信息 - 获取详细设备信息获取设备项信息 - 获取设备项信息获取软件信息 - 获取PLC软件信息编译软件 - 编译PLC软件获取软件树 - 获取软件树结构获取块信息 - 获取块信息获取块列表 - 获取块列表(支持正则表达式)获取具有层次结构的块列表 - 获取具有层次结构的块列表导出单个块 - 导出单个块导入单个块 - 导入单个块批量导出块 - 批量导出块批量导出块作为文档 - ⚠️ 不支持(需要V20+)获取类型信息 - 获取类型信息获取类型列表 - 获取类型列表(支持正则表达式)导出单个类型 - 导出单个类型导入单个类型 - 导入单个类型批量导出类型 - 批量导出类型1. 连接到TIA Portal
2. 从'D:/Projects/MyProject.ap19'打开项目
3. 从PLC软件'PLC_1/Software'导出所有块到'C:/Export/Blocks'
4. 关闭项目
5. 断开与TIA Portal的连接
1. 连接到TIA Portal
2. 从'D:/Projects/MyProject.ap19'打开项目
3. 从PLC软件'PLC_1/Software'导出块'Main/Control/FC100'到'C:/Export'
4. 关闭项目
5. 断开与TIA Portal的连接
1. 连接到TIA Portal
2. 从'D:/Projects/MyProject.ap19'打开项目
3. 编译PLC软件'PLC_1/Software'
4. 保存项目
5. 关闭项目
6. 断开与TIA Portal的连接
ExportAsDocuments、ExportBlocksAsDocumentsImportFromDocuments、ImportBlocksFromDocuments Siemens.Engineering.dll 组件由于 V16、V17 和 V18 的 Siemens.Engineering.dll 组件包含在交付范围内,因此基于 V16、V17 和 V18 的应用程序在 V19 中无需修改即可运行。
同样的,基于博图V19开发的MCP同样可以直接支持博图V20,但不支持其特有功能,因为API引用是V19版本的。以上可以通过插件侧边栏 “TIA Major Version” 实现不同版本博图的适配
要使用 V19 的功能,您必须集成 V19 的 dll 并重新编译应用程序。Siemens.Engineering.dll 组件可在安装目录下的"PublicAPI[版本]\"中找到。
例如,V19 的 dll 可以在 "C:\Program Files\Siemens\Automation\Portal V*\PublicAPI\V19\Siemens.Engineering.dll" 找到
解决方案:
Siemens TIA Openness 组解决方案:
TiaPortalLocation 设置解决方案:
C:\Program Files\Siemens\Automation\Portal V19\PublicAPI\V19\解决方案: