主程序
LD SM0.1
MOVB 16#09, SMB130
MOVB 16#9C, SMB187
MOVW 4, SMW190
MOVW 50, SMW192
MOVW 25, SMW194
ATCH receive:INT0, 24
ATCH send:INT1, 26
ENI
RCV VB100, 1
接受完成中断程序
如图
发送完成中断
LD SM0.0
RCV VB100, 1
问题补充:
采用时间开始接受字符和超时完成接收
图片说明:
最佳答案
1、 程序功能是一个用自由口编程--XMT/RCV指令方式编写的从站;
2、 smb186检测为0100 0000:表示接收到的信息有错,并且终止接收指令的执行。比如输入参数错误或没有起始条件或没有结束条件。
3、 主程序中PORT1端口的初始化部分没有错误,有中断连接及发送完成中断程序没有问题;设定的开始接收条件为检测到空闲线超过4MS,接收到的第一个字符为信息帧的第一个字符,结束接收条件为:当检测到空闲线超过50MS,就认为本次接收完成了,终止接收信息帧,产生接收完成中断。
4、 定义的PORT1端口通讯波特率9600、8位数据位、无校验、1位停止位;调试时,通信伙伴方要符合这个通信格式,检查这一点;
5、 SMB194设的允许接收的最大字符数是25个,请求帧字节长度不可以超过这个数,长度包含起始符、信息、CRC校验、结束符;检查一下你的请求帧长度,如果确实长,可以将SMB194设的大一些;
6、 检查你的请求帧;
7、 请求帧与CPU的响应帧格式以及CRC校验你没有帖出来,所以不能说你的CRC校验的调用部分是不是正确,因为这个程序我调试过是没有问题的,我这有调试的过程,原程序是在视频上看到技成的梁智斌老师调试的。
提问者对于答案的评价:
谢谢你的评论,但还是没有找到原因,crc程序计算式没有错误,你能发下梁智冰老实的源程序么QQ:1013001084 再次感谢
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc369364.html