Modbus协议学习第一篇之基础概念

什么是“协议”

        大白话解释:协议是用来正确传递消息数据而设立的一种规则。传递消息的双方(两台计算机)在通信时遵循同一种协议,即可理解彼此传递的消息数据。

Modbus协议模型

        Modbus协议模型较为简单,使用一种称为应用数据单元ADU(Application Data Unit)的模型,而应用数据单元模型ADU又由地址域+PDU+校验域组成。

        地址域:设备的地址标识。

        PDU:协议数据单元(Modbus协议模型的核心),由功能码+数据组成。

        校验域:用于检查传输的数据是否准确(数据在链路中传输有可能会失真,如0变1,1变0,接收端可通过校验域来检查是否有失真的情况)

        具体协议模型如图所示:

Modbus协议运行机制

        Modbus协议的通信双方一般被称之为主机设备(客户端)和从机设备(服务端,提供数据)。主机设备创建Modbus应用数据单元ADU形成查询报文,其中的功能码是指向从机设备表明将要执行哪种操作,比如读数据等。功能码占用一个字节,有效的范围为1-255(其中128-255为异常响应保留)。查询报文创建完毕,主机设备向从机设备发送报文,从机设备接收到该报文,根据功能码来执行相应操作,并将响应报文返回给主机设备,如图所示(响应正常情况)。

专业术语

        常用专业术语如下:

        Master:主设备

        Slave:从设备

        Client:客户端

        Server:服务端

        ADU:应用数据单元(Application Data Unit)

        PDU:协议数据单元(Protocol Data Unit)

        MSB:最高有效位(Most Significant Bit)

        LSB:最低有效位(Least Significant Bit)

        MBAP:Modbus应用协议(ModBus Application Protocol)

        PLC:可编程逻辑控制器(Programmable Logic Controller)

写在最后

        因工作需要而接触Modbus,正在恶补知识,利用博客的方式来加深理解和记忆,同时希望同行大佬能一起交流。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-13 23:44:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-13 23:44:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-13 23:44:02       82 阅读
  4. Python语言-面向对象

    2024-01-13 23:44:02       91 阅读

热门阅读

  1. ssh远程登陆

    2024-01-13 23:44:02       65 阅读
  2. 玉米花快要发芽 的第二天

    2024-01-13 23:44:02       70 阅读
  3. 关于基于STM32使用外部中断控制按键

    2024-01-13 23:44:02       65 阅读
  4. vscode运行Python的两种方法,及无法运行的原因

    2024-01-13 23:44:02       72 阅读
  5. day04打卡

    2024-01-13 23:44:02       66 阅读
  6. 如何允许远程访问 MySQL

    2024-01-13 23:44:02       69 阅读
  7. ZooKeeper

    ZooKeeper

    2024-01-13 23:44:02      48 阅读
  8. 第一天业务题目

    2024-01-13 23:44:02       60 阅读
  9. 【万题详解1】洛谷P1230 智力大冲浪

    2024-01-13 23:44:02       69 阅读
  10. 基于AidLux的智慧教育版面分析应用

    2024-01-13 23:44:02       82 阅读
  11. MyBatis面试题及高级用法

    2024-01-13 23:44:02       54 阅读