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. 校准完成