S7-200自由口发送接收问题

大家都知道S7-200的端口是半双工的RS485,它在接收状态是不能发送的,
 现在有一个控制要求是PLC走自由口协议,一直处于接收状态,当收到下位机信号时,处理再先下位机发命令。
 现在的问题是,当我端口处于接收状态时(即执行了RCV VB0 ,0)这时程序发现某样东西超标,要向这个下位机发消息,这时就碰上接收状态下要发送程序的情况。请问能不能通过复位什么标志位来禁止接收而执行发送,等发完了之后我再将端口处于接收。我本想通过清SM87.7来禁止接收,但发现不行。数据还是发不出来。

最佳答案

将接收使能为复位后再次执行RCV指令,将取消接收。
 R SM87.7, 1   
 RCV VB0, 0 
 这样就取消接收了。
 只改sm87.7的状态不行,还要在他后面加一个rcv指令,才能真正改变端口状态,PLS,HSC,RCV都是一样,改变了控制字节后要执行指令才生效。

   看看这个问题:问题ID: 30600

 还要注意的是不要在取消接收的那个周期就发送,关闭接收后,做个延时再XMT. 
 

提问者对于答案的评价:
哈哈,谢谢,虽然问题提出来后就在一个下载的文件中找到了答案,但还是要感谢你!说对了不明白的地方。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午1:43
下一篇 2021年7月5日 上午1:43

相关推荐

发表回复

登录后才能评论