Read子程序:
NETWORK 1
LD SM0.0 //停止端口0的接收
R SM87.7, 1
R M0.0, 1
RCV VB100, 0
这里RCV的作用是什么,联系上下,似乎没有意义?
问题补充:
不好意思 没说明白
我的意思是:R SM87.7, 1 这个指令已经停止接收了,后面的指令RCV VB100, 0 是不是没有什么作用了。是不是可有可无?
最佳答案
意义很大,人为关闭RCV。
有时候需要取消RCV,将接收使能为复位后再次执行RCV指令,就可以取消接收,要不通讯口将一直在等数据或等结束条件。
XMT就不一样,发送结束后,端口就空闲了,但是执行RCV后,如果对方没数据过来,或者等到数据,但数据又不符合开始和结束条件,那么通讯口就会一直等下去。
这一点在手册中并没有提到。
R SM87.7, 1 后必须执行 RCV VB100, 0 ,才能取消接收。
只改sm87.7的状态不行,还要在他后面加一个rcv指令,才能真正改变端口状态,PLS,HSC,RCV都是一样,改变了控制字节后要执行指令才生效。
提问者对于答案的评价:
明白了, 谢谢!!
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc354325.html