sos sos 通信协议问题 vb中pc从外界读取数据,如何区别电压与电流?是用通信协议来区别的吗?通信协议怎么写啊???给个例子吧,谢谢~!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 通讯协议样本:1. 基本约定通讯波特率:4800 、9600、19200、57600 默认:9600地址:01H~1fH共31个地址可选 默认:12.设备通讯 命令格式 地址帧格式:起始位 d0 d1 d2 d3 d4 d5 d6 d7 d8 停止位 0 X X X X X X X X 1 1 指令帧格式:起始位 d0 d1 d2 d3 d4 d5 d6 d7 d8 停止位 0 X X X X X X X X 0 1其中:一次完整的通讯是,首先设校验位(d8)位为1,发送地址,再接着设校验位发送以下的所列的仪器指令3.仪器指令及应答格式 主机发送通讯命令时,应设控制位d8=0. 仪器回送数据时,d8 亦为0主机发送给仪器的通讯命令必须遵循以下格式:命令长度 命令码 校验和其中:命令长度为命令码和校验和字节数;此处为全部02H校验和=256-(命令长度值+命令码值) MOD 256仪器应答数据遵循以下格式:地址 数据长度 命令码 数据1 ……. 数据N 校验和其中数据长度=2+n;n为要发送的数据字节总数(即地址,数据长度,命令码。校验和除外)校验和=256-(数据长度值+命令码值+数据1+…+数据N)mod 256下面以获取状态信息举例:取状态值02h(01 02 02 FC)假设地址设置为 “1“主机命令:地址 02h 02h 校验和仪器应答:地址 08H 02H N值高位 N值低位 气温 管温 转速高位 转速低位 校验和软件控制: 在对本仪器编程时,请祥细参阅本仪器说明书中通讯协议部分!在本仪器在发送命令的过程中,为能确保每一次命令都能发送成功,建议软件的控制方式是采用循环发送命令直到有正确的应答,此时表示此命令已经成功发送,接收!命令清单:在单机方式下,当地址为1,命令如下(以下命令为十六进制): 1.请求进行线性校正 :66 74 79 01 02 05 A5 应答:01 02 05 F9 2.请求转换到测量屏:66 74 79 01 02 06 A4 应答:01 02 06 F8 3.请求转换到稳态屏:66 74 79 01 02 07 A3 应答:01 02 07 F7 4.请求转换到加速屏:66 74 79 01 02 08 A2 应答:01 02 08 F6 5.请求开始或停止稳态测量:66 74 79 01 02 09 A1 应答:01 02 09 F5 6.请求进行一次加速触发:66 74 79 01 02 0B 9F 应答:01 02 0B F3 7.清除加速数据:66 74 79 01 02 0C 9E 应答:01 02 0C F2 8.切换加速方式:66 74 79 01 02 0D 9D 应答:01 02 0D F1 9.取状态:66 74 79 01 02 01 A9 10.取测量值:66 74 79 01 02 02 A8 11.取稳态值:66 74 79 01 02 03 A7 12取加速值:66 74 79 01 02 04 A6在多机方式下,当地址为1,命令如下(以下命令为十六进制): 1.请求进行线性校正:01 02 05 F9 应答:01 02 05 F9 2.请求转换到测量屏:01 02 06 F8 应答:01 02 06 f8 3.请求转换到稳态屏:01 02 07 F7 应答:01 02 07 F7 4.请求转换到加速屏:01 02 08 F6 应答:01 02 08 F5 5.请求开始或停止稳态测量:01 02 09 F5 应答:01 02 09 F5 6.请求进行一次加速触发:01 02 0B F3 应答:01 02 0B F3 7.清除加速数据:01 02 0C F2 应答:01 02 0C F2 8.切换加速方式:01 02 0D F1 应答:01 02 0D F1 9.取状态:01 02 01 FD 10.取测量值:01 02 02 FC 11.取稳态值:01 02 03 FB 12.取加速值:01 02 04 FA2.串口交换方式 串口类型:RS-232/RS-485 波特率:4800/9600/19200 帧格式:起始位Ox02 + 地址OxXX + 帧长度OxXXXX +命令0xXX+ 数据 + 校验OxXX + 结束位Ox03 其中起始位1字节;地址1字节;帧长度2字节,低位在前;命令1字节;校验1字节;结束位1字节;帧长度=全帧的字节数 校验和为地址+帧长度+命令+数据的连续累加和(进位丢弃) 上位机发送检测命令(16进制,地址为01,格式"T 0 1",ASCII方式): 命令为"T",ASCII方式;数据为0/1(检测项目:尾气/烟度) 0/1(检测方法:怠速/双怠速,不透光/滤纸式),ASCII方式 02+01+09+00+54+30+31+BF+03 下位机应答:成功返回"A",失败返回"X",ASCII方式(延时50ms后应答) 02+01+07+00+41+49+03 上位机发送取消检测命令"C",ASCII方式 02+01+07+00+43+4B+03 下位机应答:成功返回"A",失败返回"X",ASCII方式(延时50ms后应答) 02+01+07+00+41+49+03 下位机发送检测结果,命令为"R",ASCII方式 按以下格式返回数据 R 检测项目 检测方法 LowCO LowHC HighCO HighHC Lumda Smoke1 Smoke2 Smoke3 Smoke4 SmokeAvg 检测项目:0/1 ASCII方式 尾气/烟度 检测方法:0/1 ASCII方式 怠速/双怠速,不透光/滤纸式 LowCO 格式 □□.□□,单位:%,6Bytes,ASCII方式 LowHC 格式 □□□□,单位:ppm,5Bytes,ASCII方式 HighCO 格式 □□.□□,单位:%,6Bytes,ASCII方式 HighHC 格式 □□□□,单位:ppm,5Bytes,ASCII方式 Lumda 格式 □.□□,5Bytes,ASCII方式 Smoke1 格式 □□.□□,长度:6Bytes,单位:Rb/1/m,ASCII方式表示。 Smoke2 格式 □□.□□,长度:6Bytes,单位:Rb/1/m,ASCII方式表示。 Smoke3 格式 □□.□□,长度:6Bytes,单位:Rb/1/m,ASCII方式表示。 Smoke4 格式 □□.□□,长度:6Bytes,单位:Rb/1/m,ASCII方式表示。 SmokeAvg 格式 □□.□□,长度:6Bytes,单位:Rb/1/m,ASCII方式表示。 数据间用空格(ASCII方式)补充 上位机应答:成功返回"A",失败返回"X",ASCII方式(延时50ms后应答) 02+01+07+00+41+49+03 在vba中,怎么控制recordset的行数? Ado在英文xp的问题 API浏览器里少很多API,自己写声明应该依据什么呢? 日期格式,在线等待。 获取ActiveDLL的工程名和类名 求支持tif格式图象文件的控件 这个问题好难!这是个联接,进入正题就不止这个分了! 哪为能提供vb6的UDP简单应用的源码(100分送) 这段代码有什么问题? 我发明了VB的RPG行走屏幕滚动引擎,感兴趣的请回答 求助:Command控件对treeview控件节点的访问操作出现问题 VB6.0怎样查找数据库中的表
1. 基本约定
通讯波特率:4800 、9600、19200、57600 默认:9600
地址:01H~1fH共31个地址可选 默认:1
2.设备通讯
命令格式
地址帧格式:
起始位 d0 d1 d2 d3 d4 d5 d6 d7 d8 停止位
0 X X X X X X X X 1 1
指令帧格式:
起始位 d0 d1 d2 d3 d4 d5 d6 d7 d8 停止位
0 X X X X X X X X 0 1
其中:一次完整的通讯是,首先设校验位(d8)位为1,发送地址,再接着设校验位发送以下的所列的仪器指令3.仪器指令及应答格式
主机发送通讯命令时,应设控制位d8=0. 仪器回送数据时,d8 亦为0
主机发送给仪器的通讯命令必须遵循以下格式:命令长度 命令码 校验和
其中:
命令长度为命令码和校验和字节数;此处为全部02H
校验和=256-(命令长度值+命令码值) MOD 256
仪器应答数据遵循以下格式:
地址 数据长度 命令码 数据1 ……. 数据N 校验和
其中数据长度=2+n;n为要发送的数据字节总数(即地址,数据长度,命令码。校验和除外)
校验和=256-(数据长度值+命令码值+数据1+…+数据N)mod 256下面以获取状态信息举例:
取状态值02h(01 02 02 FC)假设地址设置为 “1“主机命令:
地址 02h 02h 校验和
仪器应答:
地址 08H 02H N值高位 N值低位 气温 管温 转速高位 转速低位 校验和
软件控制:
在对本仪器编程时,请祥细参阅本仪器说明书中通讯协议部分!
在本仪器在发送命令的过程中,为能确保每一次命令都能发送成功,建议软
件的控制方式是采用循环发送命令直到有正确的应答,此时表示此命令已经
成功发送,接收!
命令清单:
在单机方式下,当地址为1,命令如下(以下命令为十六进制):
1.请求进行线性校正 :66 74 79 01 02 05 A5
应答:01 02 05 F9
2.请求转换到测量屏:66 74 79 01 02 06 A4
应答:01 02 06 F8
3.请求转换到稳态屏:66 74 79 01 02 07 A3
应答:01 02 07 F7
4.请求转换到加速屏:66 74 79 01 02 08 A2
应答:01 02 08 F6
5.请求开始或停止稳态测量:66 74 79 01 02 09 A1
应答:01 02 09 F5
6.请求进行一次加速触发:66 74 79 01 02 0B 9F
应答:01 02 0B F3
7.清除加速数据:66 74 79 01 02 0C 9E
应答:01 02 0C F2
8.切换加速方式:66 74 79 01 02 0D 9D
应答:01 02 0D F1
9.取状态:66 74 79 01 02 01 A9
10.取测量值:66 74 79 01 02 02 A8
11.取稳态值:66 74 79 01 02 03 A7
12取加速值:66 74 79 01 02 04 A6
在多机方式下,当地址为1,命令如下(以下命令为十六进制):
1.请求进行线性校正:01 02 05 F9
应答:01 02 05 F9
2.请求转换到测量屏:01 02 06 F8
应答:01 02 06 f8
3.请求转换到稳态屏:01 02 07 F7
应答:01 02 07 F7
4.请求转换到加速屏:01 02 08 F6
应答:01 02 08 F5
5.请求开始或停止稳态测量:01 02 09 F5
应答:01 02 09 F5
6.请求进行一次加速触发:01 02 0B F3
应答:01 02 0B F3
7.清除加速数据:01 02 0C F2
应答:01 02 0C F2
8.切换加速方式:01 02 0D F1
应答:01 02 0D F1
9.取状态:01 02 01 FD
10.取测量值:01 02 02 FC
11.取稳态值:01 02 03 FB
12.取加速值:01 02 04 FA
2.串口交换方式
串口类型:RS-232/RS-485
波特率:4800/9600/19200
帧格式:起始位Ox02 + 地址OxXX + 帧长度OxXXXX +命令0xXX+ 数据 + 校验OxXX + 结束位Ox03
其中起始位1字节;地址1字节;帧长度2字节,低位在前;命令1字节;校验1字节;结束位1字节;帧长度=全帧的字节数
校验和为地址+帧长度+命令+数据的连续累加和(进位丢弃)
上位机发送检测命令(16进制,地址为01,格式"T 0 1",ASCII方式): 命令为"T",ASCII方式;数据为0/1(检测项目:尾气/烟度) 0/1(检测方法:怠速/双怠速,不透光/滤纸式),ASCII方式
02+01+09+00+54+30+31+BF+03
下位机应答:成功返回"A",失败返回"X",ASCII方式(延时50ms后应答)
02+01+07+00+41+49+03 上位机发送取消检测命令"C",ASCII方式
02+01+07+00+43+4B+03
下位机应答:成功返回"A",失败返回"X",ASCII方式(延时50ms后应答)
02+01+07+00+41+49+03
下位机发送检测结果,命令为"R",ASCII方式
按以下格式返回数据 R 检测项目 检测方法 LowCO LowHC HighCO HighHC Lumda Smoke1 Smoke2 Smoke3 Smoke4 SmokeAvg
检测项目:0/1 ASCII方式 尾气/烟度
检测方法:0/1 ASCII方式 怠速/双怠速,不透光/滤纸式
LowCO 格式 □□.□□,单位:%,6Bytes,ASCII方式
LowHC 格式 □□□□,单位:ppm,5Bytes,ASCII方式
HighCO 格式 □□.□□,单位:%,6Bytes,ASCII方式
HighHC 格式 □□□□,单位:ppm,5Bytes,ASCII方式
Lumda 格式 □.□□,5Bytes,ASCII方式
Smoke1 格式 □□.□□,长度:6Bytes,单位:Rb/1/m,ASCII方式表示。
Smoke2 格式 □□.□□,长度:6Bytes,单位:Rb/1/m,ASCII方式表示。
Smoke3 格式 □□.□□,长度:6Bytes,单位:Rb/1/m,ASCII方式表示。
Smoke4 格式 □□.□□,长度:6Bytes,单位:Rb/1/m,ASCII方式表示。
SmokeAvg 格式 □□.□□,长度:6Bytes,单位:Rb/1/m,ASCII方式表示。
数据间用空格(ASCII方式)补充 上位机应答:成功返回"A",失败返回"X",ASCII方式(延时50ms后应答)
02+01+07+00+41+49+03