BLOCK-SIM: 博途程序块仿真工具

BLOCK-SIM 是面向 TIA Portal PLC 程序块的块级仿真与单元测试工具。

BLOCK-SIM: 博途程序块仿真工具
博途PLC工程智能体 | 梯形图转SCL | 自然语言生成梯形图 | 自然语言生成SCL | 逆向生成程序块文档 | 梯形图在线查看 | 博途编程文档MCP | AI模型价格对比 | AI工具导航 | ONNX模型库 | Vibe Coding教程 | PLC在线仿真器 | Tripo 3D | Meshy AI

PLC 程序开发完成后,如何验证一个 FB 或 FC 的逻辑是否正确?

传统 PLC 开发通常需要将整个程序下载到 PLC 或 PLCSIM 中,然后通过修改输入、观察输出的方式进行测试。

但对于单个程序块的逻辑验证来说,这种方式往往过于复杂。

如果只是想验证一个电机控制 FB、一个分拣逻辑 FC,或者一个状态机程序块,真的有必要启动完整的 PLC 仿真环境吗?

在软件开发中,我们通常会使用 Unit Test(单元测试),直接对一个函数或模块进行测试。

PLC 程序同样需要这样的能力。

BLOCK-SIM 就是面向 TIA Portal PLC 程序块的块级仿真与单元测试工具。

它针对单个 OB、FB、FC 进行逻辑仿真,通过构造输入、执行程序、检查输出,对 PLC 程序块进行自动化验证。

BLOCK-SIM 不是 PLCSIM,也不是完整 PLC 系统仿真器。

它解决的是 PLC 程序块的单元测试问题。

1、BLOCK-SIM 解决的问题

在实际 PLC 开发中,我们经常需要验证这样的程序:

  • 一个电机控制 FB 是否正确;
  • 一个自动门控制 FC 是否正确;
  • 一个状态机是否能够正确切换;
  • 一个联锁逻辑是否符合要求;
  • 一个计数器逻辑是否正确;
  • 一个故障处理程序是否能够正确复位;
  • 修改程序后,原来的逻辑是否仍然正常。

这些问题的共同特点是:

我们只需要验证一个程序块,而不是整个 PLC 项目。

例如:

MotorControl
├── Start
├── Stop
├── Enable
├── Fault
├── Reset
└── MotorRunning

我们真正想测试的是:

输入条件
    ↓
MotorControl FB
    ↓
输出结果

而不是:

整个 PLC 项目
    ↓
硬件组态
    ↓
CPU
    ↓
I/O
    ↓
通信
    ↓
整个程序

这就是 BLOCK-SIM 与传统 PLC 仿真工具的区别。

2、什么是块级仿真?

BLOCK-SIM 的核心概念是:

Block-level Simulation —— 程序块级仿真。

它把一个 PLC 程序块作为独立的测试对象。

例如:

         Test Case
             ↓
      ┌─────────────┐
      │    Inputs   │
      └──────┬──────┘
             ↓
      ┌─────────────┐
      │   FB / FC   │
      │   Program   │
      └──────┬──────┘
             ↓
      ┌─────────────┐
      │   Outputs   │
      └─────────────┘

测试只关注这个程序块本身。

因此不需要建立完整的 PLC 硬件环境,也不需要连接真实 PLC。

3、BLOCK-SIM 与 PLCSIM 有什么区别?

BLOCK-SIM 和 PLCSIM 面向的是不同的问题。

3.1 PLCSIM:仿真 PLC

PLCSIM 的核心目标是让 PLC 程序在一个虚拟 PLC 环境中运行。

它更适合验证:

  • PLC 程序整体运行;
  • OB 调度;
  • PLC 运行状态;
  • I/O 行为;
  • 与 HMI 等系统的交互;
  • 更接近真实 PLC 的系统级测试。

其测试对象通常是:

整个 PLC
   ↓
OB
FB
FC
DB
I/O
...

3.1 BLOCK-SIM:测试程序块

BLOCK-SIM 则把测试范围缩小到一个程序块:

Test Case
    ↓
   FB
    ↓
Expected Output

它更接近软件开发中的:

Unit Test
    ↓
Function / Class
    ↓
Assertion

因此两者并不是简单的竞争关系。

可以把它们理解成:

BLOCK-SIMPLCSIM
核心定位程序块级仿真 / 单元测试PLC 系统级仿真
测试对象OB / FB / FCPLC 项目 / CPU
是否需要完整 PLC 环境不需要通常需要
硬件组态不需要可以涉及
I/O 系统作为测试输入输出可以进行系统级模拟
单个 FB/FC 快速测试适合相对复杂
自动化单元测试核心场景不是主要定位
回归测试适合可以实现,但粒度更大
AI 生成代码验证非常适合更偏系统验证
系统级 PLC 仿真不是目标核心场景

