跳到正文
Learn-LAD
梯形图示例库/LAD 指令手册/PContact — 上升沿触点

PContact — 上升沿触点

检测 operand 的上升沿,只在 0→1 的那个扫描周期导通;需要边沿存储位。

边沿 S7-1200/1500 TIA V19 别名:上升沿触点 / 正边沿 / Positive edge contact / P contact

一句话

PContact 检测 operand 的上升沿,只在 0→1 的那个扫描周期导通;它需要一个边沿存储位 bit。

符号与引脚

分类:边沿 不需要实例 模板值:无
引脚方向说明
pre流输入左侧 RLO(必须先有逻辑)
operand输入被检测的 Bool 信号
bit输入边沿存储位(Bool)
out流输出上升沿那个扫描为 1

符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。

最小示例

Enable 先给左侧 RLO,Start 的上升沿让 OneShot 只亮一个扫描。Enable 可以是一个模式条件或常闭的停止条件。

PContact_Example:Network 1 — 单次触发

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。

怎么工作

  • bit 是边沿存储位,记录上一个扫描的 operand;每个边沿触点要使用独立的 bit。
  • operand 从 0 变 1 的那个扫描,out=1;下一个扫描即使 operand 仍为 1,out 也回到 0。
  • PContact 不能作为 rung 的第一个元素:TIA 要求边沿指令前面先有逻辑;示例用 Enable 触点放在前面。
  • 与 PBox 的区别:PContact 是触点,扫描一个操作数;PBox 是 RLO 边沿盒,扫描左侧 RLO。
  • 与 PCoil 的区别:PCoil 是线圈,RLO 上升沿时输出一个扫描的脉冲。
PContact 时序图
operand 0→1 的那个扫描 out=1;bit 在扫描结束后才更新。

常用场景

1. 单次触发

同上面的最小示例。

2. 按钮计数

每次按下按钮产生一个扫描的脉冲,再接 CTU 计数;按住不放不会重复计数。

PContact_Count:Network 1 — 每次按下计数

常见坑

  • 没有前置逻辑:PContact 放在 rung 第一个元素会违反 TIA 边沿规则;前面加 Enable/Not/触点。
  • 共用边沿位:两个 PContact 共用一个 bit,边沿会互相覆盖,导致漏脉冲。
  • 边沿位不保持:bit 放在 Temp 里会每次调用重置;用 Static/全局 M/DB。
  • 用成电平:PContact 只亮一个扫描;需要保持就接 SCoil 或自锁。
  • 跳转/未扫描:如果网络被 Jump 跳过,边沿不会被记录,回来时可能误判。

在博途里试一下

TiaLink

把 TIA Portal 接到你的智能体:导入、编译、读回核对、PLCSIM 仿真。本地运行,工程数据不出厂。

打开 TiaLink

也可以先在示例库里找一条用到 PContact 的完整程序,导入后再改。

← 返回 LAD 指令手册