zoukankan      html  css  js  c++  java
  • Modbus协议

    一、Modbus协议简介

    Modbus一个工业上常用的通讯协议、一种通讯约定。
    协议包括了:RTU、ASCII、TCP。其中RTU最常用,较简单,在单片机上很容易实现
    通讯方式:主从-双向读写
    常用接口形式:RS232C、RS485、RS422
    常用波特率:1200、1800、2400、4800、9600、12500 等等
    常见设备默认波特率:9600
    自动化领域中RTU模式每个字节格式:
    编码系统:八位二进制,16进制0-9 A-F
    数据位:1起始位
    8位数据低位先送
    奇偶校验1位,无校验0位
    停止位:带校验1位,无校验两停止位

    1.2 报文格式及解析
    • 如图为协议格式:

    分析一条实际报文:01 06 00 01 00 17 98 04

    从机地址 功能号 数据地址 数据 CRC校验
    01 06 00 01 00 17 98 04

    这串命令会把数据 0x0017(十进制23) 写入 1号从机地址 0x0001数据地址。

    1.2.2 从机地址
    • 00 为广播地址
    • 01-FF(255) 从机地址(从机有效设备地址范围:01-247)
    • 01 就位一号机,会往指定从机发送命令
    1.2.3 功能号

    • 常用功能号:
      01 (0x01) 读线圈
      02 (0x02) 读离散量输入
      03 (0x03) 读保持寄存器
      04(0x04) 读输入寄存器
      05 (0x05) 写单个线圈
      06 (0x06) 写单个寄存器
      15 (0x0F) 写多个线圈
      16 (0x10) 写多个寄存器
    1. 主机对从机 01 写数据操作:功能号06
      如果单片机接收到一个报文那么就对报文进行解析执行相应的处理,如报文:
      01 06 00 01 00 17 98 04

    2. 主机对从机 01 读数据操作:功能号03
      主机进行读HoldDataReg[1] 操作,如报文:
      01 03 00 01 00 01 D5 CA
      从机返回格式为:

    从机地址 功能号 数据字节个数 两个字节数据 CRC校验
    01 03 02 0017 F8 4A

    MODBUS主机就完成了一次对从机数据的读操作,实现了通讯。

    ![](https://img2018.cnblogs.com/blog/1226829/201905/1226829-20190522214335294-826734922.png)

  • 相关阅读:
    软件需求分析阅读笔记2
    Ubuntu上的Hbase集群搭建
    Form的Load事件的添加
    软件需求与分析大作业进度(二)
    软件需求与分析大作业进度(一)
    第四周学习进度总结
    使用vmware+Ubuntu搭建hadoop集群
    团队十日冲刺10
    用户模板和用户场景
    团队十日冲刺9
  • 原文地址:https://www.cnblogs.com/shiqi17/p/10908528.html
Copyright © 2011-2022 走看看