4-20mA转RS-485,Modbus数据采集模块

发布时间 2024-11-11 10:15:32

产品描述

4-20mA转RS-485,Modbus数据采集模块 YL121

产品特点

● 模拟信号采集,隔离转换 RS-485输出

● 采用12位AD转换器,测量精度优于0.1%

● 通过RS-485接口可以程控校准模块精度

● 信号输入 / 输出之间隔离耐压1000VDC

● 宽电源供电范围:8 ~ 32VDC

● 可靠性高,编程方便,易于应用

● 标准DIN35导轨安装,方便集中布线

● 用户可编程设置模块地址、波特率等

● 支持Modbus RTU 通讯协议,自动识别协议

● 工业阻燃外壳,RS485端口浪涌防护

●  AD转换速率可以编程设定

典型应用:

● 信号测量、监测和控制

●  RS-485远程I/O,数据采集

● 智能楼宇控制、安防工程等应用系统

●  RS-485总线工业自动化控制系统

● 工业现场信号隔离及长线传输

● 设备运行监测

● 传感器信号的测量  

● 工业现场数据的获取与记录

● 医疗、工控产品开发

●  4-20mA或0-5V信号采集

产品概述:

YL121产品实现传感器和主机之间的信号采集,用来检测模拟信号。YL121系列产品可应用在 RS-485总线工业自动化控制系统,4-20mA / 0-5V信号测量、监测以及工业现场信号隔离及长线传输等等。

产品包括电源隔离,信号隔离、线性化,A/D转换和RS-485串行通信。每个串口多可接255只 YL121系列模块,通讯方式采用ASCII码通讯协议或MODBUS RTU通讯协议,波特率可由代码设置,能与其他厂家的控制模块挂在同一RS-485总线上,便于计算机编程。

alt

YL121系列产品是基于单片机的智能监测和控制系统,所有的用户设定的校准值,地址,波特率,数据格式,校验和状态等配置信息都储存在非易失性存储器EEPROM里。

YL121系列产品按工业标准设计、制造,信号输入 / 输出之间隔离,可承受1000VDC隔离电压,抗干扰能力强,可靠性高。工作温度范围- 45℃~+85℃。

功能简介:

YL121 信号隔离采集模块,可以用来测量电压或电流信号。

模拟信号输入

12位采集精度,一路模拟信号输入。产品出厂前所有信号输入范围已全部校准。在使用时,用户也可以很方便的自行编程校准。具体电流或电压输入量程请看产品选型。

通讯协议

通讯接口: 1路标准的RS-485通讯接口。

通讯协议:支持两种协议,命令集定义的字符协议和MODBUS  RTU通讯协议。模块自动识别通讯协议,能实现与多种品牌的PLC、RTU或计算机监控系统进行网络通讯。

数据格式:10位。1位起始位,8位数据位,1位停止位。

通讯地址(0~255)和波特率(2400、4800、9600、19200、38400、57600 、115200bps)均可设定;通讯网络长距离可达1200米,通过双绞屏蔽电缆连接。

通讯接口高抗干扰设计,±15KV ESD保护,通信响应时间小于100mS。       

抗干扰

可根据需要设置校验和。模块内部有瞬态抑制二极管,可以有效抑制各种浪涌脉冲,保护模块,内部的数字滤波,也可以很好的抑制来自电网的工频干扰。

 

产品选型:

alt

YL121通用参数:

(typical @ +25℃,Vs为24VDC)

输入类型:  电流输入 / 电压输入

精    度:  0.1%

温度漂移:  ±50 ppm/℃ (±100 ppm/℃, 大)

输入电阻:  150Ω (4-20mA/0-20mA/0-±20mA电流输入)  

            300Ω (0-10mA/0-±10mA电流输入)

            1.5KΩ (0-1mA/0-±1mA电流输入)

            大于200K(5V/10V电压输入)

            大于1MΩ(2.5V以下电压输入)

带    宽:  -3 dB 10 Hz

