SHT10空气温湿度MODbus协议(单指令)
- 格式:doc
- 大小:40.74 KB
- 文档页数:4
<转>经过整理的Modbus通讯协议详解 -摘自csdn2011-04-23 11:28Modbus通讯协议简介Modbus协议Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。
此协议支持传统的RS-232、RS-422、RS-485和以太网设备。
许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。
如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。
Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。
此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。
标准的Modicon控制器使用RS232C实现串行的Modbus。
Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master 端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。
Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验, RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP 协议是一个面向连接的可靠协议。
另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。
因此,Modbus协议的可靠性较好。
基于MODBUS协议的温湿度检测模块设计目录摘要 (1)关键词 (1)1 前言 (2)1.1 研究目的和意义 (2)1.2.1 国外研究现状 (2)1.2.2 国内研究现状 (3)1.3 主要研究内容 (4)2 Modbus协议介绍 (4)2.1 Modbus协议简介 (4)2.1.1 在Modbus网络上传输 (4)2.1.2 在其它类型网络上传输 (5)2.1.3 查询—回应周期 (5)2.2 Modbus两种传输方式 (5)2.3 Modbus信息帧 (6)2.4 Modbus错误检查方法 (6)2.5 Modbus协议指令 (7)3 RS485通讯介绍 (8)4 系统方案的设计 (8)5 系统模块的硬件设计 (9)5.1 模块的硬件的选择及电路设计 (9)5.1.1 单片机芯片的选择及电路设计 (9)5.1.2 温湿度采集芯片的选择及电路设计 (12)5.1.3 扩展内存RAM的选择及电路设计 (14)5.1.4 EEPROM存储器的选择及电路设计 (15)5.1.5 无线模块芯片的选择及电路设计 (17)5.1.6 显示器的选择及电路设计 (18)5.1.7 按键电路设计 (19)5.1.8 报警电路设计 (19)5.1.9 电源电路设计 (20)5.2 RS485接口的硬件设计 (20)5.2.1 RS485接口芯片的选择 (20)5.2.2 单片机侧RS485接口电路的设计 (21)6 测量模块的软件设计 (22)6.1 软件的总体设计 (22)6.2 初始化的流程图设计 (23)6.3 温湿度数据采集流程图 (23)6.4 modbus协议读保持寄存器的流程图 (24)6.5 报警流程图 (25)7 模块modbus通信实现的设计 (25)8 系统调试与运行 (27)8.1 调试过程 (27)8.2 运行结果 (29)9 结束语 (30)参考文献 (30)致谢 (31)附录 (31)基于MODBUS协议的温湿度检测模块设计摘要:我国自古以来就是农业大国,但现代设施农业生产起步较晚。
基于Modbus协议的温湿度传感器的设计【摘要】本文介绍了一种使用工业现场总线协议——Modbus协议进行数据传输的温湿度传感器节点。
主要是传感器节点的硬件电路的设计,包含数据采集和处理电路等;软件设计,包含温湿度数据的采集和Modbus通信协议。
最后对设计的传感器节点进行了射频性能和传感器精度的测试验证。
【关键词】Modbus协议;温湿度传感器;无线传感器0 引言无论是在工业现场还是日常生活中,我们都需要对环境的温湿度参数进行监测。
传感器节点作为温湿度监测的终端,直接接触被测环境,是整个监测系统的重要组成部分。
精度高、成本低、使用时限长、安装方便是我们在设计中需要考虑的因素[1]。
本文综合以上各个因素设计了一款使用Modbus通信协议和433MHz无线频段的无线温湿度传感器节点。
考虑到传感器节点成本和精度的因素,使用瑞士Sensirionn公司生产的SHT10传感器,它可以同时测量温度和湿度,且有较高的测量精度和简洁的外围电路。
为了便于安装,使用433MHz无线频段作为传感器节点的通信媒介,有较远的通信距离和穿墙能力,避免了有线通信电缆安装的不便。
1 总体结构温湿度传感器节点的总体结构如图1所示,主要包含传感器数据采集、电源供电、主控芯片数据处理、无线通信数据收发几个部分。
传感器数据采集负责采集环境温湿度的值,电源供电则是为传感器数据采集、主控和无线通信芯片提供3.3V电压电源,主控芯片主要是对采集到的数据进行数据分析和处理以得到实际的温度和湿度的值,无线通信部分实现的是433MHz的通信频段。
图1 温湿度传感器节点的总体结构2 硬件设计无线温湿度传感器节点的硬件设计包含电源供电,数据采集,数据处理,数据收发几个部分。
电源供电部分主要是把3.7V电池电压转换为3.3V,作为各个部分的供电电源,以及5V电源给电池充电两个部分,使用Maxim公司的MAX8881作为3.7V转3.3V的降压芯片,MAX1555作为5VDC电源给电池充电的芯片;数据采集主要是对环境温湿度参数的采集,使用Sensirionn公司生产的SHT10传感器;数据处理主要是对采集到的数据进行计算求值等,使用ST 公司的STM32F103芯片;无线数据通信则是为传感器节点提供一个数据通信的通道,使用TI公司的CC1101芯片。
Datasheet SHT1x (SHT10, SHT11, SHT15数字温湿度传感器• 完全标定• 数字信号输出• 低功耗• 卓越的长期稳定性• SMD 封装–适于回流焊接外形尺寸图 1 SHT1x 传感器尺寸(1mm=0.039inch,“ 11”表示该传感器型号为 SHT11。
外部接口:1:GND, 2: DATA, 3: SCK, 4: VDD传感器芯片此说明书适用于 SHT1x-V4。
SHT1x-V4 是第四代硅传感芯片,除了湿度、温度敏感元件以外,还包括一个放大器, A/D 转换器, OTP 内存和数字接口。
第四代传感器在其顶部印有产品批次号,以字母及数字表示,如“ A5Z ”,见图 1。
材质传感器的核心为 CMOS 芯片,外围材料顶层采用环氧 LCP ,底层为 FR4。
传感器符合 ROHS 和WEEE 标准,因此不含 Pb, Cd, Hg, Cr(6+, PBB, PBDE 。
实验包如要进行直接的传感器测量,传感器性能检验或者温湿度实验,客户可选用 EK-H2,其中包括传感器和与电脑配套的软、硬件。
如需进行更复杂的,要求更高的测量,可选用 EK-H3。
它可以同时进行 20个点的温湿度测量。
产品概述SHT1x (包括 SHT10, SHT11 和 SHT15 属于 Sensirion 温湿度传感器家族中的贴片封装系列。
传感器将传感元件和信号处理电路集成在一块微型电路板上,输出完全标定的数字信号。
传感器采用专利的 CMOSens® 技术,确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上,与 14 位的 A/D 转换器以及串行接口电路实现无缝连接。
因此,该产品具有品质卓越、响应迅速、抗干扰能力强、性价比高等优点。
每个传感器芯片都在极为精确的湿度腔室中进行标定,校准系数以程序形式储存在 OTP 内存中,用于内部的信号校准。
MODBUS RTU 通讯协议波特率9600 数据格式:8位校验位无停止位1位数据默认1位小数,例如10表示1.01.读测量值(温度、湿度、开关状态)命令:主机读数据格式:开始从机地址命令寄存器地址寄存器个数CRC校验>5ms延迟1字节0x03 高字节低字节0x00 22 高字节低字节0x00 03高字节低字节0xXXXX从机返回数据格式:开始从机地址命令字节数数据CRC校验>5ms延迟1字节0x03 6 温度高位温度低位湿度高位湿度低位状态高位状态低位高字节低字节0xXXXX注意:状态:0x80 00 表示温度为负,0x00 00 表示温度为正例如:命令:01 03 00 22 00 00 e5 c0返回:01 03 06 01 21 02 E3 80 00 0d 2d2.读继电器设定值(温度上限、温度下限、湿度上限、湿度下限、温度回滞、湿度)命令:主机读数据格式:开始从机地址命令寄存器起始地址寄存器个数CRC校验>5ms延迟1字节(0x01) 0x03 高字节低字节0x00 0x33高字节低字节0x00 0x00高字节低字节从机返回数据格式:开始从机地址命令字节数数据CRC校验>5ms延迟1字节(0x01) 0x03 10 温度上限高位温度上限低位温度下限高位温度下限低位湿度上限高位湿度上限低位湿度下限高位湿度下限低位温度回滞湿度回滞高字节低字节例如:命令:01 03 00 33 00 00 b5 c5返回:01 03 0A 01 05 00 A1 02 56 01 C3 0A 32 C5 B2 3.读补偿状态及温湿度补偿数值:主机读数据格式:开始从机地址命令寄存器起始地址寄存器个数CRC校验>5ms延迟1字节(0x01) 0x03 高字节低字节0x00 0x44高字节低字节0x00 0x00高字节低字节从机返回数据格式:开始从机地址命令字节数数据CRC校验>5ms延迟1字节(0x01) 0x03 5 补偿状态温度补偿高字节温度补偿低字节湿度补偿高字节湿度补偿低字节高字节低字节例如:命令:01 03 00 44 00 00 05 df返回:01 03 05 00 00 04 00 08 F2 95注意:补偿状态=0x00 表示关补偿=0x11表示开补偿补偿高字节=0x00表示正补偿=0x11表示负补偿3.写继电器设定值命令:主机写数据格式:开始从机地址命令寄存器起始地址寄存器个数写入字节数数据CRC校验10 ms 1字节(0x01)0x10 高字节低字节0x00 0x33高字节低字节0x00 0x0010字节温度上限高位温度上限低位温度下限高位温度下限低位湿度上限高位湿度上限低位湿度下限高位湿度下限低位温度回滞湿度回滞高字节低字节从机返回数据格式:开始从机地址命令寄存器起始地址寄存器个数CRC校验10 ms 1字节(0x01)0x10 高字节低字节0x00 0x33高字节低字节0x00 0x00高字节低字节例如:命令:01 10 00 33 00 00 0a 01 93 00 cd 03 20 01 96 05 05 68 4f 返回:01 10 00 33 00 00 30 063.写温度补偿设定值命令:主机写数据格式:开始从机地址命令寄存器起始地址寄存器个数写入字节数数据CRC校验10 ms 1字节(0x01)0x10 高字节低字节0x00 044高字节低字节0x00 0x005字节补偿状态温度补偿高字节温度补偿低字节湿度补偿高字节湿度补偿低字节高字节低字节从机返回数据格式:开始从机地址命令寄存器起始地址寄存器个数CRC校验10 ms 1字节(0x01)0x10 高字节低字节0x00 0x44高字节低字节0x00 0x00高字节低字节例如:命令:01 10 00 44 00 00 05 11 00 05 11 03 6e 04 返回:01 10 00 44 00 00 80 1C4.写IP地址:主机写数据格式:01 10 00 55 00 00 01 02 1c 5b开始从机地址命令寄存器起始地址寄存器个数写入字节数数据CRC校验10 ms 1字节(0x01)0x10 高字节低字节0x00 055高字节低字节0x00 0x00字节数0x010x02(IP地址)0x1c(高字节)0x5b 低字节从机返回数据格式:02 10 00 55 00 00 D0 2A开始从机地址命令寄存器起始地址寄存器个数CRC校验10 ms 0x02 0x10 高字节低字节0x00 0x55高字节低字节0x00 0x00高字节低字节0x2b 0x9cIP改后测试:读新地址数据:命令:02 03 00 22 00 00 e5 f3返回:02 03 05 00 D1 01 5D 00 A2 EB附件:读数命令(1-10):01 03 00 22 00 00 e5 c002 03 00 22 00 00 e5 f303 03 00 22 00 00 e4 2204 03 00 22 00 00 e5 9505 03 00 22 00 00 e4 4406 03 00 22 00 00 e4 7707 03 00 22 00 00 e5 a608 03 00 22 00 00 e5 5909 03 00 22 00 00 e4 880a 03 00 22 00 00 e4 bb0b 03 00 22 00 00 e5 6a0c 03 00 22 00 00 e4 dd0d 03 00 22 00 00 e5 0c0e 03 00 22 00 00 e5 3f0f 03 00 22 00 00 e4 ee改IP命令(1-10)01 10 00 55 00 00 01 02 1c 5b01 10 00 55 00 00 01 03 dd 9b01 10 00 55 00 00 01 04 9c 5901 10 00 55 00 00 01 05 5d 9901 10 00 55 00 00 01 06 1d 9801 10 00 55 00 00 01 07 dc 5801 10 00 55 00 00 01 08 9c 5c01 10 00 55 00 00 01 09 5d 9c01 10 00 55 00 00 01 0a 1d 9d01 10 00 55 00 00 01 0b dc 5d01 10 00 55 00 00 01 0c 9d 9f01 10 00 55 00 00 01 0d 5c 5f01 10 00 55 00 00 01 0e 1c 5e01 10 00 55 00 00 01 0f dd 9eCRC校验:unsigned char code auchCRCHi[] = {0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40};unsigned char code auchCRCLo[]={0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06,0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3,0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4,0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29,0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60,0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67,0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71,0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92,0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B,0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42,0x43, 0x83, 0x41, 0x81, 0x80, 0x40};unsigned int calcrc16(unsigned char *puchMsgg,unsigned int usDataLen){unsigned char uchCRCHi = 0xFF ; /* 高CRC字节初始化*/unsigned char uchCRCLo = 0xFF ; /* 低CRC 字节初始化*/unsigned int uIndex ; /* CRC循环中的索引*/while (usDataLen--) /* 传输消息缓冲区*/{uIndex = uchCRCHi ^ *puchMsgg++ ; /* 计算CRC */uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex] ;uchCRCLo = auchCRCLo[uIndex] ;}return (uchCRCHi << 8 | uchCRCLo) ;}CRC例子:(写命令返回数据)uart1_send_buf[0]=00x01;//slaveaddr;uart1_send_buf[1]=0x10;uart1_send_buf[2]=register_start_addr/256; //寄存器起始地址uart1_send_buf[3]=register_start_addr%256;uart1_send_buf[4]=register_count/256; //寄存器个数uart1_send_buf[5]=register_count%256;crc=calcrc16(uart1_send_buf, 6 );uart1_send_buf[6]=crc/256;uart1_send_buf[7]=crc%256;----------------------------------------------------------------------------------------------------------------------。
温湿度传感器(MODBUS)通讯协议1、概述通信协议详细地描述了KTR-TH11的输入和输出命令、信息和数据,以便第三方使用和开发。
1.1通信协议的作用使信息和数据在上位机(主站)和KTR-TH11之间有效地传递,允许访问KTR-TH11的所有测量数据。
KTR-TH11温湿度传感器可以实时采集现场温湿度的值,具备一个RS485通讯口,能满足小型温湿度监控系统的要求。
其功能和技术指标参见用户手册。
KTR-TH11温湿度传感器通信协议采用MODBUS RTU协议,本协议规定了应用系统中主机与KTR-TH11温湿度传感器之间,在应用层的通信协议,它在应用系统中所处的位置如下图所示:本协议所处的位置从机:1.2 物理接口:连接上位机的主通信口,采用标准串行RS485通讯口,使用接线端子。
信息传输方式为异步方式,起始位1位,数据位8位,停止位1位,无校验。
数据传输缺省速率为9600b/s2、MODBU RTU通信协议详述2.1 协议基本规则以下规则确定在回路控制器和其他串行通信回路中设备的通信规则。
1)所有回路通信应遵照主/从方式。
在这种方式下,信息和数据在单个主站和从站(监控设备)之间传递。
2)主站将初始化和控制所有在通信回路上传递的信息。
3)无论如何都不能从一个从站开始通信。
4)所有环路上的通信都以“打包”方式发生。
一个包裹就是一个简单的字符串(每个字符串8位),一个包裹中最多可含255个字节。
组成这个包裹的字节构成标准异步串行数据,并按8位数据位,1位停止位,无校验位的方式传递。
串行数据流由类似于RS232C 中使用的设备产生。
5)所有回路上的传送均分为两种打包方式:A) 主/从传送B) 从/主传送6)若主站或任何从站接收到含有未知命令的包裹,则该包裹将被忽略,且接收站不予响应。
2.2数据帧结构描述每个数据帧组成如下:RTU模式地址功能代码数据数量数据1...数据nCRC 16位校验3、按键功能第一个按键:长按5秒进入设置设备地址模式,长按5秒退出设置设备地址模式。
SHT10温湿度传感器的通信协议命令包含:
1.读取站号命令
2.写站号命令
3.读取数据
4.手动矫正数据
串口参数设置:
读站号命令(固定命令)
主站
从站地址功能码H地
址
L地址 H数
据
L数据 CRC
00 03 00 01 00 01 CRClo CRChi 从站
从站地址功能码H地址L地址H数据CRC
00 03 02 00 XX CRClo CRChi 注:返回帧与主站相同
设备地址:(XX=01-FF)
示例:
命令00 03 00 01 00 01 D4 1B(固定命令)
回复00 03 02 00 FF C5 C4 (设备默认站号FF)
写站号命令
主站
从站地址功能
码
H地
址
L地
址
寄存
器个
数
寄存
器个
数
数据
长度
数据CRC
00 10 00 01 00 01 02 00 XX CRClo CRChi 注:(XX=0X01-0XFF)
从站
从站地址功能码 H地
址
L地址寄存器个数CRC
00 10 00 01 00 01 CRClo CRChi 示例:
命令00 10 00 01 00 01 02 00 33 EA 04
回复00 10 00 01 00 01 51 D8
读数据
主站
从站地址功能码 H地
址
L地址寄存器
个数
寄存器
个数
CRC
XX 03 00 00 00 02 CRClo CRChi
注:(XX=0X01-0XFF)
从站
从站地址功能码数据长
度
数据数据CRC
XX 03 04 19 AD 1B E4 CRClo CRCh 示例
命令FF 03 00 00 00 02 D1 D5
回复FF 03 04 19 AD 1B E4 79 FA
注:温度:第4,5个字节19 AD温度=读数/100-40度湿度:第5,6个字节1B E4。