自动化 PLC 测试

PLC Test Harness
工业自动化的 TDD

定义测试场景,针对 PLCSim Advanced 执行,并获得即时 PASS/FAIL 判定。PLC 逻辑的单元测试 — 与软件工程师测试代码的方式相同。

PLC 测试仍处于手动阶段

没有自动化测试,每次代码更改都是一场赌博

无回归测试

您修改了一个功能块并祈祷其他地方没有损坏。没有自动化测试,每次更改都有引入隐蔽 Bug 的风险,这些 Bug 往往直到工厂现场才会暴露。

手动验证

测试意味着手动在 PLC 或 PLCSim 上强制输入,观察输出变化,并手动检查值。繁琐、易错,且无法实现一致的重复。

无测试文档

您如何证明您的程序运行正确?测试步骤存在于 Word 文档或工程师的脑海中。没有标准化的、可执行的测试规范随项目移动。

AI 无法验证自己的代码

AI 生成 PLC 代码,但您如何知道它是否有效?没有自动化测试,AI 生成的代码在未经验证的情况下进入生产环境。Test Harness 闭合了这个环。

PLC Test Harness 如何工作

结构化的 PLC 逻辑测试框架,可通过 MCP、Copilot 和 REST API 访问

定义测试场景

每个测试都是一系列步骤:设置输入,等待 PLC 反应,然后验证输出是否符合预期。测试以 .test.json 文件形式存储在您的 TIA Portal 项目旁。

4 种断言类型

布尔值和整数的精确匹配。浮点值的容差 (±0.1)。最小值/最大值的范围检查。不等判定以验证值已更改。涵盖每种 PLC 数据类型。

Setup & Teardown

每个测试都以 Setup 阶段(将变量初始化为已知状态)开始,并以 Teardown 阶段(将变量重置为零)结束,即使测试失败也是如此。确保状态清洁。

运行单个或全部

按名称执行单个测试,传递内联测试,或使用通配符 (*) 运行整个测试套件。结果存储在 last-results.json 中供审查。

完整的审计追踪

每次测试运行都会生成详细报告:哪些步骤通过、哪些失败、预期值 vs 实际值以及执行时间戳。随时导出或查询结果。

AI 驱动的 TDD 循环

连接的 LLM 可以自主编写代码、创建测试、编译、下载到 PLCSim、运行测试并修复失败 — 全自动化。PLC 的 红 → 绿 → 重构 循环。

PLC 的 TDD 循环

从测试定义到经过验证的 PLC 逻辑

1

1. 编写测试

定义预期行为:当 Start_Button 被按下时,Motor_Running 应在 500ms 内变为 true。使用 plc_test_create 创建测试。

2

2. 针对 PLCSim 运行

使用 plc_test_run 执行测试。T-IA Connect 将输入写入 PLCSim,等待指定的延迟,然后读取并检查输出。判定结果:PASS 或 FAIL。

3

3. 修复与迭代

如果某个步骤失败,您会清楚地看到问题所在:预期 Motor_Running = true,实际为 false。修复 PLC 程序,重新编译、下载并再次运行测试。

4

4. 构建您的测试套件

在开发过程中积累测试。每次更改后运行完整套件以捕获回归。测试随项目存储在 .tia-connect/tests/ 中。

断言类型详情

通过正确的比较涵盖每种 PLC 数据类型

精确匹配

用于布尔值和整数。Motor_Running 必须精确为 true。计数器必须精确为 5。不容许误差。

容差 (±)

用于 REAL 和 LREAL 值。速度必须是 50.0 ± 0.1。考虑了浮点精度和模拟量测量噪声。

范围 (min/max)

值必须落在定义的范围内。温度在 10.0 和 100.0 之间。非常适合模拟量输入和过程值。

不等于

验证值已从初始状态发生更改。计数器必须不等于 0 — 确认计数逻辑确实运行了。

跨 3 个渠道的 5 个工具

可通过 MCP、Copilot(内置助手)和 REST API 使用

plc_test_create

保存包含 Setup、步骤(输入 → 延迟 → 断言)和 Teardown 的测试用例定义。作为 .test.json 文件存储在 .tia-connect/tests/ 中。

plc_test_run

按名称执行测试,传递内联测试,或使用 * 运行所有测试。通过 REST 异步执行(返回 jobId)。结果保存在 last-results.json 中。

plc_test_list

列出所有保存的测试用例及其名称和描述。快速概览项目的测试覆盖范围。

plc_test_delete

按名称删除测试用例。随着项目的演进清理过时的测试。

plc_test_get_results

获取最新的测试运行结果:每步的 PASS/FAIL 状态、预期值 vs 实际值、执行时间和整体判定。

常见问题

这需要 PLCSim Advanced 吗?

是的。Test Harness 通过 PLCSim Advanced 的仿真接口写入输入并读取输出。它不适用于真实的 PLC(这对于自动化测试来说非常危险)。PLCSim Advanced 提供了一个安全、可重复的环境。

AI 可以自主创建并运行测试吗?

当然可以。连接的 LLM(通过 MCP 或 Copilot)可以编写 PLC 代码,使用 plc_test_create 创建测试,编译并下载到 PLCSim,运行测试,检查结果,如果失败则修复代码。无需人工干预的完整 TDD 循环。

测试存储在哪里?

在 TIA Portal 项目旁的 .tia-connect/tests/ 文件夹中。每个测试是一个 .test.json 文件。结果存储在 last-results.json 中。测试随项目移动 — 归档项目即归档测试。

测试运行需要多长时间?

这取决于您在测试步骤中定义的延迟(您给 PLC 的反应时间)。一个包含 3-5 个步骤和 200-500ms 延迟的典型测试运行时间为 1-3 秒。运行包含 20 个测试的完整套件通常耗时不到一分钟。

像测试软件一样测试您的 PLC 代码

自动化测试、回归检测和 TDD — 软件工程师习以为常的一切,现在也适用于 TIA Portal PLC 程序。