转换速率:  10 Sps(出厂默认值,用户可发命令修改转换速率。)

               可以通过发送命令设置AD转换速率为2.5 SPS,5 SPS,10 SPS,20 SPS。(通道转换速率=AD转换速率/开启的通道数量)

              注:修改转换速率后请重新校准模块,否则测量的数据会有偏差。也可以在订货的时候注明转换速率,我们在产品出厂时按您要求的转换速率重新校准。

共模抑制(CMR): 120 dB(1kΩ Source Imbalance @ 50/60 Hz)

常模抑制(NMR): 60 dB (1kΩ Source Imbalance @ 50/60 Hz)

输入端保护: 过压保护,过流保护

通    讯:   协议  RS-485 标准字符协议 和 MODBUS RTU通讯协议

             波特率(2400、4800、9600、19200、38400、57600 、115200bps)可软件选择

地址(0~255)可软件选择

通讯响应时间:100 ms 大

工作电源:    +8 ~ 32VDC宽供电范围,内部有防反接和过压保护电路               

功率消耗:    小于1W

工作温度:    - 45 ~ +80℃          

工作湿度:   10 ~ 90% (无凝露)

存储温度:   - 45 ~ +80℃               

存储湿度:   10 ~ 95% (无凝露)                                     

隔离耐压:   输入 / 输出  之间:  1KVDC,1分钟,漏电流 1mA

             其中RS-485输出和电源共地。

耐冲击电压: 1KVAC, 1.2/50us(峰值)

外形尺寸:   79 mm  x  69.5mm  x  25mm

引脚定义

alt

alt

YL121字符协议命令集:

模块的出厂初始设置,如下所示:

地址代码为01

波特率9600 bps

禁止校验和

如果使用 RS-485网络,必须分配一个**无二的地址代码,地址代码取值为16进制数在00和FF之间,由于新模块的地址代码都是一样的,他们的地址将会和其他模块矛盾,所以当你组建系统时,你必须重新配置每一个YL121模块地址。可以在接好YL121模块电源线和RS485通讯线后,通过配置命令来修改YL121模块的地址。波特率,校验和状态也需要根据用户的要求而调整。而在修改波特率,校验和状态之前,必须让模块先进入缺省状态,否则无法修改。

让模块进入缺省状态的方法:

YL121模块都有一个特殊的标为INIT的管脚。将INIT管脚短路接到GND1管脚后,再接通电源,此时模块进入缺省状态。在这个状态时,模块的配置如下:

地址代码为00

波特率9600 bps

禁止校验和

这时,可以通过配置命令来修改YL121模块的波特率,校验和状态等参数。在不确定某个模块的具体配置时,也可以将INIT管脚短路接到GND1管脚,再接通电源,使模块进入缺省状态,再对模块进行重新配置。

字符协议命令由一系列字符组成,如首码、地址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)

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

参数说明:#     分界符。

          01   模块地址,取值范围 00~FF(十六进制)。出厂地址为01,转换成十六进制为每个字符的ASCII码。如地址01换成十六进制为30H和31H。         

应答格式:>(data)(cr)     命令有效。

          ?AA(cr)       命令无效或非法操作或通道被关闭。

参数说明:>     分界符。

          (data) 代表读回的通道N的数据。数据格式可以是工程单位,FSR的百分比,16进制补码,或者ohms。详细说明见命令集第3条。

          (cr)   结束符,上位机回车键(0DH)。

其他说明:假如语法错误或通讯错误或地址不存在,模块不响应。          

应用举例:  用户命令(字符格式)      #01

                    (十六进制格式)  23303130

            模块应答(字符格式)      >+18.000 (cr)

(十六进制格式):3E2B31382E3030300D

说    明:在地址01H模块上通道0的输入是(数据格式是工程单位):+18.000mA

 

2、配置YL121模块命令

说    明:对一个YL121模块设置地址,输入范围,波特率,校验和状态。配置信息储存在非易失性存储器EEPROM里。

命令格式:%AANNTTCCFF

参数说明:%    分界符。

