回复:200Smart中的置位复位指令很奇怪

已锁定

zbhdm

  • 帖子

    1934
  • 精华

    2
  • 被关注

    18

论坛等级:至圣

注册时间:2007-05-30

钻石 钻石 如何晋级?

发布于 2021-12-10 00:50:27

3楼

刚刚还在一个帖子中向Zane老师求教S/R指令为什么要慎用,现在貌似有那么一点点明白了。

S/R指令虽然可以实现起保停,但是与真正的起保停是有区别的。

S/R指令可以保持原有状态的,但是线圈(就是输出指令),每个扫描周期都会把他前面的逻辑结果输出。



楼主在子程序中用了S/R指令,而子程序是共用L区的64个字节(也有说:只要扫描周期扫到被调用的子程序,系统就会自动给其调拨一个L区),所以这64个字节是什么状态,是无法确定的。如果子程序中的S/R指令不能执行,则S/R指令所对应的局部变量的状态是无法确定的,所以也就有了楼主说的:在跳过S/R指令时,输出其实不一定是False,因此也就有了对于OUT变量的使用,需要先赋值的说法。

比如楼主给出的子程序,如果S/R指令之前,先给bq_1写个“0”,可能就不会有啥错误了。


努力学习西门子
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9023条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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