故事作者:NPOVEC

最近创作

看看TA的故事

【软件编程】上升沿指令真的能简单编程实现?

已锁定

NPOVEC

西门子1847工业学习平台

  • 帖子

    367
  • 精华

    4
  • 被关注

    67

论坛等级:侠圣

注册时间:2015-04-11

黄金 黄金 如何晋级?

【软件编程】上升沿指令真的能简单编程实现?

732

1

2021-10-30 10:45:15

    上升指令本是一条简单指令,和常开、常闭指令一样都是常用的基本指令。以前在使用S7-200的时候基本不会去过多关注上升沿指令,因为那时候不需要自己分配边缘存储器。现在在S7-1200中每次用到上升沿指令都需要自己分配边缘存储器,在编程上感觉确实不爽,由此开始想有没有什么捷径,心想“不就是一个简单的上升沿指令,用上一个扫描周期的状态和当前状态做一个比较吗?"。(下面的程序是参考论坛网友优化过的!)

    程序:首先创建一个FB块,里面添加几行SCL代码。

测试1 :在主程序OB1中调用FB块程序如下,测试效果正常,变量上升沿触发正常! 

    测试二:同样在主程序中调用FB块程序如下,

    步骤一当M30.2置1时,测试正常,上升沿正常触发 。

    步骤二:当 M30.2置0,再将M30.0置1,间隔一个扫描周期以上再将M30.2置1,这时突然触发一个上升沿。结果是测试失败!

        测试三:使用系统的上升沿指令程序如下。

        步骤一:和测试二的步骤二一样,先将M30.2置0,再将M30.0置1,间隔一个扫描周期以上,再将M30.0置1,这是并没有出现测试二的情况。

    总结:在测试三中,不管M30.2是否为1,边缘存储器 M30.3的状态都随 这M30.0的状态发生变化。在测试二中,当M30.2的状态为0时,FB块中的边缘存储器并不随M30.0变化,保持不变!

通过上面的测试得到的结果是:并不能通过FB块编辑程序来代替系统的上升沿指令。


 


【软件编程】上升沿指令真的能简单编程实现? 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3466条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。