最近在写一份上位机程序和下位机进行通信,采用的是modbus协议数据一ASCII代码发送。上位机开发环境是VC++6.0用MFC做的界面,首先是设置串口参数串口COM1,波特率是9600无校验,一個停止位数据位7位。
不知到该怎样设置发送的数据
? 表示完成指令接收,可立即开始执行
基本格式第1部分 文本部分基本格式第II部分
聲明通讯字符串的起始字符。
收到此字符可作为另一条通讯指令开始的判据
起始字符与文本结束字符是一一对应的关系。
指定传送指令調节器的地址
地址可在1-255(十进制)范围内指定。
②:前4位数据转为ASCII码
③:后4位数据转为ASCII码
机器地址=0(30H,30H)用于广播指令
SRS10系列支持广播指令。
对廣播指令无论正确与否,都不做应答
要以ASCII代码发送一串数据,应该怎样编码呢
1. 通讯发送格式的解释:
c 通讯下位机地址的子地址:第4 位。当只有一个回路时为1;当有两个回路时通道一为1
d 通讯命令类型:第5 位。“R”(52H)表明在上位机发送或仪表应答中的读命令。“W”
(57H)表明在上位机发送或仪表应答的写命令。“B”表明在上位机以广播方式发送命令
组,并转换成相应的ASCII 码命令代码祥见命令代码表。
f 通讯命令连续读代码:第10 位表明上位机要连续读取多少个参数。这位取值范围(0~9)
(30H~39H)十个数。实际的连续读参数的个数=表明的數值+1
g 通讯数据:第11 位。这位的数据量决定于这位的数据既这位的数据长度不定。数据总
是以“”(2CH),数据项与数据项之间不需要任何分割符数据的长度主要取决于第10 位
的方式。每一个数据项由16 位二进制代码组成(1 个字)每4 位被分成一个数据单元,同
时每个数据單元又被转换成ASCII 数据当第5 位为“R”读命令时,此位不写
高位低位高位低位高位低位,” 第一单元第二单元第三单元第四单元第一单元苐二单元
第三 单元第四单元第一单元第二单元第三单元第四单元2CH
h 数据发送结束符:第12 位ETX(03H)或“:”(3AH)。所有的数据和命令在此位之
湔都以发送完成遇到此字符表名结束。
处理仪表的BCC 校验可在仪表1-34 窗口设置。当BCC 校验结果有错误时将没有应答。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。