Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

S7-1200 + SCL 系统学习仓库

为有 10 年 C/Python 经验、零 PLC 基础的软件工程师定制。 全部材料于 2026-09 整理:资源经联网逐条核实,技术断言经多轮独立复核修正,存疑处一律标注 (待核实)。 目标:约 3 个月(每天 1~2 小时)从零到能独立交付 SCL 工程。

本地阅读(网站版)

本仓库同时是一份可构建的静态网站(全部 Rust 工具链: mdBook + Pagefind + 自定义渲染后端), 支持中文全文搜索与 SCL 语法高亮:

build.cmd                     :: 一键构建(产物在 book\html\, 可部署到任何静态托管)
tools\mdbook.exe serve        :: 边写边看: http://localhost:3000(改动自动重建, 搜索索引同步刷新)
路径角色
根目录 *.md唯一的内容源(直接编辑这些文件)
src\book\构建中间产物与产物(build.cmd 自动生成, 已 gitignore)
book.toml / SUMMARY.md站点配置与章节目录
scl-highlight.jsSCL 语法定义(注册进 mdBook 自带的 highlight.js, 高亮 VAR_INPUT/TON/%I0.0/T#3s 等)
tools\mdBook 与 Pagefind 的 Windows 二进制
pagefind-renderer\Rust 小工具: 注册为 mdBook 渲染后端, 每次构建自动重建中文搜索索引

一句话定位

SCL 语法对你不是难点(它是 Pascal 方言,一周末就能上手)——真正的学习曲线是三件事: 扫描周期思维(程序不是事件驱动,是每周期整体重入)、块与存储模型(OB/FB/FC/DB,没有 heap 没有递归)、TIA Portal 工作流与调试手段(没有断点没有 printf)。本仓库按这个优先级组织。

仓库导航

文件内容什么时候读
01-环境搭建.mdTIA Portal 选版/试用/安装排坑, PLCSIM 能力边界, CODESYS 替代, 硬件选购, 第一个项目分步走查第 1 周, 边装边读
02-PLC核心概念-面向C与Python开发者.md扫描周期/看门狗/存储体系/数据类型/块模型/接口语义/寻址/PROFINET/诊断 + 概念对照总表与类比失效清单第 2 周, 思维转变的关键章
03-SCL语法完全参考.md核心工具书: 词法/声明/运算符/控制流/FC/FB/定时器计数器/VARIANT/字符串/时间/运行时错误/字节序 + C/Python 速查大表第 2~4 周通读, 此后随写随查
04-标准库与常用功能.md指令体系, 模拟量 27648 与 NORM_X/SCALE_X, PID_Compact, HSC, 运动控制, 全部通信方式, 库工程化, 诊断指令第 5~8 周, 按需精读
05-常见陷阱与最佳实践.md27 个陷阱(现象/根因/正确写法/C 对照) + 命名/UDT/状态机骨架/版本管理/下载语义第 4 周先通读一遍, 之后每次踩坑回查
06-练习项目阶梯.mdL0~L3 共 13 题: 起保停 → 定时/计数 → 滤波/解析/排序 → 交通灯/电机FB/PID/Modbus/HMI/小产线与各阶段同步做, 是主线
07-学习资源清单.md45 条已核实资源: 官方文档/书/视频/课程/论坛/示例代码 + 使用顺序 + 答疑地图随时查

学习路线图

阶段 0: 破冰(第 1 周)

  • : 01 全文(跟着把 TIA Portal + PLCSIM 装好, 跑通第一个起保停)。
  • : 练习 0.1(观察扫描计数器, 理解“程序被周期性执行“)。
  • 里程碑: 30 分钟内独立完成“新建项目 → SCL FB → OB1 调用 → 编译 0 error → 下载仿真 → Watch table 驱动“全流程; 能解释 Modify 在仿真与真机上的语义差异。
  • 提示: 21 天试用一次性生效, 留给集中练习; 日常语法手感可用免费 CODESYS 过渡(语法约六七成相通, 见 01 §5)。

阶段 1: 思维与语法(第 2~4 周)

  • : 02(执行模型与块模型——最重要的一章) → 03(语法参考通读一遍, 别背, 建立索引)。
  • : 练习 L1 全部(1.1~1.4) + L2 的 2.4(体会“就是普通编程“与 TEMP/短路求值两个 PLC 特有的坑)。
  • 里程碑: 能不查书写出启保停/延时/振荡器/计数/单按钮启停; 能说清 FC 与 FB 的区别、VAR_TEMP 为什么不能存状态、TON 为什么是“有状态对象“; :== 不再写反。
  • 检验方法: 把 03 附录 B 的 C 状态机裸译成 SCL, 一次编译通过。

阶段 2: 工程化(第 5~8 周)

  • : 05 通读(27 个陷阱是别人交过学费的清单) → 04 精读(模拟量/PID/指令体系) → 07 的 Styleguide 条目。
  • : 练习 2.1~2.3 + 3.1(交通灯状态机) + 3.2(通用电机 FB 多实例)。
  • 里程碑: 写 FB 前先想“哪些状态放 static、哪些走 InOut“; 能用 CASE+CONSTANT 手写状态机骨架; 能解释优化 DB 与标准 DB 的取舍、为什么通信映射要标准 DB; 模拟量换算带质量码与滞回。
  • 同步开始: 用 05 最佳实践 6 的方法把 SCL 块导出为文本源纳入 git(TIA V21 起有原生 Git 集成)。

阶段 3: 系统集成(第 9~12 周)

  • : 练习 3.3(PID + 仿真对象) → 3.4(Modbus/通信, 注意 PLCSIM 限制与替代) → 3.5(HMI) → 3.6(小产线综合项目)。
  • : 04 通信与库工程化章节回炉; 07 按需(进阶方向)。
  • 里程碑: 独立完成 3.6 并能在 20 分钟内讲清块结构与数据流; 遇到报错先查诊断缓冲再查答疑地图(07 §9)。

之后的方向

S7-1500 / PROFINET 深入与诊断 / 安全 PLC(F-CPU+PROFIsafe) / 运动控制(Technology Objects) / SCADA(WinCC Professional) / 官方认证(TIA-PRO1→PRO2→PRO3, 见 07)。

十条速记(反直觉事实, 现在就记住)

  1. 赋值是 :=, 比较是 =——与 C 相反; 没有 ==
  2. 看门狗默认 150 ms 恒启用(1~6000 ms 可配): 阻塞循环两次超时直接 STOP, PLC 没有 sleep。
  3. S7-1200 没有断点调试(断点是 300/400/1500 的能力); 调试 = Watch table + 程序状态 + Trace + 诊断缓冲。
  4. TIME_TCK()、REF 引用、POINTER/ANY、LTIME、SIMATIC 遗留定时器都是 S7-1500 专属, 1200 编译报错; 测耗时用 RUNTIME()
  5. Array[*] 变长形参 1200 支持, 但要优化块 + 固件 ≥ V4.2(FC 仅 Input/InOut 区)。
  6. 除零不炸: 结果 0 + ENO=0 + 继续 RUN; 数组越界在 1200 上也只记诊断缓冲——错误哲学是“留痕不中断“。
  7. SCL 布尔表达式不短路: i <= n AND a[i] > 0 的守卫无效, 必须拆嵌套 IF。
  8. TIA 新建 DB 默认优化访问: 没有 % 地址、PEEK/POKE/AT/通信映射都要改用标准 DB。
  9. PLCSIM(标准版)不仿真 Modbus TCP/真实 TCP/OPC UA/Web server/Trace; PID_Compact V2.x 不能在一代 1200 上仿真; PLCSIM Advanced 不支持一代 1200。
  10. 标识符大小写不敏感: MotorMOTOR 是同一个变量(重名报错)。

学习心法(给程序员的)

  • 文字优先, 视频辅助: 对你而言官方手册与教材的信噪比远高于视频; 卡在“看不见的操作“时再看对应视频(07 有映射)。
  • 每个阶段以“能写出并下载一个可运行的块“为完成标志, 不以读了多少为准。
  • 类比是脚手架: 02 §12 的“类比何时失效“清单每条都是真事故来源, 与 05 的 27 个陷阱对照读。
  • 把 F1(在线帮助)和 TIA Portal Information System 当 cppreference 用——所有中文教程都会过时, 它们不会。
  • 存疑即标注: 仓库所有 (待核实) 都鼓励你用 F1 实测补全, 这本身就是学习。

环境速览(详见 01)

  • TIA Portal 当前最新 V21(2025-11/12 发布); 学习用 V17~V21 皆可, 跟新教材注意版本差异; 项目文件只能“高版本开低版本“。
  • 试用版 21 天一次性(SIOS Entry 109989774); PLCSIM 随 TIA 免费仿真, 无需硬件即可完成 06 的 L0~L2 全部与 L3 大部分(通信/HMI 题有替代方案)。
  • 免费替代: CODESYS(IDE 免费, 运行时 2 小时 Demo)练 ST 手感。

本仓库由 Claude Code 生成于 2026-09-05: 22 个调研/写作 agent 并行工作, 45 条资源逐条核实(全部通过), 《常见陷阱》经 3 名独立审稿人对照官方文档复核修正。所有事实性断言以西门子官方文档为准(docs.tia.siemens.cloud 与 S7-1200 System Manual, Entry 109977302)。