我想用s7-200与一台蠕动泵进行自由通信,不知道程序怎么写(自己写了一个发送没有问题接收收不到数据)报文的形势是数据长度·e9·数据·校验码,一发一收就可以不用
问题补充:
发送的数据跟报文一样,就是接收的报文不对,
图片说明:
最佳答案
RCV指令的基本工作过程为:
1、在逻辑条件满足时,启动(一次)RCV指令,进入接收等待状态
2、监视通信端口,等待设置的消息起始条件满足,然后进入消息接收状态
3、如果满足了设置的消息结束条件,则结束消息,然后退出接收状态
所以,RCV指令启动后并不一定就接收消息,如果没有让它开始消息接收的条件,就一直处于等待接收的状态;如果消息始终没有开始或者结束,通信口就一直处于接收状态。这时如果尝试执行XMT指令,就不会发送任何消息。
看到你在发送完的中断中接收数据,但是测试时候可以采用smb2接受字符,而不用RCV指令。可采用如下程序,判断接收字符是否正确。
MAIN:
LD SM0.1
MOVB 16#49, SMB30 //自由口,9600,偶校验
MOVD &VB4, VD0
ATCH INT_0:INT0, 8 //连接8号中断
ENI
INT_0:
LD SM0.0
MOVB SMB2, *VD0 //将接收到的字符依次存入VB4等
INCD VD0
提问者对于答案的评价:
谢谢你的帮助
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc219574.html