Reverse-docs: PLC文档逆向生成器

REVERSE-DOCS 可以读取 TIA Portal 中的 PLC 程序块,对程序逻辑进行分析,并自动生成结构化的技术文档,帮助工程师快速了解一个程序块“做了什么、用了什么、依赖什么”。

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

在西门子 TIA Portal 项目中,大量 PLC 程序经过多年迭代后,往往存在一个非常现实的问题:程序还在运行,但文档已经找不到了。

尤其是维护历史项目时,工程师经常需要面对大量缺少注释、缺少设计说明的 OB、FB 和 FC。想要理解一个程序块的功能,只能逐行阅读梯形图或 SCL,分析变量、调用关系、状态机、联锁条件以及外部引用。

为了帮助工程师快速理解和维护这些历史 PLC 程序,我们推出了 REVERSE-DOCS 博途程序块逆向文档生成工具。

REVERSE-DOCS 可以读取 TIA Portal 中的 PLC 程序块,对程序逻辑进行分析,并自动生成结构化的技术文档,帮助工程师快速了解一个程序块“做了什么、用了什么、依赖什么”。

1、REVERSE-DOCS 解决的问题

在实际 PLC 项目维护过程中,经常会遇到以下场景:

  • 老项目经过多年修改,原始设计文档已经丢失;
  • PLC 程序只有代码和少量注释,新工程师很难快速理解;
  • FB/FC 内部逻辑复杂,需要人工分析大量网络;
  • 程序中包含状态机、联锁、许可等复杂控制逻辑;
  • 需要进行项目交接,但缺少完整的程序说明;
  • 需要对历史程序进行维护、重构或者二次开发;
  • 希望让 AI 或其他开发工具能够更容易理解现有 PLC 程序。

传统方式下,工程师通常需要打开 TIA Portal,逐个程序块查看代码,然后手工整理变量、控制逻辑和调用关系。

对于一个规模较大的 PLC 项目,这项工作可能需要花费大量时间。

REVERSE-DOCS 的目标,就是把这个过程自动化。

它不是简单地把 PLC 代码转换成另一种格式,而是从已有程序中提取信息,分析程序逻辑,并生成面向工程师阅读的技术文档。

2、支持的 PLC 程序块

REVERSE-DOCS 支持常见的 TIA Portal 程序块:

  • OB —— 组织块
  • FB —— 函数块
  • FC —— 函数

同时支持不同的 PLC 编程语言:

  • SCL
  • LAD(梯形图)

因此,无论历史项目主要使用 LAD 还是 SCL,都可以通过 REVERSE-DOCS 对程序进行逆向分析。

3、自动生成技术文档

REVERSE-DOCS 会围绕程序块的结构和控制逻辑生成技术文档。

生成的内容包括:

3.1 程序块基本信息

首先整理程序块的基本信息,包括程序块类型以及相关的程序结构信息。

这样在阅读大量程序块时,可以快速了解当前程序块的作用和定位。

3.2 功能说明

根据程序代码和控制逻辑生成程序块的功能说明。

例如一个 FB 可能包含电机控制、自动运行、故障处理等多个部分,文档会尝试从代码结构中总结其主要功能。

3.3 变量说明

整理程序块中的输入、输出、输入输出以及内部变量,并结合程序中的使用情况辅助理解变量作用。

这样可以减少工程师逐个查找变量引用的工作。

3.4 控制逻辑

对程序中的主要控制逻辑进行整理,帮助工程师从“代码”进一步理解“控制过程”。

例如:

  • 启停逻辑
  • 自动/手动逻辑
  • 条件判断
  • 顺序控制
  • 故障处理
  • 输出控制

3.5 状态机分析

对于包含状态机的程序,REVERSE-DOCS 会尝试识别程序中的状态以及状态之间的转换关系。

这对于分析复杂的顺序控制程序尤其有帮助。

例如:

IDLE
  ↓
STARTING
  ↓
RUNNING
  ↓
STOPPING
  ↓
IDLE

通过这种方式,工程师不需要完全依赖代码阅读,也可以快速建立对程序运行过程的整体认识。

3.6 联锁与许可

PLC 程序中经常存在大量 Interlock、Permissive 和保护条件。

这些条件往往散落在不同的网络和判断逻辑中,也是维护人员最需要理解的部分之一。

