8路4-20mA转RS-485/232,数据采集模块 IBF128
产品特点:
● 八路模拟信号采集,隔离转换 RS-485/232输出
● 采用12位AD转换器,测量精度优于0.1%
● 通过RS-485/232接口可以程控校准模块精度
● 信号输入 / 输出之间隔离耐压1000VDC
● 宽电源供电范围:8 ~ 32VDC
● 可靠性高,编程方便,易于应用
● 标准DIN35导轨安装,方便集中布线
● 用户可编程设置模块地址、波特率等
● 支持Modbus RTU 通讯协议,自动识别协议
● 工业阻燃外壳,RS485端口浪涌防护
● AD转换速率可以编程设定
典型应用:
● 信号测量、监测和控制
● RS-485远程I/O,数据采集
● 智能楼宇控制、安防工程等应用系统
● RS-232/485总线工业自动化控制系统 图1 IBF128 模块外观图
● 工业现场信号隔离及长线传输
● 设备运行监测
● 传感器信号的测量
● 工业现场数据的获取与记录
● 医疗、工控产品开发
● 4-20mA或0-5V信号采集
产品概述:
IBF128产品实现传感器和主机之间的信号采集,用来检测模拟信号。IBF128系列产品可应用在 RS-232/485总线工业自动化控制系统,4-20mA / 0-5V信号测量、监测以及工业现场信号隔离及长线传输等等。
产品包括电源隔离,信号隔离、线性化,A/D转换和RS-485串行通信。每个串口最多可接255只 IBF128系列模块,通讯方式采用ASCII码通讯协议或MODBUS RTU通讯协议,波特率可由代码设置,能与其他厂家的控制模块挂在同一RS-485总线上,便于计算机编程。
IBF128系列产品是基于单片机的智能监测和控制系统,所有的用户设定的校准值,地址,波特率,数据格式,校验和状态等配置信息都储存在非易失性存储器EEPROM里。
IBF128系列产品按工业标准设计、制造,信号输入 / 输出之间隔离,可承受1000VDC隔离电压,抗干扰能力强,可靠性高。工作温度范围- 45℃~+85℃。
功能简介:
IBF128 信号隔离采集模块,可以用来测量八路电压或电流信号。
12位采集精度,8路模拟信号输入。产品出厂前所有信号输入范围已全部校准。在使用时,用户也可以很方便的自行编程校准。具体电流或电压输入量程请看产品选型。
- 通讯协议
通讯接口: 1路标准的RS-485通讯接口或1路标准的RS-232通讯接口,订货选型时注明。
通讯协议:支持两种协议,命令集定义的字符协议和MODBUS RTU通讯协议。模块自动识别通讯协议,能实现与多种品牌的PLC、RTU或计算机监控系统进行网络通讯。
数据格式:10位。1位起始位,8位数据位,1位停止位。
通讯地址(0~255)和波特率(2400、4800、9600、19200、38400、57600 、115200bps)均可设定;通讯网络最长距离可达1200米,通过双绞屏蔽电缆连接。
通讯接口高抗干扰设计,±15KV ESD保护,通信响应时间小于100mS。
- 抗干扰
可根据需要设置校验和。模块内部有瞬态抑制二极管,可以有效抑制各种浪涌脉冲,保护模块,内部的数字滤波,也可以很好的抑制来自电网的工频干扰。
产品选型:
IBF128 - U(A)□ - □
输入电压或电流信号值 通讯接口
U1:0-5V A1:0-1mA 485: 输出为RS-485接口
U2:0-10V A2:0-10mA 232: 输出为RS-232接口
A3:0-20mA
U4:0-2.5V A4:4-20mA
U5:0-±5V A5:0-±1mA
U6:0-±10V A6:0-±10mA
A7:0-±20mA
U8:用户自定义 A8:用户自定义
选型举例1: 型号:IBF128-A4-485 表示8路4-20mA信号输入,输出为RS-485接口
选型举例2: 型号:IBF128-U1-232 表示8路0-5V信号输入,输出为RS-232接口
选型举例3: 型号:IBF128-U2-485 表示8路0-10V信号输入,输出为RS-485接口
IBF128字符协议命令集:
模块的出厂初始设置,如下所示:
地址代码为01
波特率9600 bps
禁止校验和
如果使用 RS-485网络,必须分配一个独一无二的地址代码,地址代码取值为16进制数在00和FF之间,由于新模块的地址代码都是一样的,他们的地址将会和其他模块矛盾,所以当你组建系统时,你必须重新配置每一个IBF128模块地址。可以在接好IBF128模块电源线和RS485通讯线后,通过配置命令来修改IBF128模块的地址。波特率,校验和状态也需要根据用户的要求而调整。而在修改波特率,校验和状态之前,必须让模块先进入缺省状态,否则无法修改。
让模块进入缺省状态的方法:
IBF128模块边上都有一个INIT的开关,在模块的侧面位置。将INIT开关拨到INIT位置,再接通电源,此时模块进入缺省状态。在这个状态时,模块的配置如下:
地址代码为00
波特率9600 bps
禁止校验和
这时,可以通过配置命令来修改IBF128模块的波特率,校验和状态等参数。在不确定某个模块的具体配置时,也可以将INIT开关拨到INIT位置,使模块进入缺省状态,再对模块进行重新配置。
注: 正常使用时请将INIT开关拨到NORMAL位置。
字符协议命令由一系列字符组成,如首码、地址ID,变量、可选校验和字节。
命令格式:(Leading Code)(Addr)(Command)[data][checksum]
(Leading code) 首码是命令中的第一个字母。所有命令都需要一个命令首码,如%,$,#,@,...等。 1- 字符
(Addr) 模块的地址代码, 如果下面没有指定,取值范围从 00~FF (十六进制)。 2- 字符
(Command) 显示的是命令代码或变量值。 变量长度
[data] 一些输出命令需要的数据。 变量长度
[checksum] 括号中的Checksum(校验和)显示的是可选参数,只有在启用校验和时,才需要此选项。 2- 字符
当启用校验和(checksum)时,就需要[Checksum]。它占2-字符。命令和应答都必须附加校验和特性。校验和用来检查所有输入命令,来帮助你发现主机到模块命令错误和模块到主机响应的错误。校验和字符放置在命令或响应字符之后,回车符之前。
计算方法:两个字符,十六进制数,为之前所发所有字符的ASCII码数值之和,然后与十六进制数0xFF相与所得。
应用举例:禁止校验和(checksum)
用户命令 $002
模块应答 !00020600 (cr)
启用校验和(checksum)
用户命令 $002B6
模块应答 !00020600 A9 (cr)
‘$’ = 0x24 ‘0’ = 0x30 ‘2’ = 0x32
B6=(0x24+0x30+0x30+0x32) AND 0xFF
‘!’ = 0x21 ‘0’ = 0x30 ‘2’ = 0x32 ‘6’ = 0x36
A9=(0x21+0x30+0x30+0x30+0x32+0x30+0x36+0x30+0x30) AND 0xFF
命令的应答 :
应答信息取决于各种各样的命令。应答也由几个字符组成,包括首代码,变量和结束标识符。应答信号的首代码有两种, ‘!’或 ‘>’表示有效的命令而‘?’ 则代表无效。通过检查应答信息,可以监测命令是否有效
注意:1、在一些情况下,许多命令用相同的命令格式。要确保你用的地址在一个命令中是正确的,假如你用错误的地址,而这个地址代表着另一个模块,那么命令会在另一个模块生效,因此产生错误。
2、必须用大写字母输入命令。
1、读测量数据命令
说 明:从模块中读回所有通道模拟输入端的测量数据。
命令格式:#01
参数说明:# 分界符。十六进制为23H
01 模块地址,取值范围 00~FF(十六进制)。出厂地址为01,转换成十六进制为每个字符的ASCII码。如地址01换成十六进制为30H和31H
应答格式:>(data)(cr) 命令有效。
?AA(cr) 命令无效或非法操作。
参数说明:> 分界符。十六进制为3EH
(data) 代表读回的数据。数据格式可以是工程单位,FSR的百分比,16进制补码。详细说明见命令集第2条。十六进制为每个字符的ASCII码。
(cr) 结束符,上位机回车键,十六进制为0DH。
其他说明:假如格式错误或通讯错误或地址不存在,模块不响应。
如果某个通道已经被关闭,那么读出的数据显示为空格字符。
如果你使用的串口通讯软件输入不了回车键字符,请切换到十六进制格式进行通讯。
应用举例: 用户命令(字符格式) #01
(十六进制格式) 233031
模块应答(字符格式) >+12.000+16.000+16.000+16.000+16.000+16.000+16.000+18.168 (cr)
(十六进制格式):3E2B31322E3030302B31362E3030302B31362E3030302B31362E303030
2B31362E3030302B31362E3030302B31362E3030302B31382E3136380D
说 明:在地址01H模块上输入是(数据格式是工程单位):
通道0:+12.000mA 通道1:+16.000mA 通道2:+16.000mA 通道3:+16.000mA
通道4:+16.000mA 通道5:+16.000mA 通道6:+16.000mA 通道7:+18.168mA
输入#01后点击发送命令。
在接收到的数据行就会有显示>+00.000+00.000+00.000+00.000+00.000+00.000+00.000+00.000
2、读通道N模拟输入模块数据命令
说 明:从模块中读回通道N的模拟输入数据。
命令格式:#010
参数说明:# 分界符。
01 模块地址,取值范围 00~FF(十六进制)。出厂地址为01,转换成十六进制为每个字符的ASCII码。如地址01换成十六进制为30H和31H。
0 通道代号 0~7,十六进制为30H~ 37H
应答格式:>(data)(cr) 命令有效。
?AA(cr) 命令无效或非法操作或通道被关闭。
参数说明:> 分界符。
(data) 代表读回的通道N的数据。数据格式可以是工程单位,FSR的百分比,16进制补码,或者ohms。详细说明见命令集第3条。
(cr) 结束符,上位机回车键(0DH)。
其他说明:假如语法错误或通讯错误或地址不存在,模块不响应。
应用举例: 用户命令(字符格式) #010
(十六进制格式) 23303130
模块应答(字符格式) >+18.000 (cr)
(十六进制格式):3E2B31382E3030300D
说 明:在地址01H模块上通道0的输入是(数据格式是工程单位):+18.000mA
3、配置IBF128模块命令
说 明:对一个IBF128模块设置地址,输入范围,波特率,校验和状态。配置信息储存在非易失性存储器EEPROM里。
命令格式:%AANNTTCCFF
参数说明:% 分界符。
AA 模块地址,取值范围 00~FF(十六进制)。出厂地址为01,转换成十六进制为每个字符的ASCII码。如地址01换成十六进制为30H和31H。
NN 代表新的模块16进制地址,数值NN的范围从00到FF。转换成十六进制为每个字符的ASCII码。如地址18换成十六进制为31H和38H。
TT 用16进制代表类型编码。 IBF128产品必须设置为00。
CC 用16进制代表波特率编码。
| 波特率代码 |
波特率 |
| 04 |
2400 baud |
| 05 |
4800 baud |
| 06 |
9600 baud |
| 07 |
19200 baud |
| 08 |
38400 baud |
| 09 |
57600 baud |
| 0A |
115200 baud |
表2 波特率代码
FF 用16进制的8位代表校验和。注意从bits0 到bits5不用必须设置为零。
| Bit7 |
Bit 6 |
Bit 5 |
Bit 4 |
Bit 3 |
Bit2 |
Bit 1 |
Bit 0 |
表3 校验和代码
Bit7:保留位,必须设置为零
Bit6:校验和状态,为0:禁止; 为1:允许
Bit5-bit0:不用,必须设置为零。
应答格式:!AA(cr) 命令有效。
?AA(cr) 命令无效或非法操作,或在改变波特率或校验和前,没有将INIT开关拨到INIT位置。
参数说明:! 分界符,表示命令有效。
? 分界符,表示命令无效。
AA 代表输入模块地址
(cr) 结束符,上位机回车键,十六进制为0DH。
其他说明:假如你第一次配置模块,AA=01H,NN等于新的地址。假如重新配置模块改变地址、输入范围。AA等于当前已配置的地址,NN等于当前的或新的地址。假如要重新配置模块改变波特率或校验和状态,则必须将INIT开关拨到INIT位置,使模块进入缺省状态,此时模块地址为00H,即 AA=00H,NN等于当前的或新的地址。
假如格式错误或通讯错误或地址不存在,模块不响应。
应用举例: 用户命令 %0111000600
模块应答 !11(cr)
说 明:% 分界符。
01 表示你想配置的IBF128模块原始地址为01H。
11 表示新的模块16进制地址为11H。
00 类型代码,IBF128产品必须设置为00。
06 表示波特率9600 baud。
00 表示禁止校验和。
4、读配置状态命令
说 明: 对指定一个IBF128模块读配置。
命令格式:$012
参数说明:$ 分界符。
01 模块地址,取值范围 00~FF(十六进制)。
2 表示读配置状态命令
(cr) 结束符,上位机回车键,十六进制为0DH。
应答格式:!AATTCCFF(cr) 命令有效。
?AA(cr) 命令无效或非法操作。
参数说明:! 分界符。
AA 代表输入模块地址。
TT 代表类型编码。
CC 代表波特率编码。见表2
FF 见表3
(cr) 结束符,上位机回车键,十六进制为0DH。
其他说明:假如格式错误或通讯错误或地址不存在,模块不响应。
应用举例: 用户命令 $012
模块应答 !300F0600(cr)
说 明:! 分界符。
301 表示IBF128模块地址为01H 。
00 表示输入类型代码。
06 表示波特率9600 baud。
00 表示禁止校验和。
5、设置IBF128模块量程命令
说 明:对一个IBF128模块小数点,量程,通道状态进行设置。配置信息储存在非易失性存储器EEPROM里。
命令格式:$AA0DNNNNNABCD
参数说明:$ 分界符。
AA 模块地址,取值范围 00~FF(十六进制)。出厂地址为01,转换成十六进制为每个字符的ASCII码。如地址01换成十六进制为30H和31H。
0 设置模拟量量程命令
D 数据小数点位置,取值范围1~5。表示小数点前面有几个数字,例如3表示000.00。
NNNNN 表示数据量程,取值范围从00000到99999(十进制)。例如10000表示量程为10000。
|
|
|
|
|
|
|
|
|
| 0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
| A |
B |
||||||
|
| |||||||
| IN7 |
IN6 |
IN5 |
IN4 |
IN3 |
IN2 |
IN1 |
IN0 |
| Bit7 |
Bit 6 |
Bit 5 |
Bit 4 |
Bit 3 |
Bit2 |
Bit 1 |
Bit 0 |
| C |
D |
||||||
ABCD 四个16进制数,
第一个数和第二个数都为0
第三个数代表7~4通道
第四个数代表3~0通道
位值为 0:禁止通道
位值为 1:启用通道
应答格式:!AA(cr) 命令有效。
?AA(cr) 命令无效或非法操作。
应用举例: 用户命令 $01022000000FF
模块应答 !01(cr)
说 明:$ 分界符。
01 模块地址
02 表示小数点前有2个数。
20000 表示量程为20000。
00FF 表示所以通道都打开。
6、读量程命令
说 明: 对IBF128模块读量程。
命令格式:$AA1
应答格式:!AAFDNNNNNABCD (cr) 命令有效。
?AA(cr) 命令无效或非法操作。
参数说明:$ 分界符。
AA 模块地址,取值范围 00~FF(十六进制)。出厂地址为01,转换成十六进制为每个字符的ASCII码。如地址01换成十六进制为30H和31H。
1 读模拟量量程命令
D 数据小数点位置,取值范围 1~5。表示小数点前面有几个数字,例如3表示000.00。
NNNNN 表示数据量程,取值范围从00000到99999(十进制)。例如10000表示量程为10000。
|
|
|
|
|
|
|
|
|
| 0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
| A |
B |
||||||
|
| |||||||
| IN7 |
IN6 |
IN5 |
IN4 |
IN3 |
IN2 |
IN1 |
IN0 |
| Bit7 |
Bit 6 |
Bit 5 |
Bit 4 |
Bit 3 |
Bit2 |
Bit 1 |
Bit 0 |
| C |
D |
||||||
ABCD 四个16进制数,
第一个数和第二个数都为0
第三个数代表7~4通道
第四个数代表3~0通道
位值为 0:禁止通道
位值为 1:启用通道
(cr) 结束符,上位机回车键,十六进制为0DH。
其他说明:假如格式错误或通讯错误,模块不响应。
应用举例: 用户命令 $011
模块应答 !01015000000FF (cr)
说 明:! 分界符。
01 模块地址
01 表示小数点前有1个数。
50000 表示量程为50000。
00FF 表示所有通道都打开。
7、设置模块AD转换速率
说明:设置模块的AD转换速率。其中,通道转换速率=AD转换速率/开启的通道数量。采样速率越慢,采集的数据就越准确。用户可根据需要自行调节。出厂默认的转换速率是10SPS。
注:修改转换速率后请重新校准模块,否则测量的数据会有偏差。也可以在订货的时候注明转换速率,我们在产品出厂时按您要求的转换速率重新校准。
命令格式:$AA3R
参数说明:$ 分界符。
AA 模块地址,取值范围 00~FF(十六进制)。
3 表示设置转换速率命令
R 转换速率代号,可为0~3
| 代号R |
0 |
1 |
2 |
3 |
|
|
|
|
|
|
| 转换速率 |
2.5 SPS |
5 SPS |
10 SPS |
20 SPS |
|
|
|
|
|
|
应答格式:!AA(cr) 命令有效。
?AA(cr) 命令无效或非法操作
参数说明:! 分界符,表示命令有效。
? 分界符,表示命令无效。
AA 代表输入模块地址。
(cr) 结束符,上位机回车键,十六进制为0DH。
其他说明:假如格式错误或通讯错误或地址不存在,模块不响应。
应用举例1: 用户命令 $0032
模块应答 !00 (cr)
说 明: 设置AD转换速率为10SPS。
应用举例2: 用户命令 $0033
模块应答 !00 (cr)
说 明:设置AD转换速率为20SPS。
8、读模块AD转换速率
说明:读模块的AD转换速率。其中,通道转换速率=AD转换速率/开启的通道数量。采样速率越慢,采集的数据就越准确。
命令格式:$AA4
参数说明:$ 分界符。
AA 模块地址,取值范围 00~FF(十六进制)。
4 表示读转换速率命令
响应语法:!AAR(cr) 命令有效。
?AA(cr) 命令无效或非法操作
参数说明:! 分界符,表示命令有效。
? 分界符,表示命令无效。
AA 代表输入模块地址。
R 转换速率代号,可为0~3
| 代号R |
0 |
1 |
2 |
3 |
|
|
|
|
|
|
| 转换速率 |
2.5 SPS |
5 SPS |
10 SPS |
20 SPS |
|
|
|
|
|
|
(cr) 结束符,上位机回车键(0DH)。
其他说明:假如语法错误或通讯错误或地址不存在,模块不响应。
应用举例1: 用户命令 $004
模块应答 !002 (cr)
说 明:当前AD转换速率为10SPS。
应用举例2: 用户命令 $004
模块应答 !003 (cr)
说 明:当前AD转换速率为20SPS。
9、设置以上字符命令设置的所有参数恢复出厂设置。
说 明:设置模块用以上字符命令设置的参数恢复为出厂设置。
命令格式:$AA900 设置参数恢复出厂设置。
参数说明:AA 模块地址,取值范围 00~FF(十六进制)。出厂地址为01,转换成十六进制为每个字符的ASCII码。如地址01换成十六进制为30H和31H。
应答格式:! AA(cr) 表示设置成功,模块会自动重启。
应用举例: 用户命令(字符格式) $01900
模块应答(字符格式) ! 01(cr)
说 明:参数恢复出厂设置。
Modbus RTU 通讯协议:
模块的出厂初始设置,如下所示:
Modbus地址为01
波特率9600 bps
让模块进入缺省状态的方法:
IBF128模块边上都有一个INIT的开关,在模块的侧面位置。将INIT开关拨到INIT位置,再接通电源,此时模块进入缺省状态。在这个状态时,模块暂时恢复为默认的状态:地址为01,波特率为9600。在不确定某个模块的具体配置时,用户可以查询地址和波特率的寄存器40201-40202,得到模块的实际地址和波特率,也可以跟据需要修改地址和波特率。
注: 正常使用时请将INIT开关拨到NORMAL位置。
支持Modbus RTU通讯协议功能码03(读保持寄存器)和功能码06(写单个寄存器),命令格式按照标准Modbus RTU通讯协议。
支持功能码03和06的寄存器如下:
| 地址4X(PLC) |
地址(PC,DCS) |
数据内容 |
属性 |
数据说明 |
| 40001 |
0000 |
IN0输入的模拟量 |
只读 |
有符号整数, 通道IN0~IN7数据, 数据为2的补码方式 0x0000-0x7FFF表示正数 0x8000-0xFFFF表示负数 如果用不到负数,读取到大于0x7FFF的数据都换算成0即可。 |
| 40002 |
0001 |
IN1输入的模拟量 |
只读 |
|
| 40003 |
0002 |
IN2输入的模拟量 |
只读 |
|
| 40004 |
0003 |
IN3输入的模拟量 |
只读 |
|
| 40005 |
0004 |
IN4输入的模拟量 |
只读 |
|
| 40006 |
0005 |
IN5输入的模拟量 |
只读 |
|
| 40007 |
0006 |
IN6输入的模拟量 |
只读 |
|
| 40008 |
0007 |
IN7输入的模拟量 |
只读 |
|
| 40021 |
0020 |
4-20mA专用IN0 |
只读 |
无符号整数, 通道IN0~IN7数据, 4mA=0x0000,20mA=0x7FFF |
| 40022 |
0021 |
4-20mA专用IN1 |
只读 |
|
| 40023 |
0022 |
4-20mA专用IN2 |
只读 |
|
| 40024 |
0023 |
4-20mA专用IN3 |
只读 |
|
| 40025 |
0024 |
4-20mA专用IN4 |
只读 |
|
| 40026 |
0025 |
4-20mA专用IN5 |
只读 |
|
| 40027 |
0026 |
4-20mA专用IN6 |
只读 |
|
| 40028 |
0027 |
4-20mA专用IN7 |
只读 |
|
|
|
|
|
|
|
| 40061 |
0060 |
IN0输入的模拟量 |
只读 |
有符号整数, 通道IN0~IN7数据, 量程由40161~40168寄存器定义 可以用于模拟量和实际数据的换算 |
| 40062 |
0061 |
IN1输入的模拟量 |
只读 |
|
| 40063 |
0062 |
IN2输入的模拟量 |
只读 |
|
| 40064 |
0063 |
IN3输入的模拟量 |
只读 |
|
| 40065 |
0064 |
IN4输入的模拟量 |
只读 |
|
| 40066 |
0065 |
IN5输入的模拟量 |
只读 |
|
| 40067 |
0066 |
IN6输入的模拟量 |
只读 |
|
| 40068 |
0067 |
IN7输入的模拟量 |
只读 |
|
| 40081 |
0080 |
IN0自定义4-20mA |
只读 |
无符号整数,通道IN0~IN7数据, 量程由40181~40188寄存器定义。 数据小于4mA时显示为0,数据为20mA时显示为设定值。中间按比例显示。 可以用于模拟量和实际数据的换算 |
| 40082 |
0081 |
IN1自定义4-20mA |
只读 |
|
| 40083 |
0082 |
IN2自定义4-20mA |
只读 |
|
| 40084 |
0083 |
IN3自定义4-20mA |
只读 |
|
| 40085 |
0084 |
IN4自定义4-20mA |
只读 |
|
| 40086 |
0085 |
IN5自定义4-20mA |
只读 |
|
| 40087 |
0086 |
IN6自定义4-20mA |
只读 |
|
| 40088 |
0087 |
IN7自定义4-20mA |
只读 |
|
|
|
|
|
|
|
| 40101 |
0100 |
通道0校准 |
读/写 |
产品出厂时已经校准,用户无需校准即可直接使用,如果确实需要重新校准,请查看校准章节,按步骤执行。 |
| 40102 |
0101 |
通道1校准 |
读/写 |
|
| 40103 |
0102 |
通道2校准 |
读/写 |
|
| 40104 |
0103 |
通道3校准 |
读/写 |
|
| 40105 |
0104 |
通道4校准 |
读/写 |
|
| 40106 |
0105 |
通道5校准 |
读/写 |
|
| 40107 |
0106 |
通道6校准 |
读/写 |
|
| 40108 |
0107 |
通道7校准 |
读/写 |
|
| 地址4X(PLC) |
地址(PC,DCS) |
数据内容 |
属性 |
数据说明 |
| 40160 |
0159 |
通道0 ~ 7量程 |
写 |
整数,0x0001-0x7FFF,如果所有通道的量程是一样的,可以设置此寄存器,设置完成后会一次性修改40161 ~ 40168寄存器为当前寄存器同样的值。 |
| 40161 |
0160 |
通道0量程 |
读/写 |
整数,0x0001-0x7FFF,修改后40061~40068寄存器的数据按这个量程换算 |
| 40162 |
0161 |
通道1量程 |
读/写 |
|
| 40163 |
0162 |
通道2量程 |
读/写 |
|
| 40164 |
0163 |
通道3量程 |
读/写 |
|
| 40165 |
0164 |
通道4量程 |
读/写 |
|
| 40166 |
0165 |
通道5量程 |
读/写 |
|
| 40167 |
0166 |
通道6量程 |
读/写 |
|
| 40168 |
0167 |
通道7量程 |
读/写 |
|
|
|
|
|
|
|
| 40180 |
0179 |
自定义4-20mA 通道0 ~ 7量程 |
写 |
整数,0x0001-0x7FFF,如果所有通道的量程是一样的,可以设置此寄存器,设置完成后会一次性修改40181 ~ 40187寄存器为当前寄存器同样的值。 |
| 40181 ~ 40188 |
0180 ~ 0187 |
自定义4-20mA 通道0 ~ 7量程 |
读/写 |
整数,0x0001-0x7FFF,修改后40081~40088寄存器的数据按这个量程换算 |
|
|
|
|
|
|
| 40200 |
0199 |
参数恢复出厂设置 |
读/写 |
设置为FF00,则模块所有寄存器的参数恢复为出厂设置,完成后模块自动重启 |
| 40201 |
0200 |
模块地址 |
读/写 |
整数,重启后生效,范围0x0000-0x00FF |
| 40202 |
0201 |
波特率 |
读/写 |
整数,重启后生效,范围0x0004-0x000A 0x0004 = 2400 bps,0x0005 = 4800 bps 0x0006 = 9600 bps,0x0007 = 19200 bps 0x0008 = 38400 bps,0x0009 = 57600 bps 0x000A = 115200bps |
|
|
|
|
|
|
| 40204 |
0203 |
转换速率 |
读/写 |
整数,范围0x0000-0x0003, 出厂默认为2,修改后请重新校准模块。 0x0000 = 2.5 SPS,0x0001 = 5 SPS, 0x0002 = 10 SPS, 0x0003 = 20 SPS |
| 40211 |
0210 |
模块名称 |
只读 |
高位:0x01 低位:0x28 |
| 40221 |
0220 |
通道状态 |
读/写 |
高位:0x00低位:通道状态 (0xFF) |
通讯举例1:假如模块地址为01,以16进制发送:010300000001840A ,即可取得寄存器40001的数据。
| 01 |
03 |
00 |
00 |
00 |
01 |
84 |
0A |
| 模块地址 |
读保持寄存器 |
寄存器地址高位 |
寄存器地址低位 |
寄存器数量高位 |
寄存器数量低位 |
CRC校验低位 |
CRC校验高位 |
假如模块回复:010302199973BE即读到的数据为0x1999,假如量程为A4:4-20mA或者A3:0-20mA,
换算0x1999*20mA/0x7FFF= 4mA。即表明现在输入的电流为4mA。
| 01 |
03 |
02 |
19 |
99 |
73 |
BE |
| 模块地址 |
读保持寄存器 |
数据的字节数 |
数据高位 |
数据低位 |
CRC校验低位 |
CRC校验高位 |
通讯举例2:量程为A4: 4-20mA时,也可以读取4-20mA专用寄存器的数据,寄存器地址40021~40022,4mA对应0x0000,20mA对应0x7FFF。举例如下
假如模块地址为01,以16进制发送:010300140001C401 ,即可取得寄存器40021的数据。
| 01 |
03 |
00 |
14 |
00 |
01 |
C4 |
01 |
| 模块地址 |
读保持寄存器 |
寄存器地址高位 |
寄存器地址低位 |
寄存器数量高位 |
寄存器数量低位 |
CRC校验低位 |
CRC校验高位 |
假如模块回复:010302199973BE即读到的数据为0x1999,量程为4-20mA,换算0x1999*16mA/0x7FFF= 3.2mA,再加上零点的4mA,即表明现在输入的电流为7.2mA。
| 01 |
03 |
02 |
19 |
99 |
73 |
BE |
| 模块地址 |
读保持寄存器 |
数据的字节数 |
数据高位 |
数据低位 |
CRC校验低位 |
CRC校验高位 |
MODBUS协议 量程与数据高16位的对应关系
| 输入范围 |
正满量程 |
零 |
负满量程 |
| A1:0-1mA A2:0-10mA A3:0-20mA A4:4-20mA A5:0-±1mA A6:0-±10mA A7:0-±20mA A8:用户自定义 U1:0-5V U2:0-10V U4:0-2.5V U5:0-±5V U6:0-±10V U8:用户自定义 |
0x7FFF |
0x0000 |
0x8000 |
| A4:4-20mA 寄存器40021~40028 4-20mA专用寄存器的量程对应关系 |
0x7FFF (20mA) |
0x0000 (4mA) |
0x0000 |
校准模块:
产品出厂时已经校准,用户无需校准即可直接使用。
使用过程中,你也可以运用产品的校准功能来重新校准模块。在校准时,模块需要输入合适的信号,不同的输入范围需要不同的输入信号。
为了提高校准精度,建议使用以下设备来校准:
1、一个输出稳定,噪声很低的直流电压/电流信号源
2、一个5位半或更高精度的电压/电流测量仪表监测输入信号的准确性
校准过程
- 按照模块的输入范围在需要校准的通道接上对应的输入信号。
- 其中IBF128模块零点在输入0时校准,满度在输入满度的100%时校准。例如4-20mA输入时,校准零点时 输入0mA,校准满度时输入20mA.。0-5V输入时,校准零点时输入0V,校准满度时输入5V。
- 给IBF128模块需要校准的通道输入零点信号,通常为0mA或0V。
- 待信号稳定后,Modbus协议修改寄存器40101(通道0)为0xFF00,模块就会进行零点校准。(校准其他 通道请修改对应的通道寄存器数据为0xFF00)。
- 给IBF128模块需要校准的通道输入满度的100%的电流或电压信号。
- 待信号稳定后,Modbus协议修改寄存器40101(通道0)为0xFFFF,模块就会进行满度校准。(校准其他 通道请修改对应的通道寄存器数据为0xFFFF)。
6. 校准完成