发表于:2011/10/10 17:25:19
#0楼
我手头上有一块模拟量采集模块,支持RS485通信,它的报文格式是:站地址+指令+资料+RCR校验;像这样的报文接收该怎么写。我原来和变频器通信的话,都是有开始字符和停止字符的,如果没有怎么办?我用RCV 指令,数据存放VB200开始的地址,但没有数据反馈,我用串口检测软件发生有数据包返回,但PLC里读不到数据,我估计是自由口初始化的问题,但又不知道怎么写。具体程序如下:
主程序
网络1
LD SM0.1
CALL SBR_0:SBR0
网络2
LD M1.0
O I0.3
EU
MOVB 8, VB100
MOVB 16#1, VB101 *从站地址01
MOVB 16#04, VB102 *读取指令
MOVB 16#0, VB103 *
MOVB 16#0, VB104 *通道00
MOVB 16#0, VB105
MOVB 16#04, VB106 *通道数量4个
MOVB 16#F1, VB107
MOVB 16#C9, VB108 *F1C9为CRC校验
XMT VB100, 0
SBR0
LD SM0.0
MOVB 16#09, SMB30
MOVB 30, SMB94
MOVW 5, SMW90 (我个人认为这里是关键,但不知道如何写?)
LD SM0.0
ATCH INT_0:INT0,
INT-0
LD SM0.0
RCV VB200, 0
主程序
网络1
LD SM0.1
CALL SBR_0:SBR0
网络2
LD M1.0
O I0.3
EU
MOVB 8, VB100
MOVB 16#1, VB101 *从站地址01
MOVB 16#04, VB102 *读取指令
MOVB 16#0, VB103 *
MOVB 16#0, VB104 *通道00
MOVB 16#0, VB105
MOVB 16#04, VB106 *通道数量4个
MOVB 16#F1, VB107
MOVB 16#C9, VB108 *F1C9为CRC校验
XMT VB100, 0
SBR0
LD SM0.0
MOVB 16#09, SMB30
MOVB 30, SMB94
MOVW 5, SMW90 (我个人认为这里是关键,但不知道如何写?)
LD SM0.0
ATCH INT_0:INT0,
INT-0
LD SM0.0
RCV VB200, 0