回复:欢迎拍砖。再论沿指令,实例还原真相

Zane

西门子1847工业学习平台

  • 帖子

    21601
  • 精华

    408
  • 被关注

    1517

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2018-01-31 23:09:08

61楼

展开查看
以下是引用yanxiao在2018-01-31 15:11:48的发言 >52楼

抛开具体的PLC,边沿检测的原理,我的理解是这样的:

指令(或一个什么设备仪器之类)对一个被测信号采样,

如果采到的值和上次采到的值不一样,认为前后两次采样间有跳变产生。只能认为有跳变产生,跳了几次不确定;

如果两次采样值一样,认为没有检测到跳变。只是指令没有检测到跳变,实际信号有没有跳变,也不能确定或不可知(这就是大部分人认为指令有问题的地方)。


跳边的检测,使用了前一次的采样值,这个值要存起来才能用。


不带数据存贮的沿指令,前次采样值和本次采样值都是外来的,指令只是个加工工具,所以不分第一次使用第二次用,只要输入数据,就有按规则运算后的输出。


有历史数据存贮的沿指令,那个历史数据是内置在指令中,外面不可控,但它必须初始化这个数据。所以它就有第一次使用的要求,即第一次使用仅用来初始化历史数据,而输出是个确定的值,一般如固定的0值。


200smart的沿指令,自带历史数据的存贮,所以,如果只调用一次,即沿指令只扫一次,它的输出就是固的0值,是确定的,可预知的,不会出现其它情况。


这是关于只调用一次的回答。

STEP 7用沿指令,存储变量必须是全局变量和静态变量。

200/200smart沿指令,其存储变量实质就是全局变量。

沿指令,必须被扫描到2次以上才能正确使用。

子程序在OB1的无条件调用,或者周期性的条件调用,在定时中断的无条件调用,我认为其实质就是全扫描了。其可靠性保证,就是变量变化的周期,及信号宽度确保大于扫描间隔(脉冲捕捉功能除外)


以上这几点,请问各位是否有异议?


yanxiao版主的这些例子,我不知道有天下工程师能有几位曾经这么编写过?但我的例子,曾经这么用过的一定不在少数吧。


举这个例子要说明的,沿指令本身没有问题,可以用,关键是怎么用?


我觉得,没有及其特殊的情况下,就在OB1全扫描吧,累不死PLC的,稳定而又可靠,而条件调用往往会遇到首次扫描响应失效的问题(为啥,扫描次数不够),其实OB1也有,但很少有在OB1的上电第一次扫描要求做首次扫描响应的,如YANXIAO版主所言,眨眼间n个扫描就过去了。


沿指令就是一普通PLC指令,没有必要想得那么复杂,简简单单用就是了。


Zane 注册自动化系统工程师 Always save before download
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9454条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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