SM6901B采用标准RS485总线 MODBUS-RTU协议,方便接入PLC,DCS等各种仪表或系统,用于监测温度,湿度,光照度,二氧化碳,烟雾,甲烷,硫化氢,一氧化碳等状态量。内部使用了较高精度的传感内核及相关器件,确保产品具有较高的可靠性与卓越的长期稳定性, 可定制RS232、RS485、CAN、4-20mA、DC0~5V/10V、ZIGBEE、Lora、WIFI、GPRS、NB-IOT等多种输出方式。
技术参数
技术参数 |
参数值 |
品牌 |
SONBEST/搜博 |
温度测量范围 |
-30℃~80℃ |
温度测量精度 |
±0.5℃ @25℃ |
湿度测量范围 |
0~100%RH |
湿度测量精度 |
±3%RH @25℃ |
光照测量范围 |
0~20 0000Lux |
光照最大允许误差 |
±7% |
光照重复性测试 |
±5% |
光照感光体 |
进口数字式 |
波长测量范围 |
380nm~730nm |
CO2测量范围 |
0~5000ppm |
CO2测量精度 |
±100ppm |
烟雾测量范围 |
0~5000ppm |
烟雾最大允许误差 |
±7% |
烟雾重复性测试 |
±5% |
烟雾敏感体 |
热响应式 |
温度特性 |
±0.5%/℃ |
CH4测量范围 |
0~5000ppm |
CH4最大允许误差 |
±7% |
CH4重复性测试 |
±5% |
温度特性 |
±0.5%/℃ |
H2S测量范围 |
0~100ppm |
H2S测量精度 |
±10ppm |
CO测量范围 |
0~100ppm |
CO测量精度 |
±10ppm |
通讯接口 |
RS485 |
默认波特率 |
9600 8 n 1 |
供电电源 |
DC9~24V 1A |
外形尺寸 |
Φ220mm×150mm |
产品接线
任何错误接线均有可能对产品造成不可逆的损坏。请在断电的情况下认真按如下方式接线,接好线确认无误后再通电使用。部分产品无引线,线芯颜色仅供参考。
编号 |
引线颜色 |
标号 |
说明 |
1 |
红色 |
V+ |
电源正极 |
2 |
绿色 |
V- |
电源负极 |
3 |
黄色 |
A+ |
RS485 A+ |
4 |
兰色 |
B- |
RS485 B- |

通讯协议
产品使用RS485 MODBUS-RTU标准协议格式,所有操作或回复命令都为16进制数据。设备出厂时默认设备地址为1,默认波特率为 9600,8,n,1。
1. 读取数据 ( 功能码 0x03)
问询帧(十六进制),发送举例:查询1#设备1个数据,上位机发送命令:01 03 00 00 00 08 44 0C 。
地址 |
功能码 |
起始地址 |
数据长度 |
校验码 |
01 |
03 |
00 00 |
00 08 |
44 0C |
对于正确的问询帧,设备会响应数据:01 03 10 00 79 00 7A 00 7B 00 7C 00 7D 00 7E 00 7F 00 80 F0 13 ,响应格式:
地址 |
功能码 |
长度 |
数据1 |
数据2 |
数据3 |
数据4 |
数据5 |
数据6 |
数据7 |
数据8 |
校验码 |
01 |
03 |
10 |
00 79 |
00 7A |
00 7B |
00 7C |
00 7D |
00 7E |
00 7F |
00 80 |
F0 13 |
数据说明:命令中数据为十六进制,以数据1为例,00 79转为十进制数值为121,假设数据倍率为100,则真实值为121/100=1.21,其它以此类推。
当值为负数时,数据是以补码的形式上传的。通常通过判断值是否大于32768的方法来判断正负。当接收到的值大于32768时即为负值,前值减去65535除以100即为真实值。比如接收到的温度数据为62999(十六进制F617),则真实值=(62999-65535)/100=-25.36。
2. 数据地址表
组态地址 |
寄存器地址 |
寄存器说明 |
数据类型 |
值范围 |
40001 |
00 00 |
温度寄存器 |
只读 |
0~65535 |
40002 |
00 01 |
湿度寄存器 |
只读 |
0~65535 |
40003 |
00 02 |
光照度寄存器 |
只读 |
0~65535 |
40004 |
00 03 |
二氧化碳寄存器 |
只读 |
0~65535 |
40005 |
00 04 |
烟雾寄存器 |
只读 |
0~65535 |
40006 |
00 05 |
甲烷寄存器 |
只读 |
0~65535 |
40007 |
00 06 |
硫化氢寄存器 |
只读 |
0~65535 |
40008 |
00 07 |
一氧化碳寄存器 |
只读 |
0~65535 |
40100 |
00 64 |
型号编码 |
读/写 |
0~65535 |
40101 |
00 65 |
测点总数 |
读/写 |
1~20 |
40102 |
00 66 |
设备地址 |
读/写 |
1~249 |
40103 |
00 67 |
波特率 |
读/写 |
0~6 |
40104 |
00 68 |
通讯模式 |
读/写 |
1~4 |
40105 |
00 69 |
协议类型 |
读/写 |
1~10 |
3 读取与修改设备地址
(1) 读取或查询设备地址
若不知道当前设备地址、且总线上只有一个设备时,可以通过命令FA 03 00 64 00 02 90 5F 查询设备地址。
设备地址 |
功能码 |
起始地址 |
数据长度 |
校验码 |
FA |
03 |
00 64 |
00 02 |
90 5F |
FA即250为通用地址,当不知道地址时可以用250这个地址来取得真实设备地址,00 64为设备型号的寄存器。
对于正确的查询命令,设备会响应,比如响应数据为:01 03 02 07 12 3A 79,其格式解析如下表所示:
设备地址 |
功能码 |
起始地址 |
型号编码 |
校验码 |
01 |
03 |
02 |
55 3C 00 01 |
3A 79 |
响应应数据中,第一个字节01表示当前设备的真实地址为,55 3C 转换为10进制为21820即表示当前设备主型号为21820,后面两字节00 01表示该设备有一个状态量。
(2)更改设备地址
比如当前设备地址为1,我们希望更改为02,则命令为:01 06 00 66 00 02 E8 14 。
设备地址 |
功能码 |
寄存器地址 |
目标地址 |
校验码 |
01 |
06 |
00 66 |
00 02 |
E8 14 |
更改成功后,设备会返回信息:02 06 00 66 00 02 E8 27 ,其格式解析如下表所示:
设备地址 |
功能码 |
寄存器地址 |
目标地址 |
校验码 |
01 |
06 |
00 66 |
00 02 |
E8 27 |
响应应数据中,修改成功后,第1个字节为新的设备地址,一般设备地址更改后,立即生效,此时用户需要同时将自己软件的查询命令做相应更改。
4 读取与修改波特率
(1) 读取波特率
设备默认出厂波特率为9600,若需要更改,可根据下表及相应通讯协议进行更改操作。比如读取当前设备的波特率ID,命令为:01 03 00 67 00 01 35 D5 ,其格式解析如下。
设备地址 |
功能码 |
起始地址 |
数据长度 |
校验码 |
01 |
03 |
00 67 |
00 01 |
35 D5 |
读取当前设备的波特率编码。波特率编码:1为2400; 2为4800;3为9600;4为19200;5为38400;6为115200。
对于正确的查询命令,设备会响应,比如响应数据为:01 03 02 00 03 F8 45,其格式解析如下表所示:
设备地址 |
功能码 |
数据长度 |
波特率编码 |
校验码 |
01 |
03 |
02 |
00 03 |
F8 45 |
根据波特率编码,03为9600,即当前设备的波特率为9600。
(2)更改波特率
比如将波特率从9600更改为38400,即将代码从3更改为5,则命令为:01 03 00 66 00 01 64 15 。
设备地址 |
功能码 |
寄存器地址 |
目标波特率 |
校验码 |
01 |
03 |
00 66 |
00 01 |
64 15 |
将波特率从9600更改为38400,即将代码从3更改为5。新的波特率会即时生效,此时设备会失去响应,查询设备的波特率需做相应修改。
4 读取校正值
(1) 读取校正值
当数据与参照标准有误差时,我们可以通过调整“校正值”来减小显示误差。校正差值可修改范围为正负1000,即值范围为0-1000或64535-65535。 比如当显示值偏小100时,我们通过增加100来校正,命令为:01 03 00 6B 00 01 F5 D6 。在命令中100即十六进制0x64;如果需要减小,则可以设置负值,比如-100,对应十六制制值为FF 9C,其计算方式为100-65535=65435,再转为十六进制则为0x FF 9C。设备校正值是从00 6B开始,我们以第1个参数为例进行说明,多个参数时校正值读取与修改方法相同。
设备地址 |
功能码 |
起始地址 |
数据长度 |
校验码 |
01 |
03 |
00 6B |
00 01 |
F5 D6 |
对于正确的查询命令,设备会响应,比如响应数据为: 01 03 02 00 64 B9 AF,其格式解析如下表所示:
设备地址 |
功能码 |
数据长度 |
校正值 |
校验码 |
01 |
03 |
02 |
00 64 |
B9 AF |
响应应数据中,第一个字节01表示当前设备的真实地址,00 6B为第一个状态量校正值寄存器。若设备有多个参数,其它参数操作方式与此相同,一般温度、湿度有此参数,光照一般没有此项。
(2)更改校正值
比如当前状态量偏小,我们希望将其真实值加1,当前值加100校正操作命令为:01 06 00 6B 00 64 F9 FD 。
设备地址 |
功能码 |
寄存器地址 |
目标地址 |
校验码 |
01 |
06 |
00 6B |
00 64 |
F9 FD |
操作成功后,设备会返回信息:01 06 00 6B 00 64 F9 FD ,成功更改后,参数立即生效。
实物照片
