技术论坛

SCL中上升沿、下降沿的简单实现

作者 主题
侠士

经验值: 1625
发帖数: 881
精华帖: 6
主题:【分享】SCL中上升沿、下降沿的简单实现
推荐帖


只看楼主 只看精华 楼主 2021-10-25 16:20:28

SCL中,调用上升沿、下降沿会自动生成一个背景DB,如果使用比较多的情况下,个人觉得很烦!所以就采用了一个简易实现办法,分享给大家!请大侠们指正。

本办法以在FB中使用为例:

1、在Static中创建BOOL型变量备用,一般一个上升沿监测或一个下降沿监测创建一个变量。本例中创建变量为“TEST_M”

2、监测型号

     在这里我们监测输入变量“I_0”的上升沿

3、使用

IF “I_0”<>“TEST_M" THEN

    “TEST_M”:=“I_0”;

     IF  “I_0”:=TRUE THEN

       //检测到上升沿后执行的代码

       。。。。。。

    END_IF;

    IF  “I_0”:=false THEN

       //检测到下降沿后执行的代码

       。。。。。。

    END_IF;

END_IF;

必须注意的是,以上代码仅执行一次!


好好生活,天天向上!
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1723193&b_id=66&s_id=0&num=46

奇侠

经验值: 8530
发帖数: 203
精华帖: 0
回复:SCL中上升沿、下降沿的简单实现
推荐帖


只看楼主 只看精华 1楼 2021-10-25 16:50:54

   赞一个       


学无止境
以下网友喜欢您的帖子:

  
版主

经验值: 76250
发帖数: 19148
精华帖: 378
回复:SCL中上升沿、下降沿的简单实现
推荐帖


只看楼主 只看精华 2楼 2021-10-25 18:28:01

楼主是两耳不闻窗外事,专心闭门自造车嘛。


Zane 注册自动化系统工程师 Always save before download
以下网友喜欢您的帖子:

  
奇侠

经验值: 8099
发帖数: 1308
精华帖: 6
回复:SCL中上升沿、下降沿的简单实现
推荐帖


只看楼主 只看精华 3楼 2021-10-25 18:29:57

好麻烦.............


养活一团春意思,撑起两根穷骨头
以下网友喜欢您的帖子:

  
奇侠

经验值: 5272
发帖数: 510
精华帖: 2
回复:SCL中上升沿、下降沿的简单实现
推荐帖


只看楼主 只看精华 4楼 2021-10-25 18:44:17

感谢分享,谢谢!学习了


技术要做就做专!继续攀登高科技。继续加油
以下网友喜欢您的帖子:

  
至圣

经验值: 127368
发帖数: 22003
精华帖: 824
回复:SCL中上升沿、下降沿的简单实现
推荐帖


只看楼主 只看精华 5楼 2021-10-25 19:33:18

楼主是想把沿的检测存储在本身的背景DB中。

因为本身是BOOL,直接使用布尔逻辑运算。

IF (M_last XOR M_curt ) AND M_curt THEN xxx; //上升沿执行

IF (M_last XOR M_curt ) AND NOT M_curt THEN xxx; //下升沿执行

M_last := M_curt;

执行后复位。


学而时习之,不亦说乎?温故而知新,不亦乐乎?
以下网友喜欢您的帖子:

  
至圣

经验值: 18932
发帖数: 2108
精华帖: 0
回复:SCL中上升沿、下降沿的简单实现
推荐帖


只看楼主 只看精华 6楼 2021-10-25 19:36:16

不错的思路


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 2387
发帖数: 131
精华帖: 0
回复:SCL中上升沿、下降沿的简单实现
推荐帖


只看楼主 只看精华 7楼 2021-10-25 20:49:43

后面的两个IF条件判断语句比较打成赋值了


 
以下网友喜欢您的帖子:

  
侠士

经验值: 1560
发帖数: 90
精华帖: 0
回复:SCL中上升沿、下降沿的简单实现
推荐帖


只看楼主 只看精华 8楼 2021-10-26 07:43:57

感谢楼主分享,学习一下。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 15532
发帖数: 1735
精华帖: 0
回复:SCL中上升沿、下降沿的简单实现


只看楼主 只看精华 9楼 2021-10-26 08:08:57

 楼主很有仓新思路!点赞1


海纳百川,厚德务实!
以下网友喜欢您的帖子:

  
至圣

经验值: 13937
发帖数: 2008
精华帖: 43
回复:SCL中上升沿、下降沿的简单实现
推荐帖


