当前位置:网站首页 > C++编程 > 正文

modbus报文实例(modbusascll报文)



Modbus是一种单主/多从的通信协议,即同一时间只能有一个主设备,但可以有一个或多个(最多247个)从设备。通信必须由主设备发起,从设备只有当收到主设备发来的请求,才会发送数据。从设备之间不能相互通信

lua modbus转换成hex数据发到服务器 modbusascll格式_服务器端

lua modbus转换成hex数据发到服务器 modbusascll格式_从站_02

lua modbus转换成hex数据发到服务器 modbusascll格式_从站_03

lua modbus转换成hex数据发到服务器 modbusascll格式_服务器端_04

lua modbus转换成hex数据发到服务器 modbusascll格式_响应报文_05

主机设备或客户端创建Modbus ADU形成查询报文,其中功能码向从机设备或服务器端指示将执行哪种操作。功能码占用一个字节(1255,其中128255为异常响应保留),创建完毕向从机或服务器端发送报文,从机或服务器端接收到报文后,根据功能码做出相应的动作,并将响应报文发送回给主机或客户端(正确接收Modbus ADU,不出现与请求Modbus功能有关的差错则返回正常的响应报文,否则响应报文的功能码位将返回一个和原始功能码相同但是最高有效位设置为1的异常码)

主设备发送Modbus请求报文的两种方式

  1. 单播模式:主设备仅仅寻址单个从设备。从设备接收并处理完请求之后,向主设备返回一个响应报文,即应答。
  2. 多播模式:主设备可以向所有的从设备发送请求指令。从设备接收到广播指令之后,仅进行相关指令的事务处理而不要求返回应答。由此请求指令必须是Modbus标准功能中的写指令。广播地址0

lua modbus转换成hex数据发到服务器 modbusascll格式_从站_06

lua modbus转换成hex数据发到服务器 modbusascll格式_服务器端_07

lua modbus转换成hex数据发到服务器 modbusascll格式_从站_08

lua modbus转换成hex数据发到服务器 modbusascll格式_服务器端_09

Modbus规定了三种功能码,分别为:

  1. 公共功能码
  2. 用户自定义功能码
  3. 保留功能码
    功能码可分为位操作和字操作两类。位操作的最小单位为一位,字操作的最小单位为两个字节

Modbus对于查询报文的四种处理反馈:

  1. 正常接收,正常处理,返回正常响应报文
  2. 因为通信错误等原因,造成从站设备没有接收到查询报文,主站报文将按超时处理
  3. 从站设备接收到的查询报文存在通信错误(例如LRC、CRC错误等),此时从站设备将丢弃报文不响应,主站设备将按超时处理
  4. 从站设备接触到正确的报文,但是超过处理范围(例如不存在的功能码或寄存器等),此时从站设备将返回包含异常码(Exception Code)的响应报文
    异常响应报文由从站地址、功能码以及异常码构成,功能码最高有效位设为1

到此这篇modbus报文实例(modbusascll报文)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • conv2d参数解释(conv2d的参数)2025-12-08 07:27:07
  • hpk文件可以删吗(hp documentation可以卸载吗)2025-12-08 07:27:07
  • c++ 条件变量性能(c++11 条件变量wait函数)2025-12-08 07:27:07
  • 简单好玩的编程代码(c++简单好玩的编程代码)2025-12-08 07:27:07
  • pilows翻译成英语(pigcasso翻译英语)2025-12-08 07:27:07
  • gitclone下载的文件在哪(gitclone如何下载代码)2025-12-08 07:27:07
  • conv1D什么意思(cond是什么意思)2025-12-08 07:27:07
  • Podoplanin蛋白(podocin蛋白译名)2025-12-08 07:27:07
  • clothes怎么读(clothes怎么读正确发音)2025-12-08 07:27:07
  • cnn是哪个国家的新闻媒体抖音(cnn是哪个国家的电视台)2025-12-08 07:27:07
  • 全屏图片