modbus通讯协议详解

简介: modbus通讯协议详解

1、Modbus 协议简介  

  Modbus协议是一种已广泛应用于当今工业控制领域的通用通讯协议。通过此协议,控制器相互之间、或控制器经由网络(如以太网)可以和其它设备之间进行通信。Modbus协议使用的是主从通讯技术,即由主设备主动查询和操作从设备。一般将主控设备方所使用的协议称为Modbus Master,从设备方使用的协议称为Modbus Slave。典型的主设备包括工控机和工业控制器等;典型的从设备如PLC可编程控制器等。

  Modbus通讯物理接口可以选用串口(包括RS232、RS485和RS422),也可以选择以太网口。其通信遵循以下的过程:

主设备向从设备发送请求
从设备分析并处理主设备的请求,然后向主设备发送结果
如果出现任何差错,从设备将返回一个异常功能码
  此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。

  当在Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。

  Modbus的工作方式是请求/应答,每次通讯都是主站先发送指令,可以是广播,或是向特定从站的单播;从站响应指令,并按要求应答,或者报告异常。当主站不发送请求时,从站不会自己发出数据,从站和从站之间不能直接通讯。

  Modbus协议是应用层(协议层)报文传输协议,它定义了一个与物理层无关的协议数据单元(PDU),即PDU=功能码+数据域,功能码1byte,数据域不确定。

  Modbus协议能够应用在不同类型的总线或网络。对应不同的总线或网络,Modbus协议引入一些附加域映射成应用数据单元(ADU),即ADU=附加域+PDU,例如modbus tcp/ip------ ADU=MBAP+ADU。

2、Modbus 通讯方式

    Modbus有下列三种通信方式:

    (1)、以太网:对应的通信模式是Modbus TCP/IP

    (2)、异步串行传输(各种介质如有线RS-232-/422/485/;光纤、无线等):对应的通信模式是Modbus RTU或Modbus ASCII

    (3)、高速令牌传递网络:对应的通信模式是Modbus PLUS

    Modbus RTU和Modbus ASCII协议应用于串口链接(RS232、RS485、RS422),Modbus tcp/ip协议应用于以太网链接。

目录
相关文章
|
存储 分布式计算 监控
MaxCompute的使用技巧和典型使用场景
【4月更文挑战第1天】MaxCompute的使用技巧和典型使用场景
460 2
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1821 5
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
负载均衡 监控 应用服务中间件
除了 Nginx,还有以下一些常见的负载均衡工具
【10月更文挑战第17天】这些负载均衡工具各有特点和优势,在不同的应用场景中发挥着重要作用。选择合适的负载均衡工具需要综合考虑性能、功能、稳定性、成本等因素。
2140 56
|
存储
CMOS摄像头驱动分析
CMOS摄像头驱动分析
413 0
CMOS摄像头驱动分析
STM32CubeMX FreeRTOS点亮LED
STM32CubeMX FreeRTOS点亮LED
463 10
|
安全 Linux 程序员
「技术干货」一文搞懂C语言内存模型与栈
「技术干货」一文搞懂C语言内存模型与栈
|
前端开发 Serverless Shell
函数计算操作报错合集之遇到错误信息为HandlerNotFound,该怎么办
在使用函数计算服务(如阿里云函数计算)时,用户可能会遇到多种错误场景。以下是一些常见的操作报错及其可能的原因和解决方法,包括但不限于:1. 函数部署失败、2. 函数执行超时、3. 资源不足错误、4. 权限与访问错误、5. 依赖问题、6. 网络配置错误、7. 触发器配置错误、8. 日志与监控问题。
510 0
|
内存技术
计算机网络——物理层-编码与调制(数字基带信号、模拟基带信号、码元、常用编码、基本调制方法、混合调制)一
计算机网络——物理层-编码与调制(数字基带信号、模拟基带信号、码元、常用编码、基本调制方法、混合调制)一
1451 0
|
人工智能 IDE Java
免费用的 AI 工具 CodeGeeX ,开发效率翻倍!!!
AI 会淘汰程序员,但只会淘汰不会用 AI 的程序员。AI可以通过学习和分析大量的性能数据,自动寻找性能瓶颈并进行智能调优,加快软件的响应速度,提升用户体验。此外,AI在软件开发需求分析、自动化测试、代码生成、项目管理、持续集成与部署等方面也有应用,可以节省时间和精力,提高开发速度和质量。就分享到这了。所以AI技术在软件开发领域的应用可以造福程序员。AI可以提供更高效的代码自动生成和智能推荐功能,帮助程序员快速编写高质量的代码。这可以减轻程序员的工作负担,提高开发效率。
722 1
idea解决合并(merge)冲突代码
idea解决合并(merge)冲突代码
410 1