温湿度传感器(MODBUS)通讯协议.
以太网型温湿度 传感器使用说明书

以太网型温湿度传感器使用说明书THVer1.0第1章产品简介1.1产品概述以太网型温湿度传感器是使用以太网进行温湿度传输的传感器,实时测量温湿度,并使用网线进行传输。
设备支持主动上传与TCP Modbus两种形式。
本系列产品充分利用现成的以太网网络实现不限距离的数据采集与传输与集中控制。
1.2功能特点本产品采用瑞士进口高灵敏度数字探头,信号稳定,精度高。
具有测量范围宽、线形度好、防水性能好、使用方便、便于安装、传输距离远等特点。
本产品广泛用于机房监控系统、安防工程、医疗卫生监控、能耗监控系统、智能家居等系统。
1.3主要参数POE供电48V标准POE供电(选配)传输接口RJ4510M/100M自适应1.4温湿度参数(-S20型)1.5探头参数与选型-S30型SHT30±0.3℃±2-4.5% -S31型SHT31±0.3℃±2%-S75型SHT75±0.3℃±1.5-3% 1.6温度参数(-S20型)表一不同温度下温度测量精度如上表所示,在5-60摄氏度范围内最大偏差在±0.5内,小于0℃和大于60摄氏度情况下偏差递增。
1.7湿度参数(-S20型)表二不同湿度下湿度测量精度如上表所示,在20-80%RH范围内典型偏差±3%,小于20%和大于80%的湿度情况下情况下偏差递增。
1.8温度对湿度测量的影响(-S20型)上文表二描述了不同湿度情况对湿度测量的影响,下表描述了不同的温度对湿度测量精度的影响。
表三不同温度下的相对湿度如上所示,在15℃到55℃,30到80的湿度范围内,湿度的精度最高,是±4.5%,其余情况湿度递增。
1.9系统框架图第2章硬件连接2.1设备安装前检查安装设备前请检查设备清单:2.2产品接口样式说明电源圆口DC头12-24V直流供电网口RJ45接口连接10/100M网线如上图所示为普通供电版本设备,分为一个DC口供电口和一个防水RJ45网线口。
一体式温湿度变送器RS485232接口,Modbus协议,集成进口SHT10温湿度传感器

⼀体式温湿度变送器RS485232接⼝,Modbus协议,集成进⼝SHT10温湿度传感器电话:130****9358,0411-********邮件:**************QQ: 617165508产品内置的瑞⼠进⼝SENSIRION传感器有三种精度可供选择,分别是SHT10,SHT11,SHT15:内置SHT10--(±0.5 ℃,±4.5%)内置SHT11--(±0.4 ℃,±3%)内置SHT15--(±0.3 ℃,±2%)设置软件,以及采集软产品提供详细的说明书,设置软件,以及采集软####》产品提供详细的说明书,同时提供了Modbus通讯协议,件,可供⽤户直接使⽤。
件,可供⽤户直接使⽤。
同时提供了寄存器地址,以及C#,VC++,VB等演⽰程序源代码,⽅便需要⼆次开发的客户迅速上⼿。
####》产品赠送免费的采集软件,采集软件具有采集温湿度,露点,数据保存,查询,报表,曲线等功能--》启动、停⽌数据采集,设置通讯串⼝,设置通讯失败重试次数,显⽰实时数据,显⽰当前采集状态。
--》在线模块校准可校准实际的温湿度数值与期望的温湿度之间的差异。
--》报警信息:在发⽣温湿度上限或者下限报警时对话框弹出,并播放报警⾳。
报警⾳在确认报警后结束,或者在报警恢复之后将⾃动结束。
--》可定义报警发⽣时,是否播放报警⾳--》⾃定义通信配置,可选择串⼝号,波特率,以及校验位。
设置需要与模块相同--》增加、修改、删除采集点的信息,并设置温湿度报警的上下限。
--》历史数据查询分析,可选择所有数据或者选择单独的从机地址,设置查询时间,设置排序规则--》可查询历史曲线,图像放⼤,平移,重置等,可保存为BMP格式的图形以下为说明书⽚段,详细资料请联系我们!1产品的功能特点瑞⼠SENSIRION?⾼精度温湿度传感器,提供14Bits温度测量以及12Bits湿度测量。
HB温湿度传感器变送器系列标准modbus通讯协议使用说明书(北京盛世宏博科技有限公司)

