DevOps / 部署

自动化 PLC 部署
适用于 TIA Portal 项目

自动化完整的部署生命周期:编译硬件和软件、建立在线连接、比较在线/离线状态、将固件和程序下载到 PLC,并控制 CPU 运行状态 - 全部通过 REST API 脚本化实现。

完整的部署生命周期自动化

从源代码到运行中的 PLC,每一步都可脚本化且可重复

编译

单独或共同编译硬件配置和软件块。编译结果包括错误和警告 - 集成到 CI 流水线中,以便根据构建成功与否决定是否部署。

在线连接

建立和终止与 PLC 的在线连接。支持 PLCSim Softbus、PROFINET 和手动路径覆盖。自动检测连接参数或显式指定访问点。

下载范围

根据部署选择下载范围:仅软件、仅硬件、硬件和软件结合,或仅软件更改(以实现最小影响的更新)。精确控制下发到 PLC 的内容。

CPU 状态管理

以编程方式启动和停止 CPU。在部署前后读取当前 CPU 状态。构建安全的部署序列,自动引导 CPU 完成停止 (STOP)、下载和运行 (RUN) 的切换。

受密码保护的 PLC 支持

在连接在线之前,针对受密码保护的 PLC 进行身份验证。通过 API 设置、更新和清除在线身份验证凭据,以支持安全的生产环境。

安全卫士

confirmPhysicalDownload 标志可防止意外下载到真实硬件 - 只有 PLCSim 目标允许在没有显式确认的情况下进行下载。这是针对物理 PLC 的 CI/CD 流水线的一项关键护栏措施。

标准部署工作流

从编译代码到运行 PLC 的五个步骤

1

编译

通过 compile_device 或 compile_block 触发硬件和软件编译。在继续之前检查结果是否有错误。编译失败将中止部署。

2

在线连接

调用 go_online 并指定目标设备。T-IA Connect 会自动解析访问点或接受手动路径。在继续之前使用 get_online_state 验证连接状态。

3

在线 / 离线比较

运行 compare_online_offline 以检查 PLC 是否已与项目匹配。如果未检测到差异,则跳过不必要的下载,从而减少生产中对 PLC 的干扰。

4

下载到 PLC

执行 download_to_plc 并选择范围 (Software, Hardware, HardwareAndSoftware, 或 SoftwareOnlyChanges)。仅在有意针对真实硬件时才将 confirmPhysicalDownload 设置为 true。

5

启动 CPU

发出 start_cpu 以使 PLC 从 STOP 转换为 RUN。使用 get_cpu_state 确认最终状态。记录结果以便进行审计跟踪和 CI 报告。

REST API 部署脚本化

使用标准 HTTP 调用将 PLC 部署集成到任何 CI/CD 工具中

编译并检查结果

# 编译设备 (硬件 + 软件)
curl -X POST http://localhost:5000/api/compile-device \
  -H 'Content-Type: application/json' \
  -d {"deviceName": "PLC_1"}

在线连接并下载

# 在线连接
curl -X POST http://localhost:5000/api/go-online \
  -H 'Content-Type: application/json' \
  -d {"deviceName": "PLC_1"}\n\n# 仅下载软件
curl -X POST http://localhost:5000/api/download-to-plc \
  -H 'Content-Type: application/json' \
  -d {"deviceName": "PLC_1", "scope": "Software", "confirmPhysicalDownload": true}

启动 CPU 并验证状态

# 启动 CPU
curl -X POST http://localhost:5000/api/start-cpu \
  -H 'Content-Type: application/json' \
  -d {"deviceName": "PLC_1"}\n\n# 读取 CPU 状态
curl -X GET 'http://localhost:5000/api/get-cpu-state?deviceName=PLC_1'

可用部署工具

所有工具均可通过 REST API 和 MCP 协议访问

工具描述
compile_device编译整个设备(硬件 + 软件)并返回错误和警告。
compile_block编译单个程序块。适用于 CI 流水线中有针对性的预检查。
go_online建立与 PLC 的在线连接。支持 PLCSim、PROFINET 和手动路径。
go_offline终止在线连接并使设备返回离线模式。
get_online_state返回设备当前的在线/离线连接状态。
download_to_plc将项目数据下载到 PLC。范围:Software, Hardware, HardwareAndSoftware, SoftwareOnlyChanges。
upload_from_plc将当前 PLC 程序上传回 TIA Portal 项目。
compare_online_offline将在线 PLC 状态与离线项目进行比较以检测差异。
start_cpu将 CPU 从 STOP 状态转换为 RUN 状态。
stop_cpu在下载前将 CPU 从 RUN 状态转换为 STOP 状态。
get_cpu_state读取当前 CPU 运行状态 (RUN, STOP, STARTING 等)。
list_access_points列出所有已配置的访问点,用于解析 PLC 连接路径。
list_parameter_sets列出可用的连接配置参数集。
get_pgpc_diagnostic获取 PG/PC 接口诊断信息以排除连接问题。

自动部署您的第一个 PLC

停止在 TIA Portal 中重复点击。一次性脚本化您的整个部署流水线,并在每次提交时运行它。