×

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

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

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

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

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

产品特点:

● 编码器解码转换成标准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总线上,便于计算机编程。

图2  YL150模块内部框图

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

引脚定义:

引脚

名 称

描   述

引脚

名 称

描   述

1

PW+

电源正端

5

INIT

初始状态设置

2

GND

电源负端

6

GND

数字信号输出地

3

DATA+

RS-485信号正端

7

A0

编码器0信号A输入端

4

DATA-

RS-485信号负端

8

B0

编码器0信号B输入端

表1  引脚定义

 

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进制代表波特率编码。  

 

 

 

 

表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)

 

 

可以安装在标准DIN35导轨上

保修:

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

版权:

版权 © 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);