通信协议_Modbus协议简介

概念介绍

  • Modbus协议:一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。
  • 通信具象化解释:类似人的交流过程,需要有通信角色 (主从,客户端服务器...),通信介质 (串口,以太网,无线...),通信协议(modbus,S7,MC...)三个要素。
  • 网络协议三要素:语法 (数据与控制信息的结构或格式),语义(发出何种控制信息),同步(事件实现顺序,匹配速度等的详细说明)。

modbusRTU协议介绍

语法结构:

  • 地址码:用于标识从站设备,范围是0到247,其中0为广播地址,所有从站设备都会接收该地址的数据。
  • 功能码:用于指示要执行的操作类型,例如读取寄存器值、写入单个寄存器等。
  • 数据:包括寄存器地址、数据值等信息,根据功能码的不同,数据的内容和长度也会不同。
  • CRC校验码:用于检测数据在传输过程中是否出现错误。在数据帧的最后添加两个字节CRC校验码,接收方收到数据后,重新计算CRC校验码,并与接收到的CRC校验码进行比较,如果不同,则说明数据在传输过程中出现了错误。

功能码:

  • 功能码01:读取线圈状态(Read Coils),用于从远程设备中连续读取1到2000个线圈的状态。
  • 功能码02:读取输入状态(Read Inputs),取得一组开关输入的当前状态ON/OFF。
  • 功能码03:读取保持寄存器(Read Holding Registers),在一个或多个保持寄存器中取得当前的二进制值。
  • 功能码04:读取输入寄存器(Read Input Registers),在一个或多个输入寄存器中取得当前的二进制值。
  • 功能码05:强置单线圈(Force Single Coil),强置一个逻辑线圈的通断状态。
  • 功能码06:预置单寄存器(Preset Single Register),把具体二进值装入一个保持寄存器。
  • 功能码15:强置多线圈(Force Multiple Coils),强置一串连续逻辑线圈的通断。
  • 功能码16:预置多寄存器(Preset Multiple Registers),把具体的二进制值装入一串连续的保持寄存器。

例:
读取(03)从站(01)中的窗帘打开程度(从第二个开始读:00 02 读一位 00 01 CRC校验 25 CA):

相关推荐
奋斗的牛马19 分钟前
FPGA—ZYNQ学习spi(六)
单片机·嵌入式硬件·学习·fpga开发·信息与通信
Shang1809893572621 小时前
T41LQ 一款高性能、低功耗的系统级芯片(SoC) 适用于各种AIoT应用智能安防、智能家居方案优选T41L
人工智能·驱动开发·嵌入式硬件·fpga开发·信息与通信·信号处理·t41lq
迈威通信1 天前
矿山通信如何实现全域一体化?迈威为煤矿装上了“智慧神经网络”
科技·物联网·5g·安全·信息与通信
奋斗的牛马2 天前
FPGA—ZYNQ学习GPIO-EMIO,MIO,AXIGPIO(五)
单片机·嵌入式硬件·学习·fpga开发·信息与通信
KOAN凯擎小妹3 天前
晶振信号质量:上升下降时间与占空比
单片机·嵌入式硬件·fpga开发·信息与通信
七七七七074 天前
【计算机网络】NAT技术深度解析:从原理到NAPT实现的工作机制
网络·网络协议·计算机网络·智能路由器·信息与通信
贝塔实验室4 天前
译码器的结构
驱动开发·算法·网络安全·fpga开发·硬件工程·信息与通信·信号处理
通信小呆呆5 天前
基于方向谱与雷达信号处理的海杂波机理解析
目标检测·信息与通信·信号处理
贝塔实验室6 天前
LDPC 码的构造方法
算法·fpga开发·硬件工程·动态规划·信息与通信·信号处理·基带工程
贝塔实验室7 天前
LDPC 码的度分布
线性代数·算法·数学建模·fpga开发·硬件工程·信息与通信·信号处理