REVERSE-DOCS 会对相关逻辑进行整理,帮助工程师快速了解:

  • 哪些条件允许设备启动;
  • 哪些条件会阻止设备运行;
  • 哪些条件会触发停止;
  • 哪些条件用于故障保护。

3.7 外部引用

对于程序块中使用的外部变量、其他程序块以及相关引用进行整理。

通过这些信息,可以进一步了解当前程序块与整个 PLC 程序之间的关系。

3.8 I/O 标签

对于程序中使用的 I/O 标签进行整理,帮助工程师了解程序与现场设备之间的关系。

3.9 程序总结

最后,根据前面的分析生成程序块的整体总结。

工程师可以先阅读总结,再根据需要深入查看具体的控制逻辑。

这样可以明显降低阅读历史 PLC 程序的成本。

4、自动匹配 TIA Portal 当前语言

REVERSE-DOCS 会根据 TIA Portal 当前项目语言自动选择生成文档的语言。

例如项目使用中文环境时,可以生成中文技术文档;使用其他语言环境时,则可以匹配对应的文档语言。

同时,PLC 程序中的标识符和代码保持原样,避免因为翻译变量名而影响工程师与实际程序之间的对应关系。

例如:

Motor_Start
Motor_Stop
Motor_Fault
Auto_Mode
Emergency_Stop

这些程序中的标识符仍然保持原样,而文档说明可以使用当前项目对应的自然语言。

5、使用方法

REVERSE-DOCS 需要配合 TIA Portal Add-In 插件使用。

5.1 下载插件

REVERSE-DOCS工具需要配合 TIA Portal Add-In 插件使用。

首先下载插件压缩包:博途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 项目树中选择需要分析的程序块。在目标程序块上点击鼠标右键,在弹出的菜单中选择【逆向生成程序块文档】:

工具会读取当前程序块,并生成对应的Markdown文档。

5.5 查看生成的技术文档

工具会读取当前程序块,对程序结构和控制逻辑进行分析,并生成对应的技术文档。

工程师可以利用生成的文档快速了解程序块的:

  • 功能;
  • 变量;
  • 控制逻辑;
  • 状态机;
  • 联锁和许可;
  • 外部引用;
  • I/O;
  • 整体功能。

这样就不需要从第一行代码开始逐步阅读整个程序。

6、特别适合历史 PLC 项目维护

REVERSE-DOCS 一个重要的应用场景,就是历史项目逆向分析。

很多 PLC 项目并不是从零开始开发,而是经过多年持续修改:

原始项目
   ↓
第一次现场修改
   ↓
第二次设备改造
   ↓
增加新的联锁
   ↓
增加新的运行模式
   ↓
增加故障处理
   ↓
多年后的当前版本

随着项目不断演进,最初的设计文档可能已经无法准确反映当前程序。

这时候,PLC 程序本身才是最接近当前实际控制逻辑的“事实来源”。

REVERSE-DOCS 的思路就是从当前程序反向生成文档,让技术文档重新与实际代码建立联系。

7、让 PLC 程序重新变得“可读”

PLC 程序和普通软件一样,也会随着项目不断演进而变得复杂。

区别在于,很多工业项目的生命周期可能非常长,一个 PLC 项目可能会被不同工程师维护很多年。

因此,程序的可理解性和可维护性非常重要。

REVERSE-DOCS 可以把:

PLC 程序代码
        ↓
    程序结构分析
        ↓
    控制逻辑分析
        ↓
    技术文档

形成一个自动化的逆向流程。

对于新工程师来说,可以先通过文档了解程序,再深入代码。

对于经验丰富的工程师来说,也可以快速定位关键逻辑,减少阅读大量程序代码的时间。

8、结束语

PLC 项目最难维护的,很多时候并不是代码本身,而是没人知道代码为什么这样写。

REVERSE-DOCS 希望解决的,就是 PLC 程序与技术文档之间长期存在的断层。

通过自动分析 TIA Portal 中的 OB、FB、FC 程序,并从 LAD 和 SCL 中提取程序结构、变量、控制逻辑、状态机、联锁、外部引用和 I/O 信息,REVERSE-DOCS 可以帮助工程师快速重新理解已有 PLC 程序。

对于需要进行历史项目维护、程序交接、设备改造、程序审查和二次开发的 PLC 工程师来说,逆向生成技术文档可以成为程序分析过程中的一个实用工具。


插件官网:TIA Portal 程序块技术文档逆向生成工具