最近我用一个226的CPU与一个温度采集模块通过485通讯,程序如下:
Network 1 // 网络标题 //程序编写本意,从VB100里把报文化通过485发送至数据采集模块,再从数据采集模块把数据读出 进行温度数据实时监控 波特率9600 8位数据据位,无较验 //发送报文格式 '#01CR' 报文格式经串口通讯助手验证无误 //报文ASCII值存放在数据块里
// VB99 4 H发送4个字节 VB100 16#23 //字符串'#'
VB101 16#30 //字符串'0'
VB102 16#31 //字符串'1'
VB103 16#0D //字符串16#0D CR 的ASCII码为16#0D 结束符号 接收格式 >(date)(chksum)(CR)
// 网络注释
LD SM0.1 //上电扫描
MOVB 16#09, SMB30 //初始化,//9600 8位数据位 1位停止位 无较验
MOVB 16#B0, SMB87
MOVB 16#0D, SMB89 //结束字符
MOVW +5, SMW90
MOVB 100, SMB94
ATCH INT0, 9 //发送完成中断
ATCH INT1, 23 //接收完成中断
ENI
R SM87.7, 1
RCV VB199, 0
XMT VB100, 0
INT0
网络1
LD SM0.0 //记录接收程序调用次数
INCB MB12
AB= MB10, 100
S Q0.1, 1
网络2
LD SM0.0 //接收
DTCH 10
S SM87.7, 1
RCV VB199, 0
INT1
网络1
LD SM0.0 //记录发送子程序调用次数
INCB MB10
AB= MB10, 100
S Q0.0, 1
网络2
LD SM0.0
R SM87.7, 1
RCV VB199, 0
XMT VB100, 0
S SM87.7, 1
CRETI
以上程序下载至PLC。可以监视到发送了程序执行0次,接收子程序执行1次,之后就没反应了,不知道原因出在哪了!请教各位前辈呀!
最佳答案
1 PLC-----信息,是否有错误?
2 是否是PORT0和温度采集模块通讯?
3 DTCH 10可以不要,因为没连接定时中断
4 CRETI可以不要
5 初始化程序
R SM87.7, 1
RCV VB199, 0
这个可以不要。
提问者对于答案的评价:
问题解决了,虽然您的建议没用上,不过还是非常感谢!!感谢!!!
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc345107.html