SM8700B采用标准RS485总线 MODBUS-RTU协议,方便接入PLC,DCS等各种仪表或系统,用于监测温度等状态量。内部使用了较高精度的传感内核及相关器件,确保产品具有较高的可靠性与卓越的长期稳定性, 可定制RS232、RS485、CAN、4-20mA、DC0~5V/10V、ZIGBEE、Lora、WIFI、GPRS等多种输出方式。
技术参数
技术参数 | 参数值 |
品牌 | 搜博 |
温度测量范围 | 0℃~+300℃(可选其它量程) |
温度测量精度 | ±1 或 %1(取最大值±3℃) |
重复测量精度 | ±0.5 或 %0.5(取最大值±2℃) |
光学分辨率 | 20:1 |
光谱范围 | 18-14um |
响应时间 | 100ms |
发射率 | 0.96 |
通讯接口 | RS485 |
默认波特率 | 9600 8 n 1 |
供电电源 | DC6~24V 1A |
外形尺寸 | Φ24mm×80mm |
产品接线
任何错误接线均有可能对产品造成不可逆的损坏。请在断电的情况下认真按如下方式接线,接好线确认无误后再通电使用。部分产品无引线,线芯颜色仅供参考。
编号 | 引线颜色 | 标号 | 说明 |
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 01 84 0A 。
设备地址 | 功能码 | 起始地址 | 数据长度 | 校验码 |
01 | 03 | 00 00 | 00 01 | 84 0A |
对于正确的问询帧,设备会响应数据:01 03 02 00 79 79 A6 ,响应格式解析如下:
设备地址 | 功能码 | 数据长度 | 数据1 | 校验码 |
01 | 03 | 02 | 00 79 | 79 A6 |
数据说明:命令中数据为十六进制,以数据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 |
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 ,成功更改后,参数立即生效。