AA   模块地址,取值范围 00~FF(十六进制)。出厂地址为01,转换成十六进制为每个字符的ASCII码。如地址01换成十六进制为30H和31H。

          NN   代表新的模块16进制地址,数值NN的范围从00到FF。转换成十六进制为每个字符的ASCII码。如地址18换成十六进制为31H和38H。

          TT   用16进制代表类型编码。 YL121产品必须设置为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    表示你想配置的YL121模块原始地址为01H。

          11    表示新的模块16进制地址为11H。

          00    类型代码,YL121产品必须设置为00。

          06    表示波特率9600 baud。

00    表示禁止校验和。

3、读配置状态命令

说    明: 对指定一个YL121模块读配置。

命令格式:$012           

参数说明:$     分界符。   

          01   模块地址,取值范围 00~FF(十六进制)。

          2     表示读配置状态命令   

          (cr)   结束符,上位机回车键,十六进制为0DH。

应答格式:!AATTCCFF(cr)    命令有效。

          ?AA(cr)            命令无效或非法操作。

参数说明:!     分界符。

          AA   代表输入模块地址。

          TT   代表类型编码。

          CC   代表波特率编码。见表2

          FF    见表3

          (cr)   结束符,上位机回车键,十六进制为0DH。

其他说明:假如格式错误或通讯错误或地址不存在,模块不响应。

应用举例:  用户命令    $012

            模块应答    !300F0600(cr)

说    明:!     分界符。

          301    表示YL121模块地址为01H 。        

          00    表示输入类型代码。

          06    表示波特率9600 baud。

00    表示禁止校验和。

4、修改模块量程命令

说    明: 修改模块显示的量程和数据格式。

命令格式:$AA0D (span)

参数说明:$   分界符。

AA   模块地址,取值范围 00~FF(十六进制)。出厂地址为01,转换成十六进制为每个字符的ASCII码。如地址01换成十六进制为30H和31H。 

0    设置量程命令

D    设置数据格式,数据有几个小数,取值范围0~4。例如3表示00.000,有3个小数。      

(span)   表示通道的满度,一个符号加5个数,没有小数点。比如100可以设置为+00100

应答格式:!AA(cr)  命令有效。

          ?AA(cr)  命令无效或非法操作。                            

应用举例1:  设置模块按实际的0-5000.0显示输出

用户命令    $0101+05000

            模块应答    !01(cr)

说    明:$    分界符。

          01   模块地址

0    设置量程命令  

   表示有1个小数。

          +05000   表示量程为5000

         设置完成后数据显示的格式:+1234.5

5、读模块量程命令

说    明:读模块的量程。

命令格式:$AA1         

应答格式:! AA1D (span) (cr)    命令有效。参数说明参考上一条命令

          ?AA(cr)            命令无效或非法操作。

应用举例:  用户命令    $011

            模块应答    !0113+00100 (cr)

说    明:!    分界符。

          01   模块地址

1    读取量程命令

   表示有3个小数。

          +00100    表示满度为100。   

6、设置模块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。

7、读模块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。

8、设置以上字符命令设置的所有参数恢复出厂设置。

说    明:设置模块用以上字符命令设置的参数恢复为出厂设置。

命令格式:$AA900   设置参数恢复出厂设置。

参数说明:AA   模块地址,取值范围 00~FF(十六进制)。出厂地址为01,转换成十六进制为每个字符的ASCII码。如地址01换成十六进制为30H和31H。

应答格式:! AA(cr)     表示设置成功,模块会自动重启。

应用举例:  用户命令(字符格式)      $01900   

            模块应答(字符格式)      ! 01(cr)

说    明:参数恢复出厂设置。

Modbus RTU 通讯协议:

模块的出厂初始设置,如下所示:

Modbus地址为01

波特率9600 bps

让模块进入缺省状态的方法:

YL121模块都有一个特殊的标为INIT的管脚。将INIT管脚短路接到GND1管脚后,再接通电源,此时模块进入缺省状态。在这个状态时,模块暂时恢复为默认的状态:地址为01,波特率为9600。在不确定某个模块的具体配置时,用户可以查询地址和波特率的寄存器40201-40202,得到模块的实际地址和波特率,也可以跟据需要修改地址和波特率。