只看楼主 只看精华 10楼 2021-10-26 09:00:22

标准指令 在 结合 参数实例或者多重背景 不就解决楼主的烦恼了吗?


人生就像一场旅行!
以下网友喜欢您的帖子:

  
至圣

经验值: 127368
发帖数: 22003
精华帖: 824
回复:SCL中上升沿、下降沿的简单实现
推荐帖


只看楼主 只看精华 12楼 2021-10-26 10:18:02

其实这种用法是常见的。最常见的就是 FB的 REQ。

根据不同要求,可以执行一次,也可以执行到任务完成(如通讯过程,SET标志位)。

关于沿检测的各种编程语言的写法,ZANE版主的《Zane侠说事儿》就有。


学而时习之,不亦说乎?温故而知新,不亦乐乎?
以下网友喜欢您的帖子:

  
奇侠

经验值: 5463
发帖数: 244
精华帖: 0
回复:SCL中上升沿、下降沿的简单实现
推荐帖


只看楼主 只看精华 13楼 2021-10-26 10:23:59
以下是引用yming在2021-10-25 19:33:18的发言 >5楼

楼主是想把沿的检测存储在本身的背景DB中。

因为本身是BOOL,直接使用布尔逻辑运算。

IF (M_last XOR M_curt ) AND M_curt THEN xxx; //上升沿执行

IF (M_last XOR M_curt ) AND NOT M_curt THEN xxx; //下升沿执行

M_last := M_curt;

执行后复位。

这个是正解,我就这么用


工程效率
以下网友喜欢您的帖子:

  
版主

经验值: 69061
发帖数: 12270
精华帖: 59
回复:SCL中上升沿、下降沿的简单实现
推荐帖


只看楼主 只看精华 14楼 2021-10-27 21:00:46

多在论坛里面交流一下,你会找到更多办法的哦~

不想生成背景数据块,可以静态参数里面定义一个沿类型的数据变量就好了


Q群:https://jq.qq.com/?k=9BDuEgf6
以下网友喜欢您的帖子:

  
侠圣

经验值: 4873
发帖数: 741
精华帖: 10
回复:SCL中上升沿、下降沿的简单实现
推荐帖


只看楼主 只看精华 15楼 2021-10-29 00:18:15

其实不论用不用库FB来实现都需要生成背景Static变量来暂存之前的状态,只不过用库FB多了次调用操作,多了些资源浪费。


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 3567
发帖数: 229
精华帖: 0
回复:SCL中上升沿、下降沿的简单实现
推荐帖


只看楼主 只看精华 16楼 2021-10-29 06:29:48
谢谢楼主的分享,学习一下。
戚先生
以下网友喜欢您的帖子:

  
侠客

经验值: 785
发帖数: 179
精华帖: 1
回复:SCL中上升沿、下降沿的简单实现
推荐帖


只看楼主 只看精华 17楼 2021-10-29 09:43:05

不管怎么说,秀出代码,展示思路 ;总比一上来伸手要,伸手气,强。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 127368
发帖数: 22003
精华帖: 824
回复:SCL中上升沿、下降沿的简单实现
精华帖精华帖星级3级 推荐帖


只看楼主 只看精华 18楼 2021-10-29 10:50:13
以下是引用stupidbadu21在2021-10-29 09:43:05的发言 >17楼

不管怎么说,秀出代码,展示思路 ;总比一上来伸手要,伸手气,强。

所有帖子没有指责楼主的意思。

楼主的想法是对的。只不过代码有些啰嗦了。版主说的是楼主不太会查找资料。

一年多前,版主就专门发过总结帖。很容易找到。

《实现上升沿的几个姿势》  在不同编程语言中的实现方法。都是大量测试应用过的,拿来用就可以了。



学而时习之,不亦说乎?温故而知新,不亦乐乎?
以下网友喜欢您的帖子:

  
侠圣

经验值: 2701
发帖数: 446
精华帖: 0
回复:SCL中上升沿、下降沿的简单实现


只看楼主 只看精华 20楼 2021-10-29 15:24:50

不错的思路


123....
以下网友喜欢您的帖子:

  
侠圣

经验值: 3029
发帖数: 294
精华帖: 1
回复:SCL中上升沿、下降沿的简单实现


只看楼主 只看精华 21楼 2021-10-30 07:05:03

感谢楼主分享,学习一下。


 
以下网友喜欢您的帖子:

  
收起
SCL中上升沿、下降沿的简单实现
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。