×

1路编码器脉冲计数器或2路DI高速计数器,Modbus RTU模块 YL150

消耗积分:0 | 格式:pdf | 大小:0.72 MB | 2023-11-02

深圳市俞霖科技开发有限公司

  • 716内容
  • 12w+阅读
  • 10粉丝

产品特点:

● 编码器解码转换成标准Modbus RTU协议

● 可用作编码器计数器或者转速测量

● 支持编码器计数,可识别正反转

● 也可以设置作为2路独立DI高速计数器

● 计数值支持断电自动保存

●  DI输入支持PNP和NPN输入

● 继电器和机械开关输入时可以设置滤波时间

● 通过RS-485接口可以清零和设置计数值

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

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

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

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

 

典型应用:

● 编码器脉冲信号测量

● 流量计脉冲计数或流量测量

● 生产线产品计数

● 物流包裹数量计数

● 接近开关脉冲信号测量

● 编码器信号远传到工控机

● 水表或电表脉冲计数

● 智能工厂与工业物联网

产品概述:

YL150产品实现传感器和主机之间的信号采集,用来解码编码器信号。YL150系列产品可应用在 RS-485总线工业自动化控制系统,自动化机床,工业机器人,三坐标定位系统,位移测量,行程测量,角度测量,转速测量,流量测量,产品计数等等。

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

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

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

功能简介:

YL150远程I/O模块,可以用来测量1路编码器信号,也可以设置作为2路独立计数器或者DI状态测量。

  1. 信号输入

1路编码器信号输入或2路独立计数器,可接干接点和湿接点,通过命令设置输入类型。

  1. 通讯协议

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

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

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

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

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

  1. 抗干扰

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

产品选型:

485: 输出为RS-485接口

选型举例: 型号:YL150 - 485   表示输出为RS-485接口

YL150通用参数:

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

输入类型:  编码器AB信号输入,1通道(A0/B0)。

             低电平: 输入  < 1V

             高电平: 输入  3.5 ~ 30V

             频率范围0-50KHz。

             编码器计数范围 ‭- 2147483647‬ ~ ‭+2147483647‬

             DI计数器范围0 ~ ‭4294967295‬

输入电阻:  30KΩ

通    讯:   协议  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% (无凝露)                                     

外形尺寸:   106 mm  x  59mm  x  24mm

 

引脚定义:

YL150字符协议命令集:

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

地址代码为01

波特率9600 bps 

禁止校验和 

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

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

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

地址代码为00

波特率9600 bps

禁止校验和 

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

    字符协议命令由一系列字符组成,如首码、地址ID,变量、可选校验和字节和一个用以显示命令结束符(cr)。主机除了带通配符地址“**”的同步的命令之外,一次只指挥一个YL150模块。

命令格式:(Leading Code)(Addr)(Command)[data][checksum](cr)

(Leading code) 首码是命令中的第一个字母。所有命令都需要一个命令首码,如%,$,#,@,...等。  1- 字符 

(Addr)      模块的地址代码, 如果下面没有指定,取值范围从 00FF (十六进制)。            2- 字符 

(Command) 显示的是命令代码或变量值。                                                 变量长度 

[data]      一些输出命令需要的数据。                                                    变量长度 

[checksum] 括号中的Checksum(校验和)显示的是可选参数,只有在启用校验和时,才需要此选项。2-字符 

(cr)        识别用的一个控制代码符,(cr)作为回车结束符,它的值为0x0D。                  1-字符 

当启用校验和(checksum)时,就需要[Checksum]。它占2-字符。命令和应答都必须附加校验和特性。校验和用来检查所有输入命令,来帮助你发现主机到模块命令错误和模块到主机响应的错误。校验和字符放置在命令或响应字符之后,回车符之前。

计算方法:两个字符,十六进制数,为之前所发所有字符的ASCII码数值之和,然后与十六进制数0xFF相与所得。

应用举例:禁止校验和(checksum)

       用户命令    $002(cr)

       模块应答    !00020600 (cr)

 启用校验和(checksum)

用户命令    $002B6 (cr)

       模块应答    !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、必须用大写字母输入命令。

