3. 梯形图编程基础与位逻辑指令

梯形图(LAD)是S7-1200最常用的编程语言,它的外形来源于继电器控制电路:左右两条竖线代表能流母线,触点、线圈等元件像梯子的横档一样连接在母线之间。理解梯形图的关键,是把它当作“能流路径”来看——能流从左母线出发,经过一系列条件判断,最终决定右侧线圈是否得电。本节围绕常开触点、常闭触点、线圈、置位/复位指令展开,并以电机启停控制为完整示例,走通从编程到仿真的全过程。

一、位逻辑指令的基本元件

常开触点(--| |--):对应布尔变量为1时导通,为0时断开。它相当于一个“按下才通”的按钮,或一个“满足条件才通”的判断点。在S7-1200中,常开触点直接引用变量地址,如 I0.0、M0.0、Q0.0。

常闭触点(--|/|--):对应布尔变量为0时导通,为1时断开。它常用于停止按钮、过载保护、限位开关等“正常状态下应保持接通”的场合。注意:常闭触点的“闭合”是逻辑意义上的导通,与物理按钮的常闭触点不是同一概念,编程时以变量值为准。

线圈(--( )--):能流到达时,线圈对应的变量被置1;能流断开时,变量被置0。线圈是“跟随型”输出,其状态完全由前面的逻辑结果决定,每一扫描周期都会刷新。

置位/复位线圈(--(S)-- / --(R)--):置位线圈在能流到达时将变量置1并保持,即使能流消失也不改变;复位线圈在能流到达时将变量清0并保持。它们用于需要“记忆”状态的场合,如启停控制中的运行标志。

S7-1200的置位/复位指令支持一次操作多个位,例如 Q0.0 到 Q0.3 可写成 Q0.0, 4,表示从Q0.0开始的连续4个位。初学阶段建议先按单个位使用,熟练后再用连续位简化程序。

二、电机启停控制的逻辑设计

电机启停是最经典的位逻辑应用。控制要求:按下启动按钮SB1,电机运行;按下停止按钮SB2,电机停止;电机过载时(热继电器FR动作)自动停止。I/O分配如下:

元件地址类型说明
SB1启动按钮I0.0常开按下为1
SB2停止按钮I0.1常闭正常为1,按下为0
FR热继电器I0.2常闭正常为1,过载为0
KM接触器Q0.0线圈1=电机运行

这里有一个关键点:停止按钮和热继电器在硬件上使用常闭触点,因此正常状态下输入为1,动作时为0。在梯形图中,它们应当用常开触点来引用,因为“正常为1”正好满足常开触点的导通条件。如果误用常闭触点,逻辑会反相,导致电机无法启动或无法停止。这是初学者最容易出错的地方。

启停控制的核心是“自锁”:启动按钮是瞬动信号,松开就消失,必须用运行输出自身的常开触点并联在启动按钮两端,形成保持回路。停止和过载条件则串联在回路中,任一断开都能切断能流。

电机启停控制梯形图(自锁回路) L+ M Network 1 I0.0 SB1 启动 I0.1 SB2 停止 I0.2 FR 过载 ( ) Q0.0 KM 运行 Q0.0 自锁触点 Network 2(置位/复位方式) I0.0 S Q0.0 I0.1 R Q0.0

三、两种实现方式的对比

上面的梯形图给出了两种等效实现。Network 1 用“自锁+线圈”方式:启动按钮与Q0.0自锁触点并联,再串联停止和过载条件,最后接Q0.0线圈。Network 2 用“置位/复位”方式:启动按钮驱动 Q0.0 的S线圈,停止按钮驱动R线圈。两者都能实现启停,但行为有细微差别:

  • 自锁方式:每个扫描周期都重新计算Q0.0。如果停止条件在运行中短暂断开又恢复,电机会立即重新启动,存在安全隐患。
  • 置位/复位方式:S和R是保持型,停止后必须再次按启动才能运行,不会因停止信号恢复而自动重启,安全性更好。

实际工程中,对于电机这类需要明确“启动—保持—停止”状态的负载,推荐使用置位/复位方式,或在自锁回路中增加启动沿检测。S7-1200的置位/复位指令在梯形图中分别显示为方框内的S和R,操作数可以是Q、M等位地址。

四、在TIA Portal中编写与仿真

打开TIA Portal,新建项目并添加CPU 1214C DC/DC/DC。在“PLC变量”表中定义I0.0、I0.1、I0.2、Q0.0四个变量,注意I0.1和I0.2的注释写明“常闭,正常为1”。进入OB1,从右侧指令树拖入常开触点、常闭触点、线圈、置位/复位线圈,按上图连接。

编写时注意:触点之间的连接线要真正连到母线或前一元件,不能悬空;并联支路要从同一节点分叉、汇合到同一节点。TIA Portal会自动检查语法,悬空或短接的节点会显示绿色或红色标记。

仿真步骤:点击“开始仿真”按钮,将程序下载到仿真PLC。在仿真界面中,将I0.1和I0.2强制为1(模拟停止按钮未按下、热继电器正常),然后点动I0.0为1再松开,观察Q0.0是否变为1并保持。接着将I0.1置0,Q0.0应立即变为0。再将I0.1恢复为1,Q0.0应保持0,必须再次触发I0.0才能重新启动——这正是置位/复位方式的安全特性。

仿真时不要用“强制”功能长期锁死输入,强制值会覆盖程序扫描结果,容易掩盖逻辑错误。建议用“修改值”或监控表逐次触发,观察每个扫描周期的状态变化。若Q0.0不动作,先检查I0.1、I0.2是否已置1,再检查自锁触点地址是否写成了I0.0而非Q0.0。

五、常见错误与排查

初学者在启停控制中常犯三类错误。第一,停止按钮用常闭触点编程:由于硬件I0.1正常为1,常闭触点在变量为1时断开,导致能流永远无法到达线圈,电机无法启动。正确做法是用常开触点引用I0.1。第二,自锁触点误用输入地址:把Q0.0写成I0.0,结果松开启动按钮后回路断开,电机只能点动。第三,置位和复位操作数不一致:S操作Q0.0而R操作Q0.1,导致停止无效。排查时可用监控表同时监视I0.0、I0.1、I0.2、Q0.0四个变量,按动作顺序逐项核对。