温湿度传感器用户手册 V1. 1 功能特点 THS1 系列温湿度传感器是一款高精度 高灵敏度的测量空气温度和湿度的传感器 采用了进口数字温湿度传感芯片, 能直接稳定地反映现场温度湿度 是符合目前国际标准的温湿度测量方法 适用于科学试验 温室大棚 植物培养 粮食仓储 温室控制 节水灌溉 精细农业等测量 具有以下有点 : 测量精度高, 响应速度快 互换性好, 性能可靠 通用通讯接口使用方便 宽输入电压范围 超低功耗, 易于长时间在线 节能模式, 自动休眠, 自动唤醒功能 具备电源反接保护功能 带有用户 EEPROM, 可以保存用户数据 可定制功能 2 技术参数 技术参数 信号输出类型 RS485 接口,Modbus 协议 供电电压 5-36V/DC 直流 最大功耗 小于.1W 响应时间 小于.5 秒 湿度测量量程 -1%RH 湿度分辨率 可调 8-12bit,(.7%RH-.4%RH) 湿度测量精度 2-8%RH 范围内为 ±3%RH; 2-8%RH 范围外小于 ±4.5%RH, 重复性 ±.1%RH, 长期漂移小于.25%RH/ 年, 温度测量量程 -4-12 温度分辨率 可调 12-14bit,(.4 -.1 ) 温度测量精度 5-6 范围内为 ±.3 ; 5-6 范围外小于 ±1, 重复性 ±.1, 长期 漂移小于.2 / 年 用户 EEPROM 512 字节, 可修改次数大于 1 万次 防护等级 IP67 运行环境 -4-85 储存环境 -4-85 - 1 -
3 电气连接 3.1 接线说明 型号 RS485 接口型 Modbus 协议 接线图棕色 (V+): 电源正黄色 (T+): RS485+/A/T+ 黑色 (G) : 电源地蓝色 (T-): RS485-/B/T- 灰色 (SET): 设置线注意 : 颜色以实际产品标签为准设置线 (SET): 接 V+( 电源正 ) 时上电启动模块进入 设置模式 不连接或者接 G( 电源地 ) 时上电启动进入 运行模式 不连接时绝缘处理 如果忘记了模块的配置参数 Modbus 地址, 波特率, 校验位, 通讯协议等, 将导致不能与模块进行通讯 为了防止这个问题, 模块有一特殊的模式称作 设置模式 当模块以 设置模式 上电启动时, 模块会以以下参数进行通讯 : 1.Modbus 地址固定为 1 2. 串行通信配置为默认值 (96bps, 校验位,8 个数据位,1 个停止位 ) 3. 通信协议为 Modbus-RTU 4. 关闭主动输出功能其它的配置参数不会因为模块进入 设置模式 时而改变, 当模块处于 运行模式 时仍会按照原来配置参数进行通讯 4 选型订购 外型尺寸与安装说明 4.1 选型订购 型号格式 : 字母 + 数字 字母 THS 产品名称 温湿度传感器 第 1 位数字 产品系列 1 第一代产品 第 2 位数字 通讯方式 RS485 接口,Modbus 协议 RTU 第 3 位数字外壳材料 外壳,pcb 裸板 1 铜外壳 2 塑料外壳 第 4 位数字 引线形式 1 5 线制, 线长 1 米 型号举例 : 如 THS111, 表示第一代温度湿度传感器,RS485 接口,Modbus 协议 RTU, 铜外壳, 标准 5 线制 - 2 -
4.2 外型尺寸 4.3 安装说明 4.3.1 工作范围传感器在建议的正常范围内工作 稳定工作范围 - 见下图 长期暴露于条件在正常范围之外, 特别是在湿度 > 8%RH 时, 可能会暂时抵消 RH 信号 (6h 后 + 3%RH) 回到正常范围后, 它会慢慢返回朝着校准状态本身 长期接触极端的条件可能会加速老化 探头部分不要有遮掩物, 安装位置附近不要有干扰源, 尽量靠近被测点 一般的采用水平安装或探头向下 的方式固定 在湿度大的地方建议采用探头向下的方式固定, 防止露水堆积在内部 探头部分采用微孔透气结构, 不要用力按压以免变形 保持清洁 - 3 -
5 Modbus 通信协议 5.1 简介 Modbus 是一种串行通信协议, 最初由 Modicon( 现为施耐德电气 ) 于 1979 年出版, 用于其可编程逻辑控制器 (PLC) Modbus 已成为事实上的标准通信协议, 现在已成为连接工业电子设备的常用手段 在工业环境中使用 Modbus 的主要原因是 : 根据工业应用而开发, 公开发表和免版税, 易于部署和维护, 移动原始位或字, 而不会对供应商提出任何限制 Modbus 支持连接到同一网络的许多设备之间的通信, 例如, 测量温度和湿度的系统, 并将结果传送到计算机 Modbus 通常用于将监控计算机与远程终端单元 (RTU) 连接在监控和数据采集 (SCADA) 系统中 许多数据类型都是以驱动继电器的名称命名的 : 一位物理输出被称为线圈, 一位物理输入被称为离散输入或触点 自 24 年 4 月, 施耐德电气将权利转让给该组织以来,Modbus 协议的开发和更新由 Modbus 组织管理 Modbus 组织是 Modbus 兼容设备的用户和供应商协会, 主张继续使用该技术 Modbus 在工业现场中有着广泛的应用 Modbus 协议是一个主 / 从架构的协议 有一个节点是主节点, 其他使用 Modbus 协议参与通信的节点是从节点 每一个从设备都有一个唯一的地址 通讯参数默认值为 : 波特率 96bps, 一个起始位,8 个数据位, 校验, 一个停止位 通讯协议为 Modbus RTU 协议 通讯参数可由设置程序或者 Modbus 命令改变 请参考规范性引用文件,MODBUS 协议参考指南 Rev J,MODICON,1996 年 6 月,doc#PI_MBUS_3 5.2 Modbus 寄存器 名称地址类型功能号参数范围及说明默认值 温度值 x INT16, 3/4-4-12, 温度测量值, 负数用补码表 (TEMPRATURE) 示 温度 = 温度寄存器值 /1 如读取到的 数据为 255, 则温度 255/1=25.5 读取到负数 -125, 则温度 -125/1=-1.25 湿度值 x1 INT16, 3/4-1, 湿度 = 湿度寄存器值 /1 如读 (HUMIDITY) 取到的数据为 655, 则温度 = 655/1=65.5%RH 执行时间 x2 UINT16, 3/4-65535, 保存的是请求到响应的间隔时间 (EXECUTETIME) 单位毫秒,( 不包括串行通信延时响应设置 时间 ) 单独读取此地址是上一次的时间 如果连续读取包含本地址, 例如读 -2 寄 存器的值则保存的是本次请求到响应的间 隔时间, 其他的连续读取, 需要在单独读 取此寄存器 未使用 产品版本信息 x1-16 个 16 3/4 共 32 字节 ASCII 码, 如果读出为 (VER) x1f 位数据, "THS1;VER.;Dec 12 217;" 表示温湿度 传感器, 固件为. 版, 以及版本日期 唯一识别码 (SID) x11-4 个 16 3/4 64bit, 共 8 字节, 每台设备都有唯一的识 x113 位数据, 别码 - 4 -
未使用 Modbus 从机地址 (ADDRESS) x1 UINT16, 串行通信协议 x11 UINT16, (PROTOCOL) 串行通信波特率 x12 UINT16, (BAUDRATE) 串行通信校验位 x13 UINT16, (PARITY) 串行通信数据位 x14 UINT16, (DATABITS) 串行通信停止位 x15 UINT16, (STOPBITS) 串行通信延时响 x16 UINT16, 应 (RESPONSEDELAY) 串行通信主动输 x17 UINT16, 出时间间隔 (ACTIVEOUTPUTIN TERVAL) 重启模块 (RST) x18 UINT16, 节能模式 (SLEEP) x19 UINT16, 3/4/6/16-255, 重启生效 : 广播地址, 不响应 3/4/6/16-1, 重启生效 :Modbus RTU 1:Modbus ASCII 3/4/6/16-12, 重启生效 :11bps 1:3bps 2:6bps 3:12bps 4:24bps 5:48bps 6:96bps 7:144bps 8:192bps 9:288bps 1:384bps 11:576bps 12:1152bps 3/4/6/16, 重启生效 : 校验 3/4/6/16 8, 重启生效 8:8 个数据位 3/4/6/16 1-2, 重启生效 1:1 个停止位 2:2 个停止位 3/4/6/16-65535, 立即生效接受到主机请求命令后延时一段时间然后响应 延时时间为设置值 *1 毫秒 设置为 时不延时 3/4/6/16 2-65535, 立即生效不需要主机进行请求, 以固定的时间间隔自动发送寄存器 和寄存器 1 的数据 间隔为设置值 *1 毫 设置为 时禁止主动输出功能 当设置为主动输出数据时,RS485 总线上只能连接一个模块, 以避免总线数据冲突 当模块主动输出时, 可以接收请求一旦设置此寄存器为, 则停止主动输出, 建议多次连续快速设置, 以利用间隔时间最小.2 秒 3/4/6/16-1, 立即生效 : 操作 1: 重启模块, 重启后复位为 3/4/6/16-1, 立即生效 : 不启用节能模式 1: 启用节能模式 1 6 8 1-5 -
温湿度分辨率 x1a (RESOLUTION) 未使用用户 EEPROM x2- x21 未使用 UINT16, 256 个 16 位数据, 3/4/6/16-3, 立即生效 : RH= 8bit, T=12bit 1: RH=1bit, T=13bit 2: RH=11bit, T=11bit 3: RH=12bit, T=14bit 1 3/4/6/16 共计 512 字节 8 位数据 UINT16:16 位符号整数,INT16:16 位有符号整数,UINT32:32 位符号整数,UINT32:32 位有符号整数 BIT: 位变量 5.3 CRC16 校验说明以及例程 举例 : 读寄存器 x-x1, 即温度 湿度的测量值 请求 :1 3 2 C4 B(8 个字节 ) 设备地址 1 字节 x1 功能号 1 字节 x3 起始寄存器地址 2 字节 x 寄存器数量 2 字节 x2 校验 2 字节 xc4(crc 低字节 ) xb(crc 高字节 ) 响应 :1 3 4 7 2 7 1D E1 7E(9 个字节 ) 设备地址 1 字节 x1 功能号 1 字节 x3 有效字节数 1 字节 x4 数据 4 字节 x9d6( 温度 ) x1982( 湿度 ) 校验 2 字节 x93(crc 低字节 ) xa6(crc 高字节 ) //----------------------------------------------------------------------------- //CRC 计算 C51 语言函数如下 // 输入参数 1:arr_buff, 待校验的字节数组名 // 输入参数 2:len, 待校验的字节总数 // 函数返回值 : 校验失败时返回非 值 校验成功返回 //----------------------------------------------------------------------------- unsigned short get_modbus_crc(unsigned char *arr_buff, unsigned char len) { unsigned short crc = xffff; unsigned char i, j; for (j = ; j < len; j++) { - 6 -
crc = crc ^ *arr_buff++; for (i = ; i < 8; i++) { if ((crc & x1) > ) { crc = crc >> 1; crc = crc ^ xa1; } else crc = crc >> 1; } } return (crc); } 得到 CRC 返回结果和接收到的 CRC 比较, 注意收到的 CRC 低字节在前 如果校验不成功, 说明传输过程发生错误, 应放弃此次采集到的数据, 重新采集 - 7 -