3、(cr)代表键盘上的回车符,不要直接写出来,应该是敲一下回车键(Enter键)。

1、设置编码器的工作模式

说    明:设置编码器工作模式,0 或1,出厂默认为0。工作模式修改后,必须重启模块才会生效。

工作模式0编码器AB信号输入

工作模式1:两路独立的高速计数器输入

注意:下面命令备注(工作模式0)的表示是仅在编码器工作模式为0时数据才有效。

备注(工作模式1)的表示是仅在编码器工作模式为1时数据才有效。

命令格式:$AA3B    设置编码器的工作模式。重启后生效。

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

应答格式:! AA(cr)     表示设置成功

参数说明:B      代表编码器的工作模式,值为 0:工作模式0;值为 1:工作模式1

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

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

说    明:设置编码器为工作模式1,两路高速计数器模式。

2、读取编码器的工作模式

说    明:读取编码器的工作模式。

命令格式:$AA4    读取编码器的工作模式。

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

应答格式:! B (cr)     代表8个编码器通道的工作模式,8个数,排列顺序为编码器7~编码器0, 

值为 0:工作模式0;值为 1:工作模式1

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

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

说    明:编码器为工作模式1 

3、读取开关状态命令

说    明:从模块中读回所有编码器输入通道开关量状态。

命令格式:#AA(cr)

参数说明:#     分界符。十六进制为23H

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

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

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

参数说明:>     分界符。十六进制为3EH

CC代表读取到的编码器输入开关状态,8个数,排列顺序为B0A0, 

值为 0:  输入低电平;值为 1: 输入高电平

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

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

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

说    明:模块输入开关状态是01 , 排列顺序为B0A0     

A0:高电平      B0:低电平     

4、读编码器计数器数据命令(工作模式0)

说    明:读取编码器计数器的数据。‘+’表示正转,‘-’表示反转。

命令格式:#AA2  

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

   表示读编码器计数器数据命令。

应答格式:!+AAAAAAAAAA (cr)     

应答格式:!+AAAAAAAAAA(cr)     

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

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

说    明:编码器的计数值为正转+12345678

5、读编码器输入频率命令(工作模式0)

说    明:读取编码器输入的频率。‘+’表示正转,‘-’表示反转。 

命令格式:#AA3    

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

  表示读编码器输入频率命令。

应答格式:!+AAAAAA.AA (cr)     

应答格式:! +AAAAAA.AA (cr)     

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

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

说    明:编码器的输入频率值为正转+1KHz。

6、读编码器输入转速命令(工作模式0)

说    明:读取编码器输入的转速。‘+’表示正转,‘-’表示反转。 

命令格式:#AA4    

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

   表示读编码器0~编码器7输入转速命令。

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

应答格式:!+AAAAA (cr)     

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

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

说    明:编码器的输入转速值为正转+1000转。

7、修改编码器计数器的数值命令(工作模式0)

说    明:修改编码器计数器的值,也可以设置为零重新计数。

命令格式:$AA1+AAAAAAAAAA   修改编码器的计数值。

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

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

应答格式:! AA(cr)     表示设置成功

应用举例1:  用户命令(字符格式)      $011+0  

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

说    明:设置编码器的计数值为0。

应用举例2:  用户命令(字符格式)      $011+3000   

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

说    明:设置编码器的计数值为+3000。

8、设置编码器的每转脉冲数(工作模式0)

说    明:设置编码器的每转脉冲数。根据接入的编码器参数来设定,出厂默认值为1000,设置正确的脉冲数后才可以读出编码器转速。

命令格式:$AA5AAAAA   设置编码器的每转脉冲数。

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

5    设置编码器的每转脉冲数命令。

AAAAA  代表脉冲数,如1000,800或者600等。

应答格式:! AA(cr)     表示设置成功

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

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

说    明:设置编码器的每转脉冲数为300。

9、读取编码器的每转脉冲数(工作模式0)

说    明:读取所有编码器的每转脉冲数。

命令格式:$AA6   读取编码器的每转脉冲数。

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

