发表于:2003-10-31 11:48:00
楼主
请看附件,对高手来说,这只是一块蛋糕而已!
命令帧格式:
a ⑴STXSTX b c⑷11 d⑸RW e f⑽00 g⑾----,**** h⑿ETXETX i j
⑵00 ⑶11 ⑹00 ⑺11 ⑻08 ⑼0c ⒀D7 ⒁A8 ⒂CRCR ⒃
a 通讯的起始符
b 通讯下位机地址
c 通讯下位机地址的子地址,这位被固定为1。
d 通讯命令类型
e 读或写的数据的首地址
f 读或写的数据的长度,若写一个数则设为“0”,若写两个数则设为“1”。。。
g 读或写的数据,以“,”(2CH开头),每个数据用4个ACSII码表示,数据之间没有分隔符
h 数据发送结束符
i BCC块校验
j 回车符,全文结束符即回车符。
通讯应答格式:
a ⑴STXSTX b c⑷11 d⑸RW e g⑾----,**** h⑿ETXETX i j
⑵00 ⑶11 ⑹00 ⑺00 ⒀34 ⒁CE ⒂CRCR ⒃
e 应答代码,正常为0 0
其他同上
假如我要实现一个下面的通讯,也就是把DM0~DM3四个区域中所存的ACSII(一个数据)送给0300地址,以后当我调用PMCR指令时,每次都是把第二个操作数(比如设为DM0~DM3四个区域)的数据传给了0300地址,请帮我编写这个通讯序列!谢谢!!!
STX 0 1 1 W 0 3 0 0 0 , DM0~DM3 EXT 高BCC 低BCC CR
(02H)+(30H)+(31H)+(31H)+(57H)+(30H)+(33H)+(30H)+(30H)+(30H)+(2CH)+ DM0~DM3 +(03H)+(高BCC ASCII码)+(低BCC ASCII码)+(0DH)
补充:BCC校验使用将a~h这些数据的ACSII码相加校验