> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# AI PLC 编程：7 个免费实战课，每课都能验收
- URL: https://www.hubwiz.com/blog/ai-plc-programming-7-lessons-verification/
- Published: 2026-10-20T02:09:22.000Z
- Updated: 2026-10-20T02:10:31.000Z
- Description: 7 个免费实战课：让 AI 在真实博途工程里写 SCL、读老工程、做变更分析、跑仿真验收，每课都以编译 0/0 或 PASS/FAIL 收尾。
- Author: admin
- Tags: PLC, AI 编程, 博途, SCL, 自动化

**一句话结论**：AI 写 PLC 程序最缺的不是"能不能写出来"，而是"写出来之后，谁拿什么证明它是对的"。[**PLC AI 实战**](https://tia.hubwiz.com/learn-lad/ai/?utm%5Fsource=blog&utm%5Fmedium=article&utm%5Fcampaign=ai-plc-programming-7-lessons-verification) 用 7 节免费图文课，把这件事拆成 7 个能核对的落点：编译 0 错误 0 警告、读回接口与需求一致、场景表 PASS/FAIL、重构前后逐点回归。没有视频、不卖课，也不提供下载。

---

## 一、AI PLC 编程的卡点，已经从"写"移到了"验收"

第一次让智能体写 SCL 的工程师，反馈几乎一样：**看着挺对，但不敢用**。

"看着挺对"来自模型的长处：接口、变量名、IF/THEN 结构，它写得像模像样。"不敢用"来自现场的常识：PLC 程序错了，代价不是一次编译报错，而是一条产线的误动作。

这套课最值钱的地方，是把三次真实翻车原样摆出来，而不是演示"AI 一次写对"：

1. **编译 0/0，但需求根本没实现。** 需求写的是"传感器触发后输出 2 秒"，实现用的是 `TON`。传感器只来一个扫描周期，`TON` 的 `ET` 永远到不了 2000 ms，输出一次都不会亮。
2. **编译 0/0，但设备一个都不动。** 重构三电机延时启停时，把 `TP` 写成 `TON`，编译照样 0 错误 0 警告；按一下按钮，三台电机一台都不启动。
3. **编译 0/0，但现场永远读不到。** 改一个 IO 地址时，TIA 编译器**不检查**"这个地址有没有物理通道"——改到本工程不存在的 `I30.0`，依然 0 错误 0 警告。

三件事的共同点是：**编译器管不了它们**。所以判据只有一条——每一步都要有能复核的证据，而不是 AI 的一句"已完成"。

## 二、这套课把"验证"分成四层，别混着用

这是全文最该记住的一张表。课程里每一课都会告诉你在哪一层，以及这一层**不能**证明什么：

| 层级                  | 谁来判                     | 能证明什么                       | 不能证明什么                     |
| ------------------- | ----------------------- | --------------------------- | -------------------------- |
| 结构校验（scl\_validate） | 云仿真服务的解析器               | 源码能被解析、结构合法                 | TIA 的编译规则、行为               |
| TIA 编译              | 博途编译器                   | 块能在你的工程里编译通过（0 错误 0 警告）     | 行为是否符合需求、地址是否真有通道          |
| 云仿真场景               | 扫描级仿真器                  | 给定输入序列下，输出断言是否成立（PASS/FAIL） | 硬件、总线、HMI、安全回路；也不等于 TIA 编译 |
| 虚拟 PLC / 现场         | S7-PLCSIM Advanced / 真机 | 下载后真实扫描行为、诊断与故障             | 安全功能、联锁、急停仍需人工评审           |

一个很现实的细节：`scl_validate` 返回 `ok: true` 只代表**能解析**。课程第一课里那个漏掉 `PT` 的定时器调用，结构校验很可能照样通过，而 TIA 编译会报 `Parameter 'PT' has to be used.`。

## 三、7 节课怎么排：从"能编译"到"能回归"

| 阶段 | 课程                          | 工具                        | 时长    | 落点（可验收物）                    |
| -- | --------------------------- | ------------------------- | ----- | --------------------------- |
| 入门 | 写一段 SCL：从需求到编译 0 错误 0 警告    | TiaLink                   | 30 分钟 | 编译 0/0 + 「需求 → 实现 → 结论」对照表  |
| 入门 | 用 AI 改造示例库里的第一个例子           | TiaLink                   | 20 分钟 | 点表 +1 标签、串 1 触点、编译 0/0、结构读回 |
| 进阶 | 读懂一套没注释的博途老工程               | TiaLink（只读）               | 25 分钟 | 《工程说明书》+ 人工核对清单，工程零改动       |
| 进阶 | 改一个 IO 地址，会影响谁？             | TiaLink（只读 + dryRun）      | 25 分钟 | 引用清单 + 风险清单 + 变更方案 + 预检结果   |
| 进阶 | 投运前先仿真：下载到虚拟 PLC            | TiaLink + PLCSIM Advanced | 35 分钟 | 场景表 + **实测值**               |
| 进阶 | 不装博途先跑一遍：把 SCL 跑成 PASS/FAIL | PLC 云仿真 MCP               | 35 分钟 | ALL PASS 报告 + scans 数       |
| 实战 | 重构不改行为：三段重复逻辑收成一个 FB        | TiaLink + PLCSIM          | 40 分钟 | 基线 vs 回归 逐点对照               |

合计约 **3.5 小时**。顺序不是按知识点排的，而是按工程里的真实顺序：写 → 改 → 读 → 评估影响 → 仿真 → 验收 → 回归。每课结尾都有一张「验证清单」，过不了就不算做完。

## 四、逐课看那 7 个真正会卡住人的点

### 1）写 SCL：第一版是 2 错误 2 警告

一节课的输入其实只有一段需求（`FB_Sorter`：`Start`/`SensorA`/`SensorB`/`Reset` 进，`DiverterA`/`DiverterB`/`Running` 出，互锁、2 秒输出、复位全清）。之后读工程、建 CPU、写块、导入、编译、修错、读回、保存，都是智能体自己做的。

实测环境：**TiaLink 1.1.0.0 + TIA Portal V19 + S7-1200（CPU 1214C，V4.6）**。第一版读完代码你会觉得"完全符合需求"，但导入编译后是 **2 错误 2 警告**：

- `[Error] Parameter 'PT' has to be used.` —— 定时器**每次调用**都必须带 `PT`，包括复位分支里那句 `#PulseA(IN := FALSE);`。正确做法是把复位条件并进 `IN`，每个扫描周期只调用一次计时器。
- `[Warning] The parameter '#Running' might not be initialized.` —— 输出在读取前没被确定赋值。用带初值的 Static 状态变量承载状态，最后 `#Running := #RunningState;` 无条件赋值。

改完才是 0/0。这里还埋着两条工程纪律：每轮导入都会在工程里留下一个**外部源文件**（多轮迭代后堆一堆），以及 **导入 ≠ 保存**——导入成功不等于落盘，关掉工程就丢。

### 2）改示例：别把它导进正在用的正式工程

第二课练的是工程里更高频的活：**拿现成逻辑改**。示例库里挑了最简单的「按钮翻转输出」（LAD 4 个网络），改造需求是加一个 `Enable`（`%I0.1`）：`Enable=0` 时强制断开输出，`Enable=1` 时保持翻转。

全流程只有两处改动：点表加 1 个标签、Network 2 的电源轨后串 1 个触点；编译 0/0 后读回结构验证 `Motor = Enable AND (Tag_1 OR Motor) AND NOT Tag_2`。

两个坑很实在：

- **`UId` 必须是十进制整数**，写成十六进制直接报错；
- **导入后 TIA 会重新编号 `UId`**，所以验证不能按 `UId` 断言，只能按结构读回。

还有一条前置纪律：示例自带 `Main (OB1)` 和 `Default tag table`，导入会**覆盖同名对象**，不要导进正式工程。先跑一遍基线 0/0，后面改造出问题才分得清是谁的锅。

### 3）读老工程：把"已确认 / 推断 / 无法确认"写进文档

第三课是纯只读：一套 MIT 开源示例工程 `PLC_SCADA_HMI`，5 个块（`OB1` \+ `FB2/FB3` \+ `DB12/DB13`）、51 个标签、HMI 3 个画面 40 个变量。产出是一份《工程说明书》，工程零改动。

实测立刻撞上老工程的三个典型形态：

- **CPU 是 F 型**（`1513F-1 PN`，`6ES7 513-1FL02-0AB0`，固件 V2.9），但程序里没有 F 块。这不等于"用错了硬件"，但必须单列成安全项交人工确认。
- **空接口的 FB 不是空块**：`Auto_mode` / `Manu_mode` 的接口区一个参数都没有，逻辑全写在对全局变量（`ZS-*`、`CV-*`、`HMI_*`、`SIM_*`）的读写上。这意味着"改动影响面"要用**变量**去追，不能用接口去追。
- **单个巨型网络**：`Auto_mode` 只有一个网络，里面有 36 个操作数；`Main` 的 4 个网络里，2 个是空的。把它当"一条 rung"讲一定是错的，只能按功能段拆（传感器链、执行器链、报警/仿真、MATLAB 握手）。

再加一条对账：51 个标签里 **6 个没有被任何 PLC 块引用**，其中 `HMI_PID` 值得单独拎出来——HMI 里有 PID 画面，但 PLC 里没有 PID 块、这个标签也没人引用，"PID 可能根本没实现"需要人工确认。这类结论不写"推断/无法确认"，说明书就是假的。

### 4）变更影响分析：编译 0/0 不代表现场能读到

第四课解决"敢改"。改动候选只有一个：把 `ZS-101`（Infeed Sensor）从 `%I29.0` 改到 `%I29.4`。全程只读，最后用 `dryRun` 预检方案。

实测结论比想象中干净，也比想象中危险：

- **引用点**：`Auto_mode` 6 处 + `Manu_mode` 2 处，**全是读**，块里 **0 处绝对地址**。所以块一行都不用改，只改点表——这才是"影响面"算清楚了。
- **HMI 侧是符号访问**（`AddressAccessMode=Symbolic`），地址变更会自动跟随；但画面和注释里写死的地址文字，**编译查不出来**，只能人工同步。
- **硬件对照**：`%I29.0` 属于 ET200SP 的 `DI 8x24VDC ST_2`（Input29），`I29.0–3` 被 `ZS-101..104` 占用，目标 `%I29.4` 是同一模块的空闲通道。
- **最危险的一条**：TIA 编译**不检查地址有没有物理通道**。改到不存在的地址照样 0 错误 0 警告，但现场永远读不到信号；而且改地址本质是改"物理接线 ↔ 地址"的对应，端子要挪，这只有人或图纸能确认。
- **`dryRun` 预检**返回 `{action: "overwrite", kind: "tagTable", tagCount: 27}`——你以为只改了一行，实际会覆盖整张 27 个标签的点表。没有这一步，改完才发现别的标签被回退，是很常见的事故。

### 5）虚拟 PLC：编译通过之后，行为才第一次有机会被看见

第五课把程序真的跑起来：把示例库的「排风机控制」（一个网络，`TOF` 1 分钟）下载到 **S7-PLCSIM Advanced 6.0** 的虚拟 PLC，按场景表给输入、看输出、**记录实测值**。

实测环境搭了 CPU `1516-3 PN/DP`。第一次整机编译是 **0 错误 1 警告**：`Inputs or outputs are used that do not exist in the configured hardware`——1516 没有板载 I/O，点表里的 `%I0.0`、`%Q0.0` 在硬件里"不存在"。插上一块 DI、一块 DQ（起始地址 0）之后，才变成 0/0。

虚拟 PLC 的顺序是固定的：**注册实例 → 上电 → 等 Stop → 下载 → RUN**。新注册的实例是空的，所以上电后必须等它到 Stop 再下载；`/sim/status` 返回 403 只有两种可能：TiaLink 带了 `--no-sim`，或者这台机器没装 PLCSIM Advanced。

四个场景跑下来，抓到一个"编译查不出、看图也容易读错"的行为：

**按停止按钮，排风机不会立即停。** 这个网络的 `TOF` 输入是 `Turn_On_PB AND NOT Turn_Off_PB`——对 `TOF` 来说，松开启动按钮和按停止按钮是**同一个下降沿**，风机都会继续排风 1 分钟。看一眼梯形图很容易读成"按停止就停"，行为只能由实测说了算。

交付物也因此变了：不是"我看过了，没问题"，而是**场景表 + 实测值 + 一句结论**。

### 6）云端仿真：把"触发"这个词写清楚

第六课换了一条更轻的路：**不装 TIA、不装 PLCSIM、不需要 Windows**，把同一段 SCL 交给 PLC 云仿真 MCP，在云端逐扫描执行，用场景表跑成 PASS/FAIL。

上手只要三步：微信登录 → 建一个 `sim_live_` 开头的 API Key → 把 `https://tia.hubwiz.com/sim/mcp` 配进任意支持 Streamable HTTP 的 MCP 客户端。端点暴露 6 个工具（`lad_*` / `scl_*`），本课只用 `scl_validate`、`scl_simulate`、`scl_run_scenario`。

计费和字段先记住，能省很多来回：

- `initialize`、`tools/list`、`resources/read` **不扣额度**，每次被接受的 `tools/call` 扣 1 次；新用户 100 次，这一课大约用 8–12 次；
- `tickMs` 默认 10 ms，所以 **100 tick = 1 秒**；
- `scl_simulate` 的步进单位叫 `scans`，`scl_run_scenario` 里叫 `ticks`——这是最容易写错的地方。

第一次跑验收，就拿到了课程里最典型的一条失败：

```
PASS  start latches, reset clears (3 step(s), 5 scan(s))
FAIL  sensor A pulse gives a 2 s diverter pulse: step 3 scan 100: DiverterA expected true, got false
FAIL  both sensors: A wins, only one output: step 2 scan 1: DiverterA expected true, got false
RESULT: FAIL (2 failure(s), 109 scan(s))

```

根因就是第一课那个 `TON`：延时接通要求 `IN` 连续为 1 满 `PT`，而传感器只来一个扫描周期。需求里的"触发后输出 2 秒"，被实现成了"持续压住 2 秒才输出"——**两件完全不同的事**。

换成 `TP`（固定脉宽）后三个场景都过了，但补一条"输出过程中按复位"又失败：`TP` 的脉冲**不会**被 `IN := FALSE` 掐断，`DiverterA := PulseA.Q AND NOT Reset` 只是把输出**遮住**，脉冲还在后台跑，复位一松开就又亮。最终方案是**锁存 + `TON` 计时结束**：把"正在输出"做成显式状态 `ActiveA/ActiveB`，`Reset` 直接清状态，互锁也改成检查对方的 `Active` 而不是输出。

跑到 ALL PASS 的规模是：**8 个场景 + 16 组 sweep + 5000 扫描 fuzz = 5735 个扫描周期**。报告已在本地 `scl-sim 0.1.0` 和线上端点回放（2026-10-19）：同一份 SCL + 同一份场景，得到相同的 PASS/FAIL 和 `scans` 数。

### 7）重构回归：`TP` 写成 `TON`，编译 0/0，三个电机一个都没动

最后一课补上"改结构但不改行为"。对象是示例库的「三电机延时启停」：按一下按钮打开 20 秒窗口，三台电机分别延时 5/10/15 秒启动，窗口一过全停。原程序在同一个网络里把 `TON` \+ 线圈写了三遍，只有 `PT` 和输出不同——典型的复制粘贴。

重构目标是收成**一个参数化 FB**（输入 `Enable`/`Pt`，输出 `Q`），实例化三次，点表、符号、地址一个都不动。

这节课作者自己也翻车了一次：顺手把 `IEC_Timer_0_DB` 的调用从 `TP` 写成 `TON`，编译照样 0 错误 0 警告，但按按钮后三个电机一个都不启动。改回 `TP` 后，同一张场景表逐点回归，前后完全一致。

所以这一课的两条纪律比代码更重要：

- **先存行为基线**：同一张场景表，改前跑一遍、改后跑一遍、逐格对比。没有基线就重构，等于拿现场当测试环境。
- **回归只信输出位和场景表**：结构化成员（比如 `DB.Ton.ET`）读不到就换证据，不要拿"看起来对"补空白。

## 五、人和 AI 的分工：这 7 课里，你其实只做三件事

课程刻意把人的动作压到很少，因为工业场景里更值得讨论的不是"AI 能不能写代码"，而是"哪些动作必须留在人手上"。7 课跑下来，分工基本是固定的：

| 环节     | 智能体做                                   | 人必须做                             |
| ------ | -------------------------------------- | -------------------------------- |
| 写 SCL  | 读工程、建 CPU、生成块、导入、编译、按编译结果自修、清理外部源文件、保存 | 说清需求；确认"先报告后改动"的那一次；抽查读回对照表      |
| 改示例    | 起点表、串触点、编译、结构读回                        | 确认改造边界（只改 Main 和点表）；确认这不是正式工程    |
| 读老工程   | 盘点设备/块/变量/HMI、导出、按块和网络归纳、标出未引用标签       | 判断哪些结论要升级为安全项；核对"推断"和"无法确认"两类    |
| 变更影响   | 扫引用、区分读写与符号/绝对地址、对硬件通道、dryRun 预检       | 决定改不改；确认端子与图纸；确认保存               |
| 虚拟 PLC | 建设备、插模块、导入、编译、注册、上电、下载、读写、填表           | 下载时点掉 TIA 授权窗；看场景表里"实测值"是否真的来自读数 |
| 云仿真    | 写场景 JSON、跑断言、定位失败扫描                    | 核对场景表是否漏需求（尤其是"触发"的定义）           |
| 重构回归   | 存基线、写参数化 FB、替换、重跑、逐点对比                 | 判断哪些块不许"顺手重构"；确认是否替换原程序          |

一句话概括：**动作可以交给 AI，判断不能。** 课程把判断做成清单和表格，就是为了让"人看一眼"变成"人核对一遍"。

## 六、四个常见问题

**Q1：一定要装博途才能学吗？** 不必须。7 课里有 1 课（云端 PASS/FAIL）完全不碰博途，只要浏览器、微信登录和任意支持 Streamable HTTP 的 MCP 客户端；其余 6 课需要 Windows + TIA Portal V19。

**Q2：TiaLink 会不会自己改我的工程？** 不会自动落盘。它把 Openness 能力封装成 MCP 工具，写入是显式动作；导入前有预检、默认不覆盖同名对象、导入后不自动保存——"导入 ≠ 保存"这句在 7 课里出现了不止一次。

**Q3：云仿真过了，是不是就等于程序没问题？** 不等于。云仿真只跑 SCL 的扫描语义，不跑总线、HMI、驱动、安全回路，也不是 TIA 编译器。它最擅长抓的恰恰是"编译 0/0 但行为不成立"这一类缺口，比如需求写"触发后输出 2 秒"、实现却是 `TON`。

**Q4：AI 写的块能直接进生产吗？** 不建议。课程口径始终是：AI 辅助、必须以编译与读回核对为准、改动必须人工复核；安全功能、联锁与急停不交给 AI。能进生产的不是"AI 写的代码"，而是"过了验收链的代码"。

## 七、怎么开始：两条路线，最短 20 分钟

**路线 A：有 Windows + TIA Portal V19**

1. 打开一个可以随便改的沙盒工程，启动 TiaLink（与博途同机），页首状态条会自动检测是否连接、项目名是否一致；
2. 客户端加一个 Streamable HTTP MCP 服务，URL 指向 `http://localhost:8080/mcp`，带 `Bearer` Token；跨机器时把 `localhost` 换成博途那台机器的局域网地址；
3. 从「用 AI 改造示例库里的第一个例子」开始（20 分钟，改动最小、验证最快），再回到「写 SCL 到 0/0」（30 分钟）；
4. 如果健康检查里白名单那项不通过，第一次写入 TIA 会弹授权窗——这一下只能人工点确认，先跑一次 `TiaLink.Helper.exe` 可以免掉。

**路线 B：暂时没有博途**

1. 打开 PLC 云仿真，微信扫码登录，建一个 API Key（只在创建时显示一次，别提交到仓库）；
2. MCP 端点填 `https://tia.hubwiz.com/sim/mcp`；
3. 直接做「不装博途先跑一遍」那一课，练习对象就是路线 A 里那个已经编译 0/0 的 `FB_Sorter`——你会亲眼看到它在云仿真里先 FAIL 两次。

## 八、边界：这套课不提供什么

- **不提供下载**。设计如此：不落地文件，只走 TiaLink 导入，导入前有预检、导入后不自动保存。
- **云仿真课只上传示例或脱敏代码**。不要把客户工程贴到云端；需要动博途的课，操作全部在你本机完成，工程数据不出厂。
- **仿真通过不是现场验收**。PLCSIM 只仿真 CPU 行为，总线、HMI、驱动、安全回路都不在范围内；云仿真更只跑 SCL 的扫描语义。
- **改动必须人工复核**。安全功能、联锁与急停不交给 AI；AI 生成的代码一律先按"待验证"对待。
- **版本相关**。课程按 TiaLink 1.1.0.0 + TIA Portal V19 + S7-PLCSIM Advanced 6.0 实测，版本不同，报错文案和工具名可能变化——所以课程反复强调看结构化结果，别按报错文字硬匹配。

## 九、适合谁，不适合谁

**适合**：会用博途、但"AI 写的块不敢进工程"的工程师；接手老工程、想先拿到说明书再动手的人；要带新人、需要一套可检查的练习路径的人；以及要判断"AI 到底能替你做哪一步"的技术负责人。

**不适合**：没摸过 TIA Portal 的（先去 [示例库 60 例](https://tia.hubwiz.com/learn-lad/?utm%5Fsource=blog&utm%5Fmedium=article&utm%5Fcampaign=ai-plc-programming-7-lessons-verification) 练手）；想找"一键生成梯形图、直接下载工程"的；想跳过人工评审和安全验证的。

## 十、小结

把 7 课串起来看，它讲的其实不是"AI 有多能写"，而是**一条可复核的交付链**：

写出来 → 编译过 → 读回对 → 影响算清 → 仿真跑通 → 场景 PASS → 重构后行为不变。

每一步都有一个不依赖 AI 自述的判据。这也是这套课最值得抄走的部分：哪怕你不用 TiaLink、不用云仿真，把"每步都要有证据"这条原则搬到你自己的流程里，AI 才真的能进工程。

想直接开始：20 分钟的 [改造示例](https://tia.hubwiz.com/learn-lad/ai/modify-example/?utm%5Fsource=blog&utm%5Fmedium=article&utm%5Fcampaign=ai-plc-programming-7-lessons-verification)，或者 35 分钟的 [云端 PASS/FAIL 验收](https://tia.hubwiz.com/learn-lad/ai/cloud-sim-scenarios/?utm%5Fsource=blog&utm%5Fmedium=article&utm%5Fcampaign=ai-plc-programming-7-lessons-verification)。

---

## 核验说明

- 课程结构、7 节课的步骤、实测数字（编译 0/0、2 错误 2 警告、36 个操作数、51 个标签中 6 个未引用、5735 个扫描周期、`dryRun` 27 个标签等）均来自 Learn-LAD 官方课程页 [https://tia.hubwiz.com/learn-lad/ai/](https://tia.hubwiz.com/learn-lad/ai/?utm%5Fsource=blog&utm%5Fmedium=article&utm%5Fcampaign=ai-plc-programming-7-lessons-verification) 及其 7 个子页，核验日期 2026-10-20。
- 课程声明的实测环境为 TiaLink 1.1.0.0 + TIA Portal V19 + S7-PLCSIM Advanced 6.0；云仿真报告在 `scl-sim 0.1.0` 与线上端点回放一致（2026-10-19）。
- 本文未做独立复测，数字与结论以官方页面为准；版本与工具数量可能随更新变化。

## 延伸阅读（本站）

- [AI × 工业 / PLC 完全指南](https://www.hubwiz.com/blog/ai-industrial-stack/)
- [AI 写 PLC 程序：哪些真能用、哪些还是噱头](https://www.hubwiz.com/blog/ai-transforming-plc-programming-what-works/)
- [西门子 PLC 梯形图示例库：60 个可导入博途的练习题](https://www.hubwiz.com/blog/siemens-plc-ladder-example-library/)
- [接手别人的 PLC 程序：动第一行代码前的 4 步取证](https://www.hubwiz.com/blog/taking-over-legacy-plc-program-4-steps/)
- [梯形图转 SCL 迁移实战指南：能自动转什么、哪些必须重构、怎么验证](https://www.hubwiz.com/blog/lad-to-scl-migration-guide-tia-portal/)
- [没有硬件也能练 PLC：Factory I/O + OpenPLC 虚拟实验台](https://www.hubwiz.com/blog/virtual-plc-lab-factory-io-openplc-modbus-tcp/)

工具入口：[PLC AI 实战课程](https://tia.hubwiz.com/learn-lad/ai/?utm%5Fsource=blog&utm%5Fmedium=article&utm%5Fcampaign=ai-plc-programming-7-lessons-verification) ｜ [TiaLink](https://tia.hubwiz.com/tia-link?utm%5Fsource=blog&utm%5Fmedium=article&utm%5Fcampaign=ai-plc-programming-7-lessons-verification) ｜ [PLC 云仿真](https://tia.hubwiz.com/sim/?utm%5Fsource=blog&utm%5Fmedium=article&utm%5Fcampaign=ai-plc-programming-7-lessons-verification) ｜ [梯形图转 SCL](https://tia.hubwiz.com/lad2scl?utm%5Fsource=blog&utm%5Fmedium=article&utm%5Fcampaign=ai-plc-programming-7-lessons-verification) ｜ [文本转梯形图](https://tia.hubwiz.com/txt2scl?utm%5Fsource=blog&utm%5Fmedium=article&utm%5Fcampaign=ai-plc-programming-7-lessons-verification) ｜ [TIA Forge 总入口](https://tia.hubwiz.com/tia-forge?utm%5Fsource=blog&utm%5Fmedium=article&utm%5Fcampaign=ai-plc-programming-7-lessons-verification)

本文由汇智网（hubwiz.com）编译整理，转载请注明出处。

> **这是「AI × 工业 / PLC」专题的一部分。**完整地图见：[AI × 工业 / PLC 完全指南](https://www.hubwiz.com/blog/ai-industrial-stack/)