应答格式:! AAAAA (cr)     表示编码器的每转脉冲数。

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

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

说    明:编码器的每转脉冲数都是1000。

10、读计数器数据命令(工作模式1)

说    明:读取计数器的数据,可以读所有通道,也可以读单通道。 

命令格式:#AA5    

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

5     表示读通道A0~通道B0计数器数据命令。排列顺序A0,B0。

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

应答格式:!AAAAAAAAAA, AAAAAAAAAA (cr)     

命令格式:#AA5N  

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

  1.    表示读计数器数据命令。

N    表示读通道N计数器数据命令。N取值:01,对应A0~B0

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

应答格式:!AAAAAAAAAA(cr)     

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

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

说    明:所有通道的计数值为12345678。

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

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

说    明:通道B0的计数值为12345678。

11、读输入频率命令(工作模式1)

说    明:读取输入的频率,可以读所有通道,也可以读单通道。 

命令格式:#AA6    

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

   表示读通道A0~通道B0输入频率命令。

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

应答格式:!AAAAAA.AA,AAAAAA.AA (cr) 

命令格式:#AA6N   读通道N输入频率。

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

  1.   表示读输入频率命令。

N    表示读通道N输入频率命令。N取值:01,对应A0~B0

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

应答格式:! AAAAAA.AA (cr)     

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

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

说    明:所有通道的输入频率值为1KHz。

应用举例2:  用户命令(字符格式)      #0160(cr)   

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

说    明:通道A0的输入频率值为1KHz。

12、修改DI计数器的数值命令(工作模式1)

说    明:修改DI计数器的值,也可以设置为零重新计数。

命令格式:$AA2N+AAAAAAAAAA    修改计数器N的计数值,N为计数器代号,取值0或1,对应A0~B0, 设置N为‘M’时表示同时设置所有通道的计数值。

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

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

应答格式:! AA(cr)     表示设置成功

应用举例1:  用户命令(字符格式)      $0121+0   

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

说    明:设置通道B0的计数值为0。

应用举例2:  用户命令(字符格式)      $012M+0  

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

说    明:设置所有通道的计数值为0。

应用举例3:  用户命令(字符格式)      $012M+3000   

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

说    明:设置所有通道的计数值为+3000。

13、设置DI计数器的计数方式(工作模式1)

说    明:设置DI计数器是上升沿计数还是下降沿计数。出厂设置为00。默认是上升沿计数

设置在模块重启后生效。

命令格式:$AA7BB    设置DI计数器的计数方式。

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

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

应答格式:! AA(cr)     表示设置成功

参数说明: BB       代表通道状态,2个数,排列顺序为B0A0, 

值为 0:该通道上升沿计数;值为 1:该通道下降沿计数

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

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

说    明:设置B0~A0通道下降沿计数。

14、读取DI计数器的计数方式(工作模式1)

说    明:读取DI计数器是上升沿计数还是下降沿计数。

命令格式:$AA8(cr)     读取DI计数器的计数方式。

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

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

应答格式:! BB (cr)     表示DI计数器的计数方式。

参数说明:BB代表通道状态,排列顺序为B0A0, 

值为 0:该通道上升沿计数;值为 1:该通道下降沿计数

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

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

说    明: B1~A0通道下降沿计数。

15、读DI输入转速命令(工作模式1)

说    明:读取DI输入的转速,可以读所有DI,也可以读单路DI。‘ 

命令格式:#018    读DI0~DI7输入转速。

应答格式:!AAAAA,AAAAA (cr)      

命令格式:#018N   读DI通道N输入转速

应答格式:! AAAAA (cr)     

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

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

说    明:所有DI通道的输入转速值为1000转。

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

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

说    明:DI0的输入转速值为1000转。

16、设置DI的每转脉冲数(工作模式1)

说    明:设置DI的每转脉冲数。根据接入DI的设备参数来设定,出厂默认值为1000,设置正确的脉冲数后才可以读出DI转速。

命令格式:$01DWNAAAAA    设置DI通道N的每转脉冲数。N为计数器代号,取值0或1,对应A0~B0, AAAAA代表脉冲数,如1000,800或

者600等。

应答格式:! 01(cr)     表示设置成功

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

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

说    明:设置DI1的每转脉冲数为300。

17、读取DI的每转脉冲数(工作模式1)

说    明:读取所有DI通道的每转脉冲数。

命令格式:$01DR   读取所有DI的每转脉冲数,排列顺序A0~B0。

应答格式:! AAAAA, AAAAA    

表示DI0~DI1的每转脉冲数。

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

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

说    明:所有DI通道的每转脉冲数都是1000。

18、设置DI的滤波时间(工作模式1)

说    明:设置DI的滤波时间。单位mS,出厂默认是0。光电开关输入设置为0,机械开关或者继电器输入建议设置为20~100mS。设置重启后生效。

命令格式:$01LWNAAAAA    设置DI通道N的每转脉冲数。N为计数器代号,取值0或1,对应A0~B0, AAAAA代表滤波时间,如0,20或者50等。

应答格式:! 01(cr)     表示设置成功

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

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

说    明:设置DI1的滤波时间为20mS。

19、读取DI的滤波时间(工作模式1)

说    明:读取所有DI通道的滤波时间。

命令格式:$01LR   读取所有DI的滤波时间,排列顺序A0~B0。

应答格式:! AAAAA, AAAAA    表示DI0~DI1的滤波时间。

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

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

说    明:所有DI通道的滤波时间都是20mS。

20、设置计数值断电是否自动保存

说    明:设置计数值断电是否自动保存,出厂默认值为0(不自动保存,断电清零)。

命令格式:$01SW     

参数说明:S    设置计数值断电是否自动保存命令。

W    0: 不自动保存,断电清零; 1:断电自动保存DI计数值。

应答格式:! 01(cr)     表示设置成功

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

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

说    明:设置DI不保存计数值,断电后自动清零计数。

21、设置DI的上拉开关

说    明:设置DI的上拉开关,出厂默认值为0(DI关闭上拉功能)。

命令格式:$01QX     

参数说明:Q    设置DI和DO的上拉开关命令。

X    0: DI关闭上拉电压; 1:DI接通上拉电压。

应答格式:! 01(cr)     表示设置成功

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

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

说    明:设置DI接通上拉电压。DI是NPN输入时可以设置为接通DI上拉电压。

22、配置YL150模块命令

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

命令格式:%AANNTTCCFF(cr)

参数说明:%    分界符。

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

          NN   代表新的模块16进制地址,数值NN的范围从00到FF。

          TT   用16进制代表类型编码。 YL150产品必须设置为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位代表数据格式,校验和。注意从bits2 到bits5不用必须设置为零。 

Bit7

Bit 6

Bit 5

Bit 4

Bit 3

Bit2

Bit 1

Bit 0

 

 

          表3   数据格式,校验和代码

                  Bit7:保留位,必须设置为零                                   

                  Bit6:校验和状态,为0:禁止; 为1:允许

                  Bit5-bit2:不用,必须设置为零。

                  Bit1-bit0:数据格式位。 00:工程单位(Engineering Units)                                        

                                         10:16进制的补码(Twos complement) 

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

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

          ?AA(cr)  命令无效或非法操作,或在改变波特率或校验和前,没有安装配置跳线。

参数说明:!     分界符,表示命令有效。

          ?     分界符,表示命令无效。

          AA   代表输入模块地址

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

其他说明:假如你第一次配置模块,AA=00、 NN等于新的地址。假如重新配置模块改变地址、输入范围、数据格式,AA等于当前已配置的地址,NN等于当前的或新的地址。假如要重新配置模块改变波特率或校验和状态,则必须安装配置跳线,使模块进入缺省状态,此时模块地址为00H,即 AA=00H,NN等于当前的或新的地址。

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

应用举例:  用户命令    %0011000600(cr)

            模块应答    !11(cr)

说    明:%    分界符。

          00    表示你想配置的YL150模块原始地址为00H。

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

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

          06    表示波特率9600 baud。

00    表示数据格式为工程单位,禁止校验和。

23、读配置状态命令

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

命令格式:$AA2(cr)           

参数说明:$     分界符。   

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

          2     表示读配置状态命令   

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

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

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

参数说明:!     分界符。

          AA   代表输入模块地址。

          TT   代表类型编码。

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

          FF    见表3

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

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

应用举例:  用户命令    $302(cr)

            模块应答    !30000600(cr)

说    明:!     分界符。

          30    表示YL150模块地址为30H 。        

          00    表示输入类型代码。

          06    表示波特率9600 baud。

00    表示禁止校验和。

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

说    明:设置模块用以上字符命令设置的参数恢复为出厂设置,完成后模块自动重启。

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

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

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

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

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

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

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

Modbus RTU 通讯协议:

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

Modbus地址为01

波特率9600 bps 

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

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

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

支持Modbus RTU通讯协议,命令格式按照标准Modbus RTU通讯协议。

YL150的寄存器地址说明

支持功能码01,05和15的寄存器 

地址0X(PLC)

地址(PC,DCS)

数据内容

属性

数据说明

00001

0000

A0的计数方式

读/写

通道A0 ~ B0的计数方式

(默认值为0)

0为上升沿计数,

1为下降沿计数

设置在模块重启后生效。

正常不用修改,使用默认值即可。

00002

0001

B0的计数方式

读/写

 

 

 

 

 

00033

0032

A0输入的开关量

只读

编码器输入点的电平状态

0表示低电平输入,1表示高电平输入

00034

0033

B0输入的开关量

只读

支持功能码03,06和16的寄存器 

地址4X(PLC)

地址(PC,DCS)

数据内容

属性

数据说明

40001

0

编码器工作模式

读/写

编码器工作模式,整数, 0 或1,

出厂默认为0(修改后需重启才生效)

工作模式0:编码器AB信号输入

工作模式1:两路独立的计数器输入

下面寄存器备注(工作模式0)的表示是仅在编码器工作模式为0时数据才有效。备注(工作模式1)的表示是仅在编码器工作模式为1时数据才有效。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

40017~40018

16~17

编码器计数

读/写

编码器计数器(工作模式0)

数据为有符号的长整数,16进制格式,负数采用的是补码(two's complement),

正数(0x00000000~0x7FFFFFFF),

负数(0xFFFFFFFF~0x80000001),

计数器清零直接向对应寄存器写入0,

也可以根据需要写入其他值。

低16位在寄存器40017,

高16位在寄存器40018

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

40033~40034

32~33

通道A0计数

读/写

通道A0~B7计数器(工作模式1)

数据为无符号的长整数,16进制格式,(0x00000000~0xFFFFFFFF),

通道A0低16位在寄存器40033,

通道A0高16位在寄存器40034,

其他通道同样规律。

计数器清零直接向对应寄存器写入0,也可以根据需要写入其他值。

40035~40036

34~35

通道B0计数

读/写

 

 

 

 

 

 

 

 

 

 

 

 

地址4X(PLC)

地址(PC,DCS)

数据内容

属性

数据说明

40041

40

通道A0的脉冲数

读/写

通道A0~B0的脉冲数(工作模式1)

无符号整数(出厂默认值为60),根据输入信号的每转脉冲数来设定,设置后寄存器40109~40110就是对应通道的转速。

40042

41

通道B0的脉冲数

读/写

 

 

 

 

 

 

 

 

 

 

 

 

 

40068

0067

计数清零寄存器

无符号整数,默认为0,修改这个寄存器用于清零编码器计数器或通道计数器。修改后寄存器会自动恢复为0。

写入10:设置编码器计数值为0,

写入20:设置通道A0计数值为0,

写入21:设置通道B0计数值为0,

写入22:设置通道A0和B0计数值为0。

写入其他值无效。

 

 

 

 

 

40073

72

编码器0的脉冲数

读/写

编码器的脉冲数(工作模式0)

无符号整数(出厂默认值为1000),根据编码器每转脉冲数来设定,设置后寄存器40101就是对应通道的转速。

 

 

 

 

40081

80

计数值自动保存

读/写

0: 不自动保存,断电清零;

1:断电自动保存计数值。(默认值为1)

40082

81

DI的上拉开关

读/写

0:DI关闭上拉电压;(默认值为0)

1:DI接通上拉电压。

40089

88

参数恢复出厂设置

读/写

设置为FF00,则模块所有寄存器的参数恢复为出厂设置,完成后模块自动重启

40101

100

编码器的转速

只读

编码器的转速(工作模式0)

有符号整数,正负表示正反转。

转速是根据寄存器40073设定的脉冲数换算得到。

 

 

 

 

 

 

 

 

 

 

 

 

40109

108

通道A0的转速

只读

通道的转速(工作模式1)

无符号整数。

转速是根据寄存器40041~40042设定的脉冲数换算得到。

40110

109

通道B0的转速

只读

 

 

 

 

 

40129~40130

128~129

编码器的频率

只读

编码器的脉冲频率(工作模式0)

数据为32位浮点数

浮点数低16位在寄存器40129

浮点数高16位在寄存器40130

 

 

 

 

40145~40146

144~145

通道A0的频率

只读

通道的脉冲频率(工作模式1)

数据为32位浮点数

通道A0浮点数低16位在寄存器40145

通道A0浮点数高16位在寄存器40146

通道B0类似

40147~40148

146~147

通道B0的频率

只读

40181

180

通道A0的滤波时间

读/写

通道的滤波时间(工作模式1)

无符号整数。单位mS, 光电开关输入设置为0,机械开关或者继电器输入建议设置为20~100mS。设置重启后生效。

40182

181

通道B0的滤波时间

读/写

 

 

 

 

 

 

 

 

 

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 

40211

0210

模块名称

只读

高位:0x01  低位:0x50

表5   Modbus Rtu寄存器说明   

 

通讯举例1:假如模块地址为01,以16进制发送:010300100002C5CE ,即可取得寄存器的数据。

1

3

0

10

0

2

C5

CE

模块地址

读保持寄存器

寄存器地址高位

寄存器地址低位

寄存器数量高位

寄存器数量低位

CRC校验低位

CRC校验高位

假如模块回复:010304CA90FFFFC476即读到的数据为0xFFFFCA90,换成10进制为-13680,即表明现在编码器0的计数值为-13680。

1

3

4

CA

90

FF

FF

C4

76

模块地址

读保持寄存器

数据的字节数

数据1高位

数据1低位

数据2高位

数据2低位

CRC校验低位

CRC校验高位

通讯举例2:假如模块地址为01,以16进制发送:010300200002C5C1 ,即可取得寄存器的数据。

01

03

00

20

00

02

C5

C1

模块地址

读保持寄存器

寄存器地址高位

寄存器地址低位

寄存器数量高位

寄存器数量低位

CRC校验低位

CRC校验高位

假如模块回复:010304CA90FFFFC476即读到的数据为0xFFFFCA90,换成10进制为4294953616‬,即表明现在通道A0的计数值为4294953616。

1

3

0

20

0

2

C5

C1

模块地址

读保持寄存器

寄存器地址高位

寄存器地址低位

寄存器数量高位

寄存器数量低位

CRC校验低位

CRC校验高位

通讯举例3:假如模块地址为01,以16进制发送:01060043000AF819 ,即清零编码器0的计数值。

1

6

0

43

0

0A

F8

19

模块地址

写单个保持寄存器

寄存器地址高位

寄存器地址低位

数据高位

数据低位

CRC校验低位

CRC校验高位

假如模块回复:01060043000AF819即表示设置成功,编码器0的计数值修改为0。

1

6

0

43

0

0A

F8

19

模块地址

写单个保持寄存器

寄存器地址高位

寄存器地址低位

数据高位

数据低位

CRC校验低位

CRC校验高位

 

 

外形尺寸:(单位:mm)

保修:

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

版权:

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

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

商标:

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

 

 

 

 

 

                                                                        版本号:V1.0

                                                                        日期:2021年06月

 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'1路编码器脉冲计数器或2路DI高速计数器,Modbus RTU模块 YL150',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);