ModBus TCP/IP协议

因在工作中遇到以前的代码读取聚英PLC设备开关状态失败问题,所以就好好研究了一下ModBus协议,在此记录一下ModBus TCP/IP协议

协议的作用

  • 规定与PLC交互的指令(数据帧)
  • 数据帧包括两部分:数据帧=报文头(MBAP)+帧结构(PDU),下面主要介绍报文头和帧结构的取值及作用

数据帧

报文头(MBAP)

内容解释长度
事务处理标识可以理解为报文序列号,一般每次通信之后就要加1以区别不同的通信数据报文2byte
协议标识符00 00表示ModbusTCP协议2byte
长度后面数据字节长度(单元标识符字节长度+功能码字节长度+数据域字节长度)2byte
单元标识符可以理解为设备地址1byte
功能码功能标识1byte
数据域看具体功能拼接参数不定
  • 事务处理标识:单线程操作此值可以为常量,多线程操作需要根据标识匹配请求。请求和响应该标识一样。
  • 协议标识符:0000表示ModbusTCP协议
  • 长度:单元标识符字节长度+功能码字节长度+数据域字节长度
  • 单元标识符:软件测试取值01
  • 功能码:本人实际测试了0x01,0x02,0x03,0x05
    • 0x01 读线圈
    • 0x05 写单个线圈
    • 0x0F 写多个线圈
    • 0x02 读离散量输入
    • 0x04 读输入寄存器
    • 0x03 读保持寄存器
    • 0x06 写单个保持寄存器
    • 0x10 写多个保持寄存器

帧结构(PDU)

  • 读取线圈的帧结构:两个字节的起始地址+两个字节读取的个数;eg:读取从0开始的10个线圈状态的指令:0000 0000 0006 01 01 0000 000A
  • 写单个线圈的帧结构:两个字节的地址+两个字节目标状态;eg:打开地址0线圈的指令:0000 0000 0006 01 05 0000 FF00
  • 读取离散输入的帧结构:两个字节的地址+两个字节读取的个数;eg:读取从0开始的10个离散输入状态的指令:0000 0000 0006 01 02 0000 000A
  • 读取保持寄存器的帧结构:两个字节的地址+两个字节读取的个数;eg:读取从0开始的10个保持寄存器状态的指令:0000 0000 0006 01 03 0001 000A

ModBus 协议测试软件ModBus Poll使用说明参考:https://blog.csdn.net/dhbfjh/article/details/119002843

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Modbus TCP/IP是一种应用在网络通信中的协议规范。它基于Modbus协议,通过TCP/IP协议栈来进行通信。 Modbus TCP/IP允许在以太网上实现远程设备和主机的通信。它适用于各种工业自动化领域,如监控系统、数据采集、过程控制等。该协议使用常见的TCP/IP网络基础架构,如以太网,以及常见的网络硬件设备,如路由器和交换机。 Modbus TCP/IP使用了客户端/服务器结构。客户端通过TCP连接发送请求,而服务器端则通过TCP连接返回响应。请求和响应都是基于Modbus协议的格式进行封装。 Modbus TCP/IP的协议报文结构包括事务标识符、协议标识符、长度字段、单元标识符、功能码、数据等部分。其中,事务标识符用于唯一标识请求和响应,协议标识符指定Modbus协议版本,长度字段表示报文长度,单元标识符用于标识设备,功能码表示操作类型,数据部分用于传递具体的数据信息。 Modbus TCP/IP协议规范定义了各种常见的功能码,如读写线圈、读写保持寄存器等。它还规定了报文的格式、传输方式以及错误处理等。通过这些规范,设备可以在网络上进行通信,并能够准确地解析和处理Modbus TCP/IP协议报文。 总的来说,Modbus TCP/IP是一种应用在以太网上的通信协议规范,通过TCP/IP协议栈进行通信。它具有有效的客户端/服务器结构,定义了报文格式、功能码、数据传输方式等。使用Modbus TCP/IP,设备可以在网络上进行可靠的通信,并实现广泛的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值