因此:

PLCSIM 是 PLC Simulator,BLOCK-SIM 是 PLC Block Simulator。

一个关注 PLC 系统,一个关注 程序块。

4、自动设计仿真用例

BLOCK-SIM 最核心的能力之一,是根据 PLC 程序块自动设计测试用例。

传统的单元测试需要工程师自己分析程序,然后手工设计:

  • 测试输入;
  • 初始状态;
  • 输入变化;
  • 执行周期;
  • 预期输出;
  • 边界条件;
  • 异常条件。

对于一个复杂的 FB 或 FC,这项工作本身就可能非常耗时。

BLOCK-SIM 可以分析程序块的输入、输出以及内部控制逻辑,自动设计适合当前程序的仿真测试用例。

对于包含计时、锁存、联锁等逻辑的程序,也可以根据程序结构设计相应的测试场景。

因此,工程师不需要从零开始考虑:

“这个 FB 到底应该怎么测试?”

而是可以让 BLOCK-SIM 先根据程序自动生成一组测试用例,再由工程师检查、调整和执行。

5、如何安装 BLOCK-SIM

打开 BLOCK-SIM 产品页面:

BLOCK-SIM 博途程序块级仿真与单元测试工具

根据当前使用的 TIA Portal 版本下载对应的 Add-In 插件。

目前支持的 TIA Portal 版本以产品页面提供的版本为准。

下载完成后,解压插件安装包。

找到对应版本的 .addin 文件,并将其安装到 TIA Portal 的 AddIns 目录。

以 TIA Portal V19 为例:

C:\Program Files\Siemens\Automation\Portal\V19\AddIns

安装完成后重新启动 TIA Portal。

打开 Options → Add-ins,确认 BLOCK-SIM 已经出现在 Add-ins 列表中。

5、使用方法

BLOCK-SIM 需要配合 TIA Portal Add-In 插件使用。

5.1 下载插件

首先下载插件压缩包:博途V19插件下载链接

下载完成后,将压缩包保存到本地。

5.2 安装 TIA Portal Add-In

下载完成后,解压插件安装包。

找到其中的 *.addin 文件,并将其复制到对应 TIA Portal 版本的 AddIns 目录。

例如 TIA Portal V19:

C:\Program Files\Siemens\Automation\Portal\V19\AddIns

完成复制后,TIA Portal 即可识别该插件。

5.3 激活插件

启动 TIA Portal,并打开需要分析的项目。

在 TIA Portal 的 Add-ins 面板中找到 REVERSE-DOCS 插件,并按照插件菜单完成激活。

5.4 选择程序块

在 TIA Portal 项目树中选择需要分析的程序块。在目标程序块上点击鼠标右键,在弹出的菜单中选择【逆向生成程序块文档】:

工具会读取当前程序块进行仿真。

7、BLOCK-SIM 适合什么场景?

BLOCK-SIM 主要适用于PLC 程序块的单元测试和回归测试,例如:

  • 新开发 FB/FC 的逻辑验证;
  • AI 生成 PLC 程序后的自动验证;
  • 电机、阀门、气缸等控制模块测试;
  • 状态机和顺序控制测试;
  • 联锁、许可和故障逻辑测试;
  • 计数器、定时器等功能测试;
  • 修改程序后的回归测试;
  • PLC 程序库开发和测试。

而当需要验证完整 PLC 项目、CPU 运行环境、硬件组态、I/O 或系统级交互时,则可以进一步使用 PLCSIM 等系统级仿真工具。

8、结束语

随着 PLC 程序越来越复杂,传统的“编程 → 下载 → 调试”方式也面临越来越高的验证成本。

在软件工程中,一个函数可以拥有自己的 Unit Test;同样,一个 PLC 的 FB、FC 也应该能够被独立测试。

BLOCK-SIM 希望做的,就是为 PLC 程序补上这一层能力。

它不试图替代 PLCSIM,也不负责模拟完整的 PLC 硬件和控制系统,而是专注于更小、更快、更适合自动化测试的程序块级仿真。

从自动设计测试用例,到执行块级仿真,再到 PASS/FAIL 验证,BLOCK-SIM 让 PLC 程序可以像软件模块一样被测试、验证和回归。

特别是在 AI 开始参与 PLC 编程之后,这种能力变得更加重要:

AI 负责生成程序,BLOCK-SIM 负责验证程序。

最终,我们希望 PLC 开发也能够逐步形成:

需求
 ↓
AI / 工程师编程
 ↓
BLOCK-SIM 单元测试
 ↓
PLCSIM 系统测试
 ↓
现场部署

让更多 PLC 程序在进入真实设备之前,先经过充分的自动化验证。


插件官网:TIA Portal 程序块仿真工具