嵌入式
返回首页

西门子1200上升沿和下降沿的操作流程

2025-09-01 来源:elecfans

首先,我们要理解上升沿和下降沿的含义。

上升沿:前一个周期的按钮信号=0,当前周期的按钮信号=1,那么此时我们就认为是产生了上升沿的信号。


下降沿:前一个周期的按钮信号=1,当前周期的按钮信号=0,那么此时我们就认为是产生了下降沿的信号。


从上面的逻辑关系可以得出,我们要知道的是前一个周期的按钮信号的状态,因此,我们需要用一个变量来存储当前状态(所以只能用FB块来做,因为它有背景数据块,里面的static区可以记忆前一个周期的状态),然后用于下一个周期(对于下一个周期来说,当前周期就是前一个周期,大家可以好好想想。)


有了这种逻辑关系,那么我们就可以写程序了:如下图所示

d3b6797e-ffb1-11ed-90ce-dac502259ad0.png

沿信号只停留一个扫描周期

通过上面的这个程序,我们就得到了上升沿信号和下降沿信号。比如说,当形参“I_请求1”的实参”I0.0”从0变1时,那么形参“上升沿信号”就变为了1。此时,我们就可以用这个形参=1的信号来做事情了。

下面简单介绍个小案例,主要目的是理解整个编写过程,相当于一个小框架

整个框架的流程:

首先做一个FB功能块1,用于实现某个重复的功能,比如这里的上升沿和下降沿功能。

然后再做一个FB功能块2,用于整个项目里的某一个功能,里面调用FB功能块1。

最后再做一个FC块1,将各个类似FB功能块2的块整合起来,里面做好逻辑等。

这样就是一个完整的小框架了。

下面是整个调用过程:

第一步:创建FB块,做一个小功能

d3da9dd6-ffb1-11ed-90ce-dac502259ad0.png

第二步:用上面的FB块来实现某个功能

d3f3f15a-ffb1-11ed-90ce-dac502259ad0.png

第三步:将所有类似的功能块整合到FC块中,它可以表示整个项目的流程,也可以表示某个工位的流程(然后把各个工位的FC块再整合到新的FC块里,然后MAIN里面直接调用这个新的FC块,这样程序就显的很干净整洁)

d4172af8-ffb1-11ed-90ce-dac502259ad0.png

小插曲:

d42e31ee-ffb1-11ed-90ce-dac502259ad0.png

d46219c8-ffb1-11ed-90ce-dac502259ad0.png


进入嵌入式查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • FollowMe 第二季:3 - EK_RA6M5 开发板入门

  • FollowMe 第二季: 1 Adafruit Circuit Playground Express及任务讲解

  • Azure RTOS step by step workshop

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • 从0到1:树莓派与物联网教程(英文)

精选电路图
  • 1瓦线性调频增强器

  • 家用电器遥控器

  • 12V 转 28V DC-DC 变换器(基于 LM2585)

  • 红外开关

  • DS1669数字电位器

  • HA1377 桥式放大器 BCL 电容 17W(汽车音频)

    相关电子头条文章