HB—RS485型温湿度变送器系列使用说明书标准modbus通讯协议使用说明书(北京盛世宏博科技有限公司)一、温湿度传感器:采用高精度进口传感器,性能稳定可靠,抗干扰能力强。
二技术参数三接线图四通信协议说明我们的温湿度变送器采用MODBUS规约,原因是该规约文本容易得到,协议本身也非常的简单。
而且该规约是一个开放的,有着许多国内厂商和国际厂商的支持。
MODBUS规约是MODICOM公司开发的,版权归其所有。
我们的接口采用RS485接口,比RS232具有更高的通信速率和更远的通信距离。
根据我们设备的情况,我们仅仅实现了MODBUS的一个小型子集,没有完全实现其所有内容,已经能够满足我们所有的需要。
4.1通信协议介绍通讯默认9600波特率,1个起始位,8个数据位,无校验位,1位停止位。
本机采用部分的MODBUS协议,使用了03和06两个命令。
可读取内部的2个寄存器变量(命令03),可写入(设置)7个寄存器变量(命令06)。
有如下寄存器地址:40001地址是温度数据,小数点后1位,271(十进制数)表示27.1度,无符号整型数40002地址是湿度数据,小数点后1位,534(十进制数)表示53.450001是温度下限地址,十进制数0,表示0度50002是温度上限地址,十进制数100,表示100度50003是湿度下限地址,十进制数1,表示1%RH50004是湿度上限地址,十进制数100,表示100%RH50005是设备通讯地址,十进制数3,表示3地址,范围1-25550006是温度系数地址,小数点后1位,50007是湿度系数地址,小数点后1位,下面说下温度和湿度系数设置方法,点击软件的06命令,会弹出一个对话框,在输入值里面输入12表示实际温度加1.2度或1.2湿度,如果输入-13表示减去相应的值,这里面保留小数点后1位的,如输入126,单片机实际解析为12.6度,湿度系数跟此相同4.2读取命令帧格式为(假设本机地址为1,数据均为16进制):例子:01 03 9C 41 00 02 BA 4F解释:01:从机地址03:读寄存器命令9C 41:第一个寄存器地址00 02:读取寄存器个数BA 4F:CRC校验码4.3写入命令帧格式(假设本机地址为1,数据均为16进制):例子:01 06 C3 55 00 03 E5 9F01:从机地址06:写寄存器命令C3 55:寄存器地址(例子寄存器地址是)00 03:写入该寄存器的值E5 9F:CRC校验码4.4用MODBUS调试助手读取温湿度数据介绍首先打开调试软件,然后点击Connect选项,弹出如图界面安装图片设置完点击OK按钮,然后Display菜单并按照图片勾选,然后点击Setup菜单选择Poll Definition项弹出如图对话框,该对话框用来软件自动读取40001寄存器开始,长度2个寄存器的数据,就是温湿度数据。
基于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芯片。
SHT10空气温湿度MODbus协议(单指令)

SHT10温湿度传感器的通信协议命令包含:1.读取站号命令2.写站号命令3.读取数据4.手动矫正数据串口参数设置:读站号命令(固定命令)主站从站地址功能码H地址L地址 H数据L数据 CRC00 03 00 01 00 01 CRClo CRChi 从站从站地址功能码H地址L地址H数据CRC00 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地址寄存器个数寄存器个数数据长度数据CRC00 10 00 01 00 01 02 00 XX CRClo CRChi 注:(XX=0X01-0XFF)从站从站地址功能码 H地址L地址寄存器个数CRC00 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地址寄存器个数寄存器个数CRCXX 03 00 00 00 02 CRClo CRChi注:(XX=0X01-0XFF)从站从站地址功能码数据长度数据数据CRCXX 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。
温湿度传感器 通讯协议

