在哪里结束RCV指令

我的问题与找答案中“自由口通讯RCV指令不结束?”的问题基本一样,这个问题的答案是通过复位sm86.7和执行RCV指令可以结束RCV指令,但没有说明是在哪里执行这两段代码?是在接收结束中断子程序还是在主程序?另外,我还想知道在smb87中设置了超时及其smw92中设置了超时时间后,在接收超时之后,是否进入接收结束中断。我在接收结束中断子程序中运用了复位sm86.7和执行了RCV指令,但没有效果。所以才想要知道究竟在哪里执行这两条指令才能结束RCV指令,实现接收超时退出RCV?
需要说明的是,不希望通过在发送结束中断程序中启动定时中断的方式来判断接收超时,如果这样的话,我认为没有利用smb87本身所具有的这项功能。

问题补充:
针对yanxiao的回答3,由于超时没有产生接收结束中断,所以认为说使用RCV结束没有效果
针对回答4:通过设置smb87=16#BC和smw92=200,我认为已经符合自动结束条件,却没有触发接收结束中断

最佳答案

捣鼓了半天,版主在我之前回复了,那我省略一部分,补充个例子。

一般执行XMT后,在发送完成中断里执行RCV,同时启动定时中断或者启动定时器或者执行开始间隔时间BITIM,计时时间到复位使能位SM87.7/SM187.7,同时执行RCV,这样结束RCV

指令,说说两种常用的方法:
1 发送完成中断里执行RCV并连接定时中断,定时中断里执行如下程序:
 LD     SM0.0
 R      SM87.7, 1
 RCV    VB0, 0
 S      SM87.7, 1
 
 LD     SM0.0
 DTCH   10
 
 LD     SM0.0
 XMT    VB100, 0

2 发送完成中断里执行RCV并执行BITIM指令,主程序里执行结束RCV程序
发送完成中断:
LD     SM0.0                      
RCV    VB0, 0                     
S      M0.0, 1                     
BITIM  VD200  

主程序:
LD     M0.0                        
CITIM  VD200, AC0                 
AW>=   AC0, 550                 //大于550毫秒 
R      SM87.7, 1                    
RCV    VB0, 0
S      SM87.7, 1                   
R      M0.0, 1


用定时器也可以,方法和上面的差不多。

针对yanxiao的回答3,由于超时没有产生接收结束中断,所以认为说使用RCV结束没有效果
针对回答4:通过设置smb87=16#BC和smw92=200,我认为已经符合自动结束条件,却没有触发接收结束中断

答:只要符合自动结束条件(用指令显式结束RCV除外),都会触发接收结束中断,超时也不例外。

提问者对于答案的评价:
经过测试,终于弄明白符合自动结束条件,在这里指的是超时自动触发接收结束中断的关键,其实是smw92=0,smb87的il和c/m以及tmr必须置位,缺一不可。

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc298335.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日 下午2:11
下一篇 2020年10月31日 下午2:11

相关推荐

  • EM253中POPS_MAN 问题

    em253中有个POPS_MAN 这个程序中一个Speed叫做”运动的目标速度“请问这个地方如何填写。 最佳答案 想怎么写就怎么写,注意要是你是组态时测量系统为脉冲的话,…

    SIMATIC S7-200 2021年7月5日
  • 一个实际项目的讨论

    最近有个朋友问我一个问题: 运行WINCC的计算机在中控室,而现场的S7-200(子站) 分部在中控室周围数公里内,5公里有一个、7公里一个,还有几个大约是12…

    SIMATIC S7-200 2021年7月5日
  • 扩展问题

    各位高手:请问CPU226是继电器输出的,可以扩展一个晶体管输出的模块呢? 最佳答案 当然可以,但是对于S7-226来说不能超过7个模块的,所扩展的模块可以是模拟量,数字量,通讯模…

    SIMATIC S7-200 2021年7月5日
  • s7-200控制伺服

    触摸屏+s7-200控制2台伺服驱动器(驱动器自带RS485通讯功能) 请问朋友们下列方法: 1、直接用Q0.0/Q0.1脉冲来编程控制 2、通过EM…

    SIMATIC S7-200 2021年7月4日
  • AENO指令提问

    LD            SM0.0 MOVW&…

    SIMATIC S7-200 2021年7月5日
  • TP170A触摸屏

    请问:        我想在触摸屏上做个总的启动和停止按扭,但启动按扭所对应的PLC的变量应该是什么…

    SIMATIC S7-200 2021年7月5日
  • 传感器是否一定要接变送器

    查了资料,知道变送器是进行信号的处理和转换。不过不明白,plc AI 模块选型时,为何有那么多种型号?而且有些接传感器,有些接变送器。谢谢,在线等 最佳答案 传…

    SIMATIC S7-200 2020年11月5日
  • 西门子200 SMart问题

    SB DT04 这个模块有晶体管输出功能,那么具备高速脉冲输出功能吗? 最佳答案 只有标准型、晶体管输出型PLC才支持高速脉冲输出 ST20有2个,S…

    SIMATIC S7-200 2017年6月10日
  • s7200 文本显示器通讯

    s7200 与文本显示器相连 然后还需要电脑进行上位机软件监控 怎样实现? 最佳答案 这就对你的PLC有要求,必须是双口的PLC,如PLC …

    SIMATIC S7-200 2021年7月4日
  • CP243-1与STEP7-V4.0通讯问题??

    CPU226+CP243-1+PC上位机(装有STEP7-V4.0SP5,PC-ACCESS),请问STEP7能否不用PPI电缆,直接用网线通过CP243与CPU226通信,编程,…

    SIMATIC S7-200 2021年7月5日