回复:200SMART 自由口通讯,发送与完成中断间需要增加定时中断吗?

已锁定

手机18043155123

  • 帖子

    25
  • 精华

    0
  • 被关注

    0

论坛等级:游士

注册时间:2019-07-15

普通 普通 如何晋级?

发布于 2020-03-27 10:42:49

7楼

展开查看
以下是引用WWCWWC在2020-03-26 16:47:58的发言 >4楼

  先不说通讯那一些事情,来说说定时中断,所谓定时中断即在规定的控制字节SMB34(定时中断_0或者SMB35定时中断_1)设置中断时间1~255mS。当所设置的时间到,plc会优先执行定时中断。当然,如果有其它中断同时到达,系统会根据中断的优先权高低,执优执行权限高的中断子程序,这里不展开讨论。

  回到本话题,如果在通讯程序中加入定时中断,那么,可以想象无论通讯在什么阶段(不亚于发送、接收、空闲3个阶段),当定时中断时间到,被要求执行发送指令,问题就在此了,即通讯链路上只能允许有一条指令有效,要不发送有效,要不接收有效,绝对不允许2条以上的指令有效!

  在西门子200(smart)系统中,允许有几个关于通讯的中断,即发送完成中断和接收完成中断,其中,prot口的发送完成中断(中断事件9)、接收完成中断(中断事件23)。

  为规避上面可能的错误,可以在发送完成中断中编辑接收指令,在接收完成中断中编辑发送指令。至于问题是发送a、b、c呢?还是发送e、f、g呢?这个完全可以在控制程序中实现。上述仅是对调用定时中断在此处应用的一点认识,不足之处请斧正。




有个疑问,我发的程序实例中,当INT0接收完成后调用INT1,在int1中执行MOVB 10,SMB34这个指令,是每次int1被调用后,才这个定时才开始计时吧,不然也不会是每次按定时时间延迟10ms执行XMT发送,不知道这样理解对不。

如果不是按照定时时间10ms发送,这个指令MOVB 10,SMB34,放在主程序初始化一次就行吧?

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9457条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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