支持Modbus RTU通讯协议功能码03(读保持寄存器)和功能码06(写单个寄存器),命令格式按照标准Modbus RTU通讯协议。

Modbus软件测试示例:

alt

支持功能码03和06的寄存器如下:

地址4X(PLC)

地址(PC,DCS)

数据内容

属性

数据说明

40001

0000

输入的模拟量

只读

有符号整数,数据为2的补码方式

0x0000-0x7FFF表示正数

0x8000-0xFFFF表示负数

比如量程为0-10V,0为0x0000,10V为0x7FFF

如果用不到负数,读取到大于0x7FFF的数据都换算成0即可。

40021

0020

4-20mA**

只读

无符号整数,4-20mA信号输入时读取。

4mA=0x0000,20mA=0x7FFF

40061

0060

用户量程换算后的数据

只读

有符号整数,

量程由40161寄存器定义

可以用于模拟量和实际数据的换算

40081

0080

4-20mA用户量程换算后的数据

只读

无符号整数,

量程由40181寄存器定义。

数据小于4mA时显示为0,数据为20mA时显示为设定值。中间按比例显示。

可以用于模拟量和实际数据的换算

40161

0160

通道0量程

读/写

整数,0x0001-0x7FFF,修改后40061寄存器的数据按这个量程换算

40181

0180

自定义4-20mA

量程

读/写

整数,0x0001-0x7FFF,修改后40081寄存器的数据按这个量程换算

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

 

 

通讯举例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,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

U3:0-75mV

U4:0-2.5V

U5:0-±5V

U6:0-±10V

U7:0-100mV

U8:用户自定义

0x7FFF

0x0000

0x8000

A4:4-20mA

寄存器40021~40028

4-20mA**寄存器的量程对应关系

0x7FFF

(20mA)

0x0000

(4mA)

0x0000

校准模块:

产品出厂时已经校准,用户无需校准即可直接使用。

使用过程中,你也可以运用产品的校准功能来重新校准模块。在校准时,模块需要输入合适的信号,不同的输入范围需要不同的输入信号。

为了提高校准精度,建议使用以下设备来校准:

1、一个输出稳定,噪声很低的直流电压/电流信号源

2、一个5位半或更高精度的电压/电流测量仪表监测输入信号的准确性

校准过程

 1. 按照模块的输入范围在需要校准的通道接上对应的输入信号。

  •  YL121模块零点在输入0时校准,满度在输入满度的100%时校准。例如4-20mA输入时,校准零点时输入0mA,校准满度时输入20mA.。0-5V输入时,校准零点时输入0V,校准满度时输入5V。

 2. 给YL121模块输入零点信号,通常为0mA或0V。

 3. 待信号稳定后,发送$01C0,模块就会进行零点校准。

 4. 给YL121模块输入满度的100%的电流或电压信号。

 5. 待信号稳定后,发送$01C1,模块就会进行满度校准。

 6. 校准完成

alt

保修:

本产品自售出之日起两年内,凡用户遵守贮存、运输及使用要求,而产品质量低于技术指标的,可以返厂免费维修。因违反操作规定和要求而造成损坏的,需交纳器件费用和维修费。

版权:

版权 2020深圳市俞霖科技开发有限公司。

如未经许可,不得复制、分发、翻译或传输本说明书的任何部分。本说明书如有修改和更新,恕不另行通知。

商标:

本说明书提及的其他商标和版权归各自的所有人所有。

 

 

                                                                        版本号:V1.0

                                                                         日期:2021年2月

 

 

 

深圳市俞霖科技开发有限公司
联系人 杨俊杰
联系电话 0755-83276769 
13711930515 
地址 深圳市福田区下梅林龙尾路嘉梅工业区1号楼515
邮箱 1073633362@qq.com
进入店铺 在线留言

了解更多

商家产品导航