
Contact — 常开 / 常闭触点
常开触点在 RLO 为 1 时导通;常闭触点加 negated,RLO 为 0 时导通。
一句话
Contact 是条件触点:常开触点在操作数为 1 时导通;同一个 Contact 加 negated 就是常闭触点,操作数为 0 时导通。
符号与引脚
分类:位逻辑
不需要实例
模板值:无
| 引脚 | 方向 | 说明 |
|---|---|---|
in | 流输入 | 左侧 RLO |
operand | 输入 | 被扫描的 Bool 变量 |
out | 流输出 | 右侧 RLO |
符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。
最小示例
Button=1 时 Lamp=1;同一个 Button 的常闭触点让 LampOff=1。一个操作数可以同时出现在常开和常闭位置。

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。
怎么工作
| 触点 | 操作数 | 导通条件 |
|---|---|---|
| 常开 NO | 1 | 导通 |
| 常开 NO | 0 | 断开 |
| 常闭 NC | 1 | 断开 |
| 常闭 NC | 0 | 导通 |
- 串联 = AND,并联 = OR。
- 触点可以放在 rung 的任意逻辑位置;普通触点可以作为网络的第一个元素。
- 常闭不是「取反线圈」,它只影响当前 rung 的 RLO;不要用它代替
Not指令做数据取反。 - 同一个操作数可以在多个网络、多个位置使用;读操作不会改变它。
常用场景
1. 启停条件
Start 用常开、Stop 用常闭:按下启动且没有停止时 Run=1。

2. 安全链
两个安全门都闭合(常闭触点都为 1)时 Safe=1;任一门打开,链断开。

常见坑
- 常闭逻辑写反:
Stop是常闭按钮时,程序里用常开还是常闭,取决于硬件接线;不要只看符号。 - 操作数未定义:未赋值的 M/DB 位默认可能是 0,常闭触点会一直导通。
- 触点不是边沿:
Contact是电平条件;要抓 0→1 用PContact。 - 重复触点太多:同一个条件在多个网络重复,改逻辑时容易漏改;必要时用中间位。
- 命名:
Start/Stop这类名字要区分「物理按钮」和「程序条件」。
在博途里试一下
TiaLink
把 TIA Portal 接到你的智能体:导入、编译、读回核对、PLCSIM 仿真。本地运行,工程数据不出厂。
打开 TiaLink也可以先在示例库里找一条用到 Contact 的完整程序,导入后再改。