MODBUS-RTU通讯协议简介1.1 Modbus协议简述ACRXXXE系列仪表使用的是Modbus-RTU通讯协议,MODBUS协议详细定义了校验码、数据序列等,这些都是特定数据交换的必要内容。
MODBUS协议在一根通讯线上使用主从应答式连接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。
首先,主计算机的信号寻址到一台唯一的终端设备(从机),然后,终端设备发出的应答信号以相反的方向传输给主机。
Modbus协议只允许在主机(PC,PLC等)和终端设备之间通讯,而不允许独立的终端设备之间的数据交换,这样各终端设备不会在它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号。
1.2 查询—回应周期1.2.1 查询查询消息中的功能代码告之被选中的从设备要执行何种功能。
数据段包含了从设备要执行功能的任何附加信息。
例如功能代码03是要求从设备读保持寄存器并返回它们的内容。
数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。
错误检测域为从设备提供了一种验证消息内容是否正确的方法。
1.2.2 回应如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。
数据段包括了从设备收集的数据:如寄存器值或状态。
如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。
错误检测域允许主设备确认消息内容是否可用。
1.3 传输方式传输方式是指一个数据帧内一系列独立的数据结构以及用于传输数据的有限规则,下面定义了与Modbus 协议– RTU方式相兼容的传输方式。
每个字节的位:· 1个起始位· 8个数据位,最小的有效位先发送·无奇偶校验位· 1个停止位错误检测(Error checking):CRC(循环冗余校验)1.4 协议当数据帧到达终端设备时,它通过一个简单的“端口”进入被寻址到的设备,该设备去掉数据帧的“信封”(数据头),读取数据,如果没有错误,就执行数据所请求的任务,然后,它将自己生成的数据加入到取得的“信封”中,把数据帧返回给发送者。
程序员日志,以温湿度采集仪为例,解析ModBus协议……
程序员日志,以温湿度采集仪为例,解析ModBus协议……
在前面讲了,ModBus协议的概念,以及数据桢的组成,这次我们以一款简单的modbus设备为例,讲讲如何实现上位机与它的通讯,这款温湿度采集仪的通讯端子是RS-485通讯方式,通讯参数为9600,n,8,1,这应该很熟悉的了,仪器很简单,就两个参数,地址0为温度,地址1为湿度。
温湿度采集仪
首先,我们把设备接好,就是背面四根线,两个数据线,两个电源线,然后通过RS-485转RS-232设备,与电脑相连,通过串口,我们发送与接收数据,这个应该没什么好介绍的了。
地址1请求与返回代码
可以看出温度为0x00F3 (243/10 = 24.3),湿度为0x00B9(185/10=18.5),好的,接下来,我们把设备地址改为2,获得结果。
地址为2时的请求与返回数据
温度0x00F6/10 = 24.6,湿度0x01A3/10 = 41.9。
好的,实际就是这么简单,我们就可以从主机上采集到设备的数据了。
基于Modbus协议的温湿度传感器的设计
据 处理 主要 是对 采 集到 的数 据 进行 计 算 求值 等 ,使 用 s T公 司 的 S T M 3 2 F 1 0 3 芯片 : 无线数据通信则是为传感器节点提供一个数据通信 的通道 . 使用 T I 公司的 C C 1 1 0 1 芯片 这 里主要 对数据采集部 分进行 详 细的阐述 。 数据采集部 分使用 S H T 1 0 传感器 .它传感器把 传感元件 和信 号 处理 电路集成在 了一块微型 电路板 中.输出为完全标定 的数字信 号。 传感器 内部包含一个 电容性聚合体测湿敏感元件 , 一个 用能 隙材料制 成的测 温元件 . 1 4位 的 A / D转换器 . 串行接 口电路。由此 . 传感器具有 极高的可靠性 和长期 的稳定性 ,并且响应速度快 、性价 比高等优点 。 S H T 1 0 温湿度传感器 测量温度的范 围在一 4 O ~ + 1 2 3 . 8 。 c , 测量湿度的范 围在 O ~ 1 0 0 %R H: 测量 温度的精度典 型值为± 4 . 5 %R H , 测量湿 度的精
u s e d a s t h e p r o t o c o l o f d a t a t r a n s mi s s i o n .Ma i n l y.t h e h a r d wa r e c i r c u i t a n d s o f t wa r e d e s i g n o f s e n s o r i s g i v e n , i n c l u d e s t h e d a t a a c q u i s i t i o n c i r c u i t a n d t h e d a t a p r o c e s s i n g c i r c u i t ,t h e t e mp e r a t u r e a n d h u mi d i t y d a t a a c q u i s i t i o n, t he Mo d b u s c o mmun i c a t i o n p r o t o c o l , a n d S O o n .Fi n a l l y ,t h e r a d i o f r e q u e n c y p e r f o r ma n c e a n d t h e p r e c i s i o n o f t he s e n s o r a r e t e s t e d .
温湿度Modbus通讯详述
Modbus通讯详述1、通讯基本参数编码8位二进制数据位8位奇偶校验位无停止位1位错误校检CRC(冗余循环码)波特率2400bit/s、4800bit/s、9600 bit/s可设,出厂默认为4800bit/s数据帧格式定义:采用Modbus RTU 通讯规约,格式如下:初始结构≥4 字节的时间地址码= 1 字节功能码= 1 字节数据区= N 字节错误校检= 16 位CRC 码结束结构≥4 字节的时间地址码:地址码变送器地址,通讯网络中地址码是唯一的。
注:出厂默认地址均为0x01功能码:主机所发指令功能指示,本变送器只用到功能码0x03。
代码含义操作03 读取数据读取当前寄存器内一个或多个二进制值数据区:数据区是具体通讯数据,注意16bits数据高字节在前!CRC码:二字节的校验码。
主机问询帧结构:地址码功能码寄存器起始地址寄存器长度CRC校验码低位CRC校验码高位1字节1字节2字节2字节1字节1字节从机应答帧结构:地址码功能码有效字节数数据一区第二数据区第N数据区校验码1字节1字节N*2字节2字节2字节2字节2字节2、寄存器地址寄存器地址内容操作0000 实时湿度只读0001 实时温度只读0002 保留只读3、通讯协议示例以及解释举例1:读取设备地址0x43的温湿度值问询帧:地址码功能码起始地址数据长度校验码低位校验码高位0x43 0x03 0x00 0x00 0x00 0x02 0xCB 0x29应答帧:(例如读到温度为-10.1℃,湿度为65.8%RH)地址码功能码返回有效字节数湿度值温度值校验码低位校验码高位0x43 0x03 0x04 0x02 0x92 0x80 0x65 0x99 0x89温度计算:当温度低于0 ℃时温度数据的最高位置1,否则为0。
-10.1 ℃表示为 1 000 0000 0110 0101温度:0000 0000 0110 0101 = 0065H(十六进制)=6×16 +5 = 101=> 温度=-10.1℃湿度计算:湿度:0000 0010 1001 0010 = 0292H (十六进制)= 2×256 + 9×16 + 2 = 658=> 湿度= 65.8%RH举例2:读取设备地址0x43的温度值问询帧地址码功能码起始地址数据长度校验码低位校验码高位0x43 0x03 0x00 0x01 0x00 0x01 0xDA 0xE8应答帧:(例如读到温度为26.9℃)地址码功能码返回有效字节数温度值校验码低位校验码高位0x43 0x03 0x02 0x01 0x0d 0x00 0x1E温度:0000 0001 0000 1101 = 10DH(十六进制) =1×256 + 0×16 + 13 = 269=> 温度= 26.9℃。
SHT-标准MODBUS协议-湿度
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;----------------------------------------------------------------------------------------------------------------------。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6若主站或任何从站接收到含有未知命令的包裹,则该包裹将被忽略,且接收站不予响应。
2. 2数据帧结构描述
每个数据帧组成如下:
RTU模式
地址
功能代码
数据数量
数据1
...
数据n
CRC 16位校验
3、按键功能
第一个按键:长按5秒进入设置设备地址模式,长按5秒退出设置设备地址模式。
第二个按键:向上循环翻动功能。
第三个按键:增加设定值。
(1设置设备地址模式(在此模式中不再更新温湿度和接收发送数据
正常上电等待屏幕显示Waiting „后,长按下第一个按键5秒进入设置设备地址模式,显示SET ADDR:XXX。按第二个按键切换设备地址的百十个位,按第三个按键增加设备地址。(设备地址范围:001~255。在设置设备模式中,长安第一个按键就是确定设备地址并自动保存,显示SET SUCCEED。如果在设置设备地址模式中长达5秒没有按键被按下,那么设备就会自动退出设置设备地址模式并自动重启设备,显示SET ERROR。
数据传输缺省速率为9600b/s
2、MODBU RTU通信协议详述
2. 1协议基本规则
以下规则确定在回路控制器和其他串行通信回路中设备的通信规则。
1所有回路通信应遵照主/从方式。在这种方式下,信息和数据在单个主站和从站(监控设备之间传递。
2主站将初始化和控制所有在通信回路上传递的信息。
3无论如何都不能从一个从站开始通信。
01 04 04,湿度H ,湿度L ,温度H ,温度L , CRCL , CRCH。
(2只读温度数据时:
上位机发送: 01 04 00 00 00 01 31 CA(读从数据起始地址为0000H开始的1个模拟量
下位机返回: 01 04 02,湿度H ,湿度L,CRCL , CRCH。
(3只读湿度数据时:
KTR-TH11温湿度传感器通信协议采用MODBUS RTU协议,本协议规定了应用系统中主机与KTR-TH11温湿度传感器之间,在应用层的通信协议,它在应用系统中所处的位置如下图所示:
本协议所处的位置
从机:
1.2物理接口:
连接上位机的主通信口,采用标准串行RS485通讯口,使用接线端子。
信息传输方式为异步方式,起始位1位,数据位8位,停止位1位,无校验。
(5写单个设备寄存器,如温度报警值:
上位机发送:01 06 00 01 00 23 99 D3。
下位机返回:01 06 00 01 00 23 99 D3。
(6写多个设备寄存器:
上位机发送:01 10 00 00 00 04 08 00 01 00 23 00 23 00 1E 12 BF
下位机返回:01 10 00 00 00 04 C1 CA
温湿度传感器(MODBUS通讯协议
1、概述
通信协议详细地描述了KTR-TH11的输入和输出命令、信息和数据,以便第三方使用和开发。
1.1通信协议的作用
使信息和数据在上位机(主站和KTR-TH11之间有效地传递,允许访问KTR-TH11的所有测量数据。
KTR-TH11温湿度传感器可以实时采集现场温湿度的值,具备一个RS485通讯口,能满足小型温湿度监控系统的要求。其功能和技术指标参见用户手册。
4、传输格式
(1命令报文格式
返回:
(2、异常应答返回
异常码01:无效的功能码
注意:每一个数据用两个字节整数表示,高位在前,低位在后
如:带符号整数范围-32768---32767
上传数据需除十,如湿度上传16进制&H0311,对应十进制00785,表示78.5%
上传数据需除十,如温度上传16进制&H00FF,对应十进制00255,表示25.5℃上传数据需除十,如温度上传16进制&H8064,高位为1,表示负数,对应的数高位取反,表示-10.0℃
4所有环路上的通信都以“打包”方式发生。一个包裹就是一个简单的字符串(每个字符串8位,一个包裹中最多可含255个字节。组成这个包裹的字节构成标准异步串行数据,并按8位数据位, 1位停止位,无校验位的方式传递。串行数据流由类似于RS232C中使用的设备产生。
5所有回路上的传送均分为两种打包方式:
A主/从传送
6、网络采样定时
KTR-TH11温湿度传感器中,上位机读取数据每次间隔时间不小于2s,推荐值3s。
7、命令举例:
THR-TH11温湿度传感器的地址为1:
(1读所有数据为:
下发命令:
01 04 0000 0002 71CB (读从数据起始地址为0000H开始的2个模拟量
KTR-TH11温湿度传感器返回命令如下:
地址为2时:
上位机发送: 02 04 00 00 00 02 71 F8(读从数据起始地址为0000H开始的2个模拟量
下RCL , CRCH。
8、接口说明:
上位机发送: 01 04 00 01 00 01 60 0A(读从数据起始地址为0001H开始的1个模拟量
下位机返回: 01 04 02,温度H ,温度L,CRCL , CRCH。
(4读设备的寄存器:
上位机发送: 01 03 00 00 00 04 44 09。
下位机返回: 01 03 08 00 01 00 50 00 50 01 AE C5 26