wMODBUS协议栈介绍:嵌入式系统中的Modbus协议实现
需积分: 15 85 浏览量
更新于2024-07-15
收藏 106KB PPTX 举报
wModbus介绍
wModbus协议栈是针对通用的Modbus协议栈在嵌入式系统中应用的一个实现。该协议栈可以挂载任意多个主机与从机,支持多个主机与多个从机同时独立运行。wModbus协议栈支持RTU/ASCII模式,支持串串口/网络模式。
wModbus协议栈支持多种功能码,包括:
* 读输入寄存器 (0x04)
* 读保持寄存器 (0x03)
* 写单个寄存器 (0x06)
* 写多个寄存器 (0x10)
* 读/写多个寄存器 (0x17)
* 读取线圈状态 (0x01)
* 写单个线圈 (0x05)
* 写多个线圈 (0x0F)
* 读输入状态 (0x02)
wModbus协议栈支持实时操作系统及裸机移植,並提供hook回调函数功能和通信统计功能。该协议栈的主机功能可以支持与任意非连续地址的从机进行通信,并提供多种请求模式,用户可以选择阻塞或非阻塞模式,自定义超时时间等,方便应用层灵活调用。
wModbus协议栈的作者吴远福提供了源码地址https://github.com/wuyuanfu240697738/wModbus,供开发者下载和使用。
Modbus简介
Modbus是一种主-从协议,在同一时刻,只有一个主节点连接于总线,一个或多个子节点(最大编号为247)连接于同一个串行总线。Modbus通信总是由主节点发起。子节点在没有收到来自主节点的请求时,从不会发送数据。子节点之间从不会互相通信。
Modbus主节点可以以两种模式对子节点发出Modbus请求:单播模式和广播模式。在单播模式中,主节点以特定地址访问某个子节点,子节点接到并处理完请求后,子节点向主节点返回一个报文(一个'应答')。在广播模式中,主节点向所有的子节点发送请求。对于主节点广播的请求没有应答返回。
Modbus寻址空间有256个不同地址。地址0保留为广播地址。所有的子节点必须识别广播地址。Modbus主节点没有地址,只有子节点必须有一个地址。该地址必须在Modbus串行总线上唯一。
Modbus帧描述
Modbus协议映射在协议数据单元之外引入了一些附加的域。发起Modbus事务处理的客户端构造ModbusPDU,然后添加附加的域以构造适当的通信PDU。
功能码指明服务器要执行的动作。功能码后面可跟有表示含有请求和响应参数的数据域。错误检验域是对报文内容执行"冗余校验"的计算结果。根据不同的传输模式(RTU或ASCII)使用两种不同的计算方法。
RTU模式和TCP模式的对比
ModbusRTU和ModbusTCP读指令对比指令的涵义:从地址码为01(TCP协议单元标志为00)的模块0x1。
2021-02-05 上传
2024-08-19 上传
2021-09-25 上传
嵌远科技
- 粉丝: 14
- 资源: 8
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器