技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 技成百科 > 在哪里结束rcv指令

在哪里结束rcv指令

郑志武 发布于2012-12-17 16:51 7068 0 标签:

我的问题与找答案中“自由口通讯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并连接定时中断,定时中断里执行如下程序:
ldsm0.0
rsm87.7,1
rcvvb0,0
ssm87.7,1

ldsm0.0
dtch10

ldsm0.0
xmtvb100,0

2发送完成中断里执行rcv并执行bitim指令,主程序里执行结束rcv程序
发送完成中断:
ldsm0.0
rcvvb0,0
sm0.0,1
bitimvd200

主程序:
ldm0.0
citimvd200,ac0
aw>=ac0,550//大于550毫秒
rsm87.7,1
rcvvb0,0
ssm87.7,1
rm0.0,1


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

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

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

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签