鸿信自动化 ST/C 语言模块 指令讲堂 资料下载 第 4 课
C 语言模块 · 第 4 课 基础

边沿检测:上升沿 / 下降沿

6 段 · 共 1:17 · 数字人讲师示范 · 完全免费

上升沿、下降沿是 PLC 里最常用的技巧。本课用 C 写一个边沿检测,弄清楚「这一拍才变」和「一直是这个状态」的区别。

正在加载数字人讲师…
讲师模型较大(约 87MB),首次打开需要等待。加载完后数字人会自动开始讲解,这段时间可以先往下读讲稿。
已等待 0 秒
等待中… 在仿真器里打开

本课讲稿

1/6为什么要边沿检测0:14

有些动作只在输入按下的一瞬间做一次,比如计数或者翻转。可输入信号会一直为高,怎么保证只触发一回?答案是边沿检测——盯着信号的上升沿和下降沿。

2/6两块内存:当前信号和上一拍0:13

C 功能块怎么做?记住两块内存就够:HD0 放当前信号,HD1 存上一次的采样。每个扫描周期拿当前跟上一拍比,差出来了,那就是边沿。

3/6上升沿:本次通、上次断0:11

上升沿的定义很朴素:本次信号为高、上次却为低。C 里就一句判断——当前为真、且上一拍为假。满足这一下,rise 就置一拍高电平。

4/6下降沿:条件翻个面0:12

下降沿正好相反:本次为低、上次为高。把条件翻个面——当前为假、上一拍为真,fall 就置一拍。一升一降,方向对调,逻辑却是一个模子。

5/6单拍脉冲:为什么只亮一拍0:13

边沿输出只亮一拍,下一拍就归零。妙在不用额外定时——一旦信号稳定,当前跟上一拍相等,脉冲自然消失。梯形图 PLS 也是这个脾气。

6/6小结:一个功能块三个输出0:14

一个边沿功能块给三个输出:rise 升沿、fall 降沿、any 任一变。梯形图要画三条支路分别抓,C 里三个赋值一起写完。对照着看,C 是不是更省事?