本文由《200smart》系列学习笔记整理而成,面向 S7-200 SMART 的初学者,把入门阶段最常用的基础指令按逻辑顺序串成一篇,方便快速查阅。
一、PLC 概述
PLC(可编程逻辑控制器)是工业现场的控制核心,S7-200 SMART 是西门子面向小型自动化应用的主力机型。
- 按结构分类:整体式(CPU 与 I/O 一体,适合小规模)与模块式(电源、CPU、I/O 模块自由组合,扩展灵活)。
- 按 I/O 点数分级:点数越多,控制规模越大,选型时需预留一定余量。
- 扫描周期:PLC 循环执行「输入扫描 → 用户程序执行 → 输出刷新」三个步骤,周期时间决定了控制响应的快慢。
- 五大功能:逻辑控制、数据处理、模拟量处理、运动控制、通信联网。
二、输入输出与接线基础
I/O 是什么? 输入(I)是 PLC 读取外部信号(按钮、传感器等)的通道,输出(Q)是 PLC 驱动外部设备(接触器、指示灯等)的通道。输入点需要形成闭合回路才能被识别,接线前先看铭牌确认型号与供电规格。
典型的控制链路:
PLC 输出 → KA 中间继电器 → KM 接触器 → 设备- 小电流信号用 PLC 输出直接驱动中间继电器 KA,再由 KA 驱动大电流接触器 KM,避免 PLC 输出点过载。
- 输出形式:继电器输出(可带交直流负载,响应较慢)、晶体管输出(响应快,只能带直流负载)、晶闸管输出(适合交流负载)。
- 西门子常见接法(PNP):输入公共端 1M 接 0V,PNP 传感器输出 24V 作为有效信号。
源型、漏型与 PNP/NPN
- PNP 型:信号有效时输出高电平(24V),常用于西门子 PLC,1M 接 0V。
- NPN 型:信号有效时输出低电平(0V),1M 接 24V。
- 两种传感器不能混用,选型时必须和 PLC 输入端匹配。
- 说明:不同品牌对「源型 / 漏型」的叫法可能相反(日系与欧系习惯不同),接线时以所选 PLC 手册的接线图为准。
三、基本位逻辑指令
梯形图由「母线 + 触点 + 线圈」构成,指令逻辑直观,是 S7-200 SMART 编程的基础。
触点指令(读取):
| 指令 | 含义 |
|---|---|
| LD / LDN | 常开 / 常闭开始(对应母线) |
| A / AN | 常开 / 常闭串联 |
| O / ON | 常开 / 常闭并联 |
| NOT | 取反 |
| EU / ED | 上升沿 / 下降沿 |
线圈指令(输出):
| 指令 | 含义 |
|---|---|
| = | 输出线圈,仅当前条件成立时导通 |
| S / R | 置位 / 复位,状态可保持 |
- 上升沿 / 下降沿:信号从 0 变 1 触发一次是上升沿,从 1 变 0 触发一次是下降沿。传感器用常开触点时配上升沿,用常闭触点时配下降沿。
- 置位复位:S 与 R 用于需要保持状态的场合,比普通线圈更稳定。
- SM 特殊存储器位:如 SM0.0(常 ON)、SM0.1(首次扫描脉冲)等,提供系统状态与特殊功能。
- NOP 为空操作指令,常用于调试占位。
四、定时器指令
定时器是顺序控制中最常用的指令,S7-200 SMART 提供三种:
- TON:接通延时定时器,条件满足后延时动作。
- TONR:保持型定时器,累计计时,断电不清零,需用 R 指令复位。
- TOF:断开延时定时器,条件消失后延时复位。
要点:
- 时间基准分 1ms、10ms、100ms 三档,一般默认用 100ms。
- 延时时间 = 设定值 × 时间基数。例如设定值 50、基准 100ms,延时 5 秒。
- 定时器编号(T0~T255)不可重复使用,一个编号只能定义一种定时器。
- 保持型定时器(TONR)必须用复位指令清零,否则会一直累计。

五、计数器指令
官方提供 CTU(加计数)、CTD(减计数)、CTUD(加减计数)三种计数器,使用时注意编号不可重复。
作者更推荐自建计数器:用一个普通位做“计数触发”,配合比较指令判断计数目标,达到目标值后驱动输出并复位。这样逻辑透明、便于记忆和调试,实际项目中很实用。
六、比较指令
比较指令用于判断两个操作数的大小关系:=、>、<、>=、<=、<>,支持数值与字符串比较。
- 指令上方放比较值,下方放被比较值(上对下比较)。
- 两个输入不能同时为常量,至少一侧用变量。
- 常用于设定阈值:比如模拟量超限报警、计数器到达目标等。
七、数据类型与存储区
S7-200 SMART 的数据按位、字节、字、双字组织,常用存储区如下:
| 存储区 | 用途 |
|---|---|
| I / Q | 数字量输入 / 输出映像区 |
| AI / AQ | 模拟量输入 / 输出(0~27648) |
| M | 中间继电器区,常与 HMI 交互 |
| SM | 特殊存储器,系统状态与功能 |
| V | 变量存储区,容量大,可存大量数据 |
| T / C | 定时器 / 计数器当前值与状态 |
| HC / AC | 高速计数器 / 累加器(AC0~AC3) |
| L / S | 局部存储器 / 顺序控制继电器 |
提示:M 区适合做 HMI 交互的中间量;需要保存大量数据时优先用 V 区;模拟量转换后的数值范围是 0~27648(12 位分辨率)。
八、传送与块传送指令
- MOV 传送:把数据从 IN 送到 OUT,要求源与目标数据类型一致(字节对字节、字对字、双字对双字)。
- 块传送 BLKMOV:把 IN 开始的 N 个连续数据整体传送到目标区,适合批量搬运。
- SWAP 字节交换:交换字的高低位字节,通常配合上升沿 / 下降沿使用,只在边沿触发一次。
九、数学与算术运算指令
- MUL 乘法:16 位 × 16 位 → 32 位结果;MUL-I 整数乘整数,MUL-DI 双整数乘双整数。
- DIV 除法:16 位 ÷ 16 位 → 32 位结果,低 16 位为商,高 16 位为余数;另有 DIV-I、DIV-DI 变体。
- 重要约束:除数不能为 0,否则报错,程序应先用比较指令判断。
- INC / DEC:加 1 / 减 1,常用于计数器、步进控制等场景。

十、转换指令
不同数据类型之间需要显式转换,例如整数转浮点、BCD 码转整数等。
- 转换前注意数值范围,超出目标类型范围会出错。
- TRUNC:浮点数转 32 位整数,直接截取整数部分(不做四舍五入)。
- 涉及小数运算时,建议先转浮点计算,再按需转回整数。
十一、时钟指令
S7-200 SMART 提供读写实时时钟的指令:
- Read(读时钟):读取 PLC 当前时间。
- Set(写时钟):设置 PLC 时间,通常需要先把 PLC 时间调整到与 PC 时间一致。
- 时钟数据占用 8 个字节(年、月、日、时、分、秒、星期等),使用前需要做 BCD 与数值之间的转换。
十二、移位指令
移位指令用于按位搬运数据,是流水灯、顺序控制等场景的利器。
- 左移:数值左移 n 位 ≈ 乘以 2ⁿ;右移 ≈ 除以 2ⁿ。
- 循环移位:移出的位从另一端补回,数据不会丢失。
- SHRB 移位寄存器:包含 DATA(数据位)、S_BIT(起始位)、N(移位次数),N 为正向左移、为负向右移。
- 应用示例:用 M0.0 作为起始位,通过 SHRB 把 1 依次移到 Q0.0~Q0.6,即可实现依次点亮的流水灯效果。

十三、跳转、循环与子程序
- JMP / LBL:程序跳转,标号范围为 0~255,支持多个跳转到同一标号;条件不满足时跳过中间逻辑,可缩短扫描时间。
- FOR / NEXT:循环执行,注意单次扫描周期内的循环耗时不宜过长(一般控制在约 400ms 以内,具体以手册为准);若时间紧张可用看门狗(WDR)延长允许时间(约 500ms 级别,需结合实际手册确认)。
- 主程序 MAIN:PLC 每个扫描周期都会执行;子程序只在被调用时才执行,结构更清晰。
- 带参子程序:支持 IN(输入)、OUT(输出)、IN_OUT(输入输出)、TEMP(临时变量),适合封装成可复用的程序库模块。
- 断电保持:需要断电保持的数据区在「系统块 → 保持范围 → 设置」,设置后下载到 PLC 即可生效。

小结
从位逻辑、定时器、计数器到传送、运算、移位,再到子程序封装,这些基础指令几乎覆盖了 S7-200 SMART 入门阶段的全部常用功能。掌握「扫描周期」和「数据类型」两条主线,再配合实际项目的梯形图练习,就能快速上手。