0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

编码器脉冲计数采集模块的详细介绍

聂先生 来源:聂先生 作者:聂先生 2022-07-13 13:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

pYYBAGLOW8-AHq7gAALgpujXYOY224.png

poYBAGLOW9iAQCGpAAGEvdJlFDw877.png

poYBAGLOW-GAN6PQAADnw_HOkz0554.png

poYBAGLOW-mAE54jAAC0_c7meUw641.png

pYYBAGLOW_iAd4vxAAP1zpCI4og533.png

poYBAGLOW_iAduuLAADjmcZ1aEo851.png

poYBAGLOXAKAABKtAAKF1HdSOQw915.png

Modbus TCP协议

(1)、Modbus TCP数据帧:

在TCP/IP以太网上传输,支持Ethernet II和802.3两种帧格式。图3所示,Modbus TCP数据帧包含报文头、功能代码和数据3部分。

poYBAGLOXBqAJOJgAAA7R9PLfHQ147.png

图6:TCP/IP上的MODBUS的请求/响应

(2)、MBAP报文头描述:

MBAP报文头(MBAP、Modbus Application Protocol、Modbus应用协议)分4个域,共7个字节,如表1所示。

表1:MBAP报文头

长度(B) 描述
传输标识 2个字节 标志某个MODBUS询问/应答的传输
协议标志 2个字节 0=MODBUS协议
长度 2个字节 后续字节计数
单元标识符 1个字节 串行链路或其它总线上连接的远程从站的识别码

(3)、Modbus功能代码:

Modbus功能码分为3种类型,分别是:

(1)公共功能代码:已定义好的功能码,保证其唯一性,由Modbus.org认可;

(2)用户自定义功能代码有两组,分别为65~72和100~110,无需认可,但不保证代码使用的唯一性。如变为公共代码,需交RFC认可;

(3)保留的功能代码,由某些公司使用在某些传统设备的代码,不可作为公共用途。

在常用的公共功能代码中,IBF96支持部分的功能码,详见如下:

功能码 名称 说明
01 Read Coil Status 读取线圈状态 1表示高电平, 0表示低电平。
03 Read Holding Register 读保持寄存器 1表示高电平, 0表示低电平。
05 Write Single Coil 写单个线圈 1表示三极管导通, 0表示三极管断开。
06 Write Single Register 写单个寄存器 1表示三极管导通, 0表示三极管断开。
15 Write Multiple Coils 写多个线圈
16 Write Multiple Registers 写多个寄存器

(4)、支持的功能码描述

01(0x01)读线圈

在一个远程设备中,使用该功能码读取线圈的1 至2000 连续状态。请求PDU详细说明了起始地址,即指定的第一个线圈地址和线圈编号。从零开始寻址线圈。因此寻址线圈1-16 为0-15。

根据数据域的每个位(bit)将响应报文中的线圈分成为一个线圈。指示状态为1= ON和0= OFF。第一个数据作为字节的LSB(最低有效位),后面的线圈数据依次向高位排列,来组成8位一个的字节。如果返回的输出数量不是八的倍数,将用零填充最后数据字节中的剩余位(bit)(一直到字节的高位端)。字节数量域说明了数据的完整字节数

功能码01举例,读8通道DI数据,寄存器地址00033~00040:

请求 响应
字段名称 十六进制 字段名称 十六进制
MBAP报文头 传输标识 01 MBAP报文头 传输标识 01
00 00
协议标志 00 协议标志 00
00 00
长度 00 长度 00
06 04
单元标识符 01 单元标识符 01
功能码 01 功能码 01
起始地址Hi 00 字节数 01
起始地址Lo 20 输出状态DI7-DI0 00
输出数量Hi 00
输出数量Lo 08

03(0x03)读保持寄存器

在一个远程设备中,使用该功能码读取保持寄存器连续块的内容。请求PDU说明了起始寄存器地址和寄存器数量。从零开始寻址寄存器。因此,寻址寄存器1-16 为0-15。在响应报文中,每个寄存器有两字节,第一个字节为数据高位,第二个字节为数据低位。

功能码03举例,读8通道DI数据,寄存器地址40033:

请求 响应
字段名称 十六进制 字段名称 十六进制
MBAP报文头 传输标识 01 MBAP报文头 传输标识 01
00 00
协议标志 00 协议标志 00
00 00
长度 00 长度 00
06 05
单元标识符 01 单元标识符 01
功能码 03 功能码 03
起始地址Hi 00 字节数 02
起始地址Lo 20 寄存器值Hi(0x00) 00
寄存器编号Hi 00 寄存器值Lo(DI7-DI0) 00
寄存器编号Lo 01

05(0x05)写单个线圈

在一个远程设备上,使用该功能码写单个输出为ON 或OFF。请求PDU说明了强制的线圈地址。从零开始寻址线圈。因此,寻址线圈地址1为0。线圈值域的常量说明请求的ON/OFF状态。十六进制值0xFF00请求线圈为ON。十六进制值0x0000请求线圈为OFF。其它所有值均为非法的,并且对线圈不起作用。

正确的响应应答是和请求一样的。

功能码05举例,设置通道DO0为ON,也就是为1,寄存器地址00001:

请求 响应
字段名称 十六进制 字段名称 十六进制
MBAP报文头 传输标识 01 MBAP报文头 传输标识 01
00 00
协议标志 00 协议标志 00
00 00
长度 00 长度 00
06 06
单元标识符 01 单元标识符 01
功能码 05 功能码 05
输出地址Hi 00 输出地址Hi 00
输出地址Lo 00 输出地址Lo 00
输出值Hi FF 输出值Hi FF
输出值Lo 00 输出值Lo 00

06(0x06)写单个寄存器

在一个远程设备中,使用该功能码写单个保持寄存器。请求PDU说明了被写入寄存器的地址。从零开始寻址寄存器。因此,寻址寄存器地址1为0。

正确的响应应答是和请求一样的。

功能码06举例,设置通道DO0~DO7全部为1,16进制为0xFF,寄存器地址40001:

请求 响应
字段名称 十六进制 字段名称 十六进制
MBAP报文头 传输标识 01 MBAP报文头 传输标识 01
00 00
协议标志 00 协议标志 00
00 00
长度 00 长度 00
06 06
单元标识符 01 单元标识符 01
功能码 06 功能码 06
寄存器地址Hi 00 寄存器地址Hi 00
寄存器地址Lo 00 寄存器地址Lo 00
寄存器值Hi 00 寄存器值Hi 00
寄存器值Lo FF 寄存器值Lo FF

15(0x0F)写多个线圈

在一个远程设备上,使用该功能码写多个输出为ON 或OFF。请求PDU说明了强制的线圈地址。从零开始寻址线圈。因此,寻址线圈地址1为0。线圈值域的常量说明请求的ON/OFF状态。数据由16进制换算成二进制按位排列,位值为1请求线圈为ON,位值为0请求线圈为OFF。

功能码15举例,设置通道DO0,DO1为ON,也就是为00000011,寄存器地址00001:

请求 响应
字段名称 十六进制 字段名称 十六进制
MBAP报文头 传输标识 01 MBAP报文头 传输标识 01
00 00
协议标志 00 协议标志 00
00 00
长度 00 长度 00
06 06
单元标识符 01 单元标识符 01
功能码 0F 功能码 0F
开始地址Hi 00 开始地址Hi 00
开始地址Lo 00 开始地址Lo 00
线圈数量Hi 00 线圈数量Hi 00
线圈数量Lo 02 线圈数量Lo 02
字节数 01
输出值 02

16(0x10)写多个寄存器

在一个远程设备中,使用该功能码写多个保持寄存器。请求PDU说明了被写入寄存器的地址。从零开始寻址寄存器。因此,寻址寄存器地址1为0。功能码16举例,设置通道DO0和DO1的PWM值为5和6,寄存器地址40001:

请求 响应
字段名称 十六进制 字段名称 十六进制
MBAP报文头 传输标识 01 MBAP报文头 传输标识 01
00 00
协议标志 00 协议标志 00
00 00
长度 00 长度 00
06 06
单元标识符 01 单元标识符 01
功能码 10 功能码 10
开始寄存器地址Hi 00 开始寄存器地址Hi 00
开始寄存器地址Lo 00 开始寄存器地址Lo 00
寄存器数量Hi 00 寄存器数量Hi 00
寄存器数量Lo 02 寄存器数量Lo 02
字节数 04
寄存器值Hi 00
寄存器值Lo 05
寄存器值Hi 00
寄存器值Lo 06
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码器
    +关注

    关注

    45

    文章

    4011

    浏览量

    143364
  • 寄存器
    +关注

    关注

    31

    文章

    5619

    浏览量

    130422
  • MODBUS
    +关注

    关注

    28

    文章

    2517

    浏览量

    83780
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1433

    浏览量

    83772
  • 采集模块
    +关注

    关注

    0

    文章

    194

    浏览量

    10076
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    磁铁在编码器中的作用与应用

    编码器中,磁铁的作用不可小觑,常用的磁性材料主要是钕铁硼和铁氧体,今天这篇文章主要介绍下磁铁用于哪些编码器类型,以及其具体作用。磁铁在编码器中的作用(功能)是什么?在
    的头像 发表于 03-19 14:42 399次阅读
    磁铁在<b class='flag-5'>编码器</b>中的作用与应用

    高速脉冲计数采集模块怎么用?485通讯,监测频率、占比、周期

    高速脉冲计数采集模块的使用,核心是硬件接线→参数配置→数据读取与应用三步,关键在于信号匹配、模式选择与抗干扰处理。 一、硬件接线(基础) 1. 电源接线 - 模块供电:常见 DC 5V
    的头像 发表于 03-05 17:28 692次阅读

    脉冲/频率计数采集模块:高速脉冲+频率,支持断电保存

    脉冲/频率计数采集模块是工业里专门 “数脉冲、测频率” 的小硬件,相当于给传感、电机、流量计装
    的头像 发表于 03-04 16:06 391次阅读

    教你如何用编码器脉冲信号来控制变频的输出频率

    适用于需要同步运动或位置反馈的场景。以下将详细解析这一技术的实现原理、硬件连接方式和参数配置要点。 一、系统组成与工作原理 1. 核心设备 旋转编码器:选择增量式编码器(如1000PPR),其A/B相
    的头像 发表于 01-27 17:09 890次阅读
    教你如何用<b class='flag-5'>编码器</b>的<b class='flag-5'>脉冲</b>信号来控制变频<b class='flag-5'>器</b>的输出频率

    MY RIO采集编码器问题

    准备用MY RIO做实时控制,需要采集正交AB编码器的数据,有没有做过类似的项目大神指导一下。
    发表于 01-19 17:51

    RVMCU课堂「17」: 手把手教你玩转RVSTAR—正交编码器接口篇

    ​上期内容我们介绍了定时的PWM输出功能,本期内容来介绍一下定时的正交译码功能(编码器接口
    发表于 10-31 08:21

    增量式编码器:精准测量背后的分类智慧

    在工业自动化、机器人技术、数控机床等高精度领域,增量式编码器作为位移测量的核心传感,始终扮演着“数字量尺”的关键角色。其通过将机械旋转或直线运动转化为周期性电信号,再以脉冲计数实现位移量化,凭借
    的头像 发表于 10-22 08:44 814次阅读

    FPGA FOC驱动编码器模块介绍

    在多路FOC驱动板上,一共是支持了两种编码器和两种角度获取方式,分别是AS5047P和MT6835,SPI和ABZ。AS5047P的精度是14bit,MT6835的精度是21bit,它们的价格差不多
    的头像 发表于 09-06 09:50 5839次阅读
    FPGA FOC驱动<b class='flag-5'>编码器</b><b class='flag-5'>模块</b><b class='flag-5'>介绍</b>

    由倍讯科技研制的CCLinkIE转ModbusTCP网关,可达成与脉冲计数器的连接

    本研究案例展示三菱可编程逻辑控制(PLC)在工业自动化控制中的实际应用。应用时,将三菱PLC与脉冲计数器相连,实现控制与数据采集功能。采用CCLinkIE到ModbusTCP的网关转换方式,解决不
    的头像 发表于 08-26 16:58 757次阅读
    由倍讯科技研制的CCLinkIE转ModbusTCP网关,可达成与<b class='flag-5'>脉冲计数器</b>的连接

    绝对值光栅编码器:工业精密控制的“数字神经元”

    的“数字神经元”,正以毫米级甚至微米级的定位能力,重新定义精密制造的边界。 突破传统:从“相对计数”到“绝对定位”的革命 传统增量式编码器通过脉冲计数实现位置反馈,但存在致命缺陷:断电后需重新校准零点,抗干扰能力
    的头像 发表于 08-19 08:41 742次阅读
    绝对值光栅<b class='flag-5'>编码器</b>:工业精密控制的“数字神经元”

    绝对值编码器与增量式编码器相比有哪些优势?

    、是否重启,只要设备未发生物理位移,再次上电后可直接读取当前的准确位置,无需 “找零” 或重新校准。 增量式编码器:仅输出脉冲信号,通过计数脉冲数量计算位置变化,但无
    的头像 发表于 08-11 13:57 2072次阅读
    绝对值<b class='flag-5'>编码器</b>与增量式<b class='flag-5'>编码器</b>相比有哪些优势?

    脉冲增量式编码器:工业精密控制的“隐形指挥官”

    脉冲增量式编码器,工业自动化领域最基础的“时空刻度尺”。 一、从机械刻线到光电脉冲:工业测量的革命性突破 1952年,德国海德汉公司研制出首台光电式编码器,用玻璃码盘上的刻线替代了传
    的头像 发表于 08-05 08:47 1048次阅读

    增量型编码器与绝对值型编码器怎么选择?

    在选择增量型编码器与绝对值型编码器时,需要考虑多个因素,包括应用需求、成本、精度、可靠性以及环境适应性等。以下是对两种编码器详细比较及选择建议: 一、增量型
    的头像 发表于 07-10 10:34 1821次阅读

    经过光耦之后,脉冲计数功能为什么不能实现?

    设置PA0为普通定时,复用推挽输出,但是发现信号经过光耦之后高电平不到2V,不能进行脉冲计数,如果设置成中断输入,高电平是3.3V,请问这是啥原因?现有的电路能否实现脉冲计数功能?
    发表于 06-17 06:08

    人形机器人核心传感技术解析,从编码器到精准运动控制

    工作原理编码器可分为增量式和绝对式两类。   增量式编码器是将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,用脉冲的个数表示位移的
    的头像 发表于 05-21 02:04 8046次阅读