回复:请有PLC在手的朋友们做一下这个试验。

WWCWWC

西门子1847工业学习平台

  • 帖子

    9109
  • 精华

    157
  • 被关注

    1473

论坛等级:至圣

注册时间:2008-07-26

钻石 钻石 如何晋级?

发布于 2017-04-20 10:09:17

28楼

展开查看
以下是引用shine在2017-04-20 09:53:42的发言 >27楼

本来想写I0.0,I0.1,当I0.0为0,I0.1为1时的情况,我只是偷个懒,直接写了SM0.0的NC和NO。

SM0.0并没有什么特殊的,只是一个一直为1的信号

你的那个帖子看了,你第一个例子的解释还是有问题的,问题不是因为SM0.0特殊,而是因为上升沿指令第一次被扫描是不做检测的,所以你检测不到。如果你在主程序中这么写

LD SM0.1

S M0.0,1

然后中断中把SM0.0改为M0.0 ,也还是一样的结果

以下是引用WWCWWC在2017-04-20 09:19:12的发言 >23楼:你的子程序调用IN端...

引用23楼详细内容:

你的子程序调用IN端输入实际物理地址就可以。

不能够使用SM0.0 这个,这个,很特殊,很特殊的标志位。

为什么?我已经在楼上有回复。

以下是引用shine在2017-04-19 22:45:43的发言 >17楼:之前某个帖子里有说...

引用17楼详细内容:

之前某个帖子里有说到上升沿,我的描述是上个扫描周期和这个扫描周期的变化,然后Y版纠正了,实际应该是本次扫描和上次扫描的状态变化。

所以,在中断中可以使用边沿指令,但是中断的执行是需要事件触发的,事件的发生不全是程序可控的,导致的是本次扫描和上次扫描的间隔不确定,而这中间的信号的变化就不能被检测到了。

这是定时中断10s周期的截图:三条曲线分别是M0.0,Q0.0 Q1.0


也是因为同样的原因,在多次调用的子程序中使用边沿指令也会引起问题

举个例子,看看下面程序的Q0.0 和Q 0.1的状态如何,再分析分析为何会出现这个现象




LD SM0.1

S M0.0,1       //这个M0.0被置位为ON

然后中断中把SM0.0改为M0.0 ,也还是一样的结果,

是这样?

我改过,结果是不一样的。

我刚刚理解错误了,看了那个贴后理解的。因为2个贴在切换主题。

是的,你理解没有错,实际上SM0.0并不特殊。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8941条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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