本文为Modbus快速使用指南,不涉及过多深入内容

协议描述

MODBUS 协议定义了一个与基础通信层无关的简单协议数据单元(PDU,Protocol Data Unit)。特定总线或网络上的MODBUS 协议映射能够在应用数据单元(ADU)上引入一些附加域。

  • 启动MODBUS 事务处理的客户机创建MODBUS应用数据单元,功能码向服务器指示将执行哪种操作。
  • 客户机向服务器设备发送的报文数据域包括附加信息,服务器使用这个信息执行功能码定义的操作。这个域还包括离散项目和寄存器地址、处理的项目数量以及域中的实际数据字节数。
  • 在某种请求中,数据域可以是不存在的(0长度),在此情况下服务器不需要任何附加信息。功能码仅说明操作。
  • 如果在一个正确接收的MODBUS ADU 中,不出现与请求MODBUS 功能有关的差错,那么服务器至客户机的响应数据域包括请求数据。如果出现与请求MODBUS 功能有关的差错,那么域包括一个异常码,服务器应用能够使用这个域确定下一个执行的操作。
  • 当服务器对客户机响应时,它使用功能码域来指示正常(无差错)响应或者出现某种差错(称为异常响应)。对于一个正常响应来说,服务器仅对原始功能码响应。
  • 对于异常响应,服务器返回一个与原始功能码等同的码,设置该原始功能码的最高有效位为逻辑1。

PDU

MODBUS 协议定义了三种PDU。它们是:

  • MODBUS请求PDU,mb_req_pdu
  • MODBUS响应PDU,mb_rsp_pdu
  • MODBUS异常响应PDU,mb_excep_rsp_pdu

mb_req_pdu

mb_req_pdu = { function_code, request_data},其中
function_code - [1个字节] ,功能码
request_data - [n个字节],这个域与功能码有关,并且通常包括诸如可变参考、变量、数据偏移量、子功能码等信息。

mb_rsp_pdu

mb_rsp_pdu = { function_code, response_ data},其中
function_code - [1个字节],功能码
response_data - [n个字节],这个域与功能码有关,并且通常包括诸如可变参考、变量、数据偏移量、子功能码等信息。

mb_excep_rsp_pdu

mb_excep_rsp_pdu = { function_code, request_data},其中
function_code - [1个字节],功能码+ 0x80
exception_code - [1个字节],异常码。

数据模型

基本表格 对象类型 访问类型 内容
离散量输入 1 bit 只读 读取服务器端位状态
线圈 1 bit 读写 读、写服务器端位状态
输入寄存器 16 bits 只读 读取服务器端寄存器
保持寄存器 16 bits 读写 读、写服务器端寄存器

通常使用较多的是输入寄存器、保持寄存器。

举栗子

FreeModbus快速入门指南相关推荐

  1. BERT模型超酷炫,上手又太难?请查收这份BERT快速入门指南!

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自 | GitHub    作者 | Jay Alammar 转自 | 机器之心 如 ...

  2. BERT模型超酷炫,上手又太难?请查收这份BERT快速入门指南

    2019-12-31 10:50:59 选自GitHub 作者:Jay Alammar 参与:王子嘉.Geek AI 如果你是一名自然语言处理从业者,那你一定听说过最近大火的 BERT 模型.本文是一 ...

  3. RMAN快速入门指南

    RMAN快速入门指南   1. What is RMAN? 什么是RMAN?    4 2. Terminology 专业词汇解释    4 2.1. Backup sets 备份集合    4 2. ...

  4. 150页书籍《PyTorch 深度学习快速入门指南》附PDF电子版

    为什么说是极简教程,首先本书只涵盖了150页.内容比较精简,特别适合作为 PyTorch 深度学习的入门书籍.为什么这么说呢?因为很多时候,一份厚重的书籍往往会削弱我们学习的积极性,在学习一门新的语言 ...

  5. h5py快速入门指南

    h5py是Python语言用来操作HDF5的模块.下面的文章主要介绍h5py的快速入门指南,翻译自h5py的官方文档:http://docs.h5py.org/en/lates... .该翻译仅为个人 ...

  6. 2017 Vue.js 2快速入门指南

    注意,据部分读者反映本文水多,怕湿身者勿进.后续推荐详解 Vue & Vuex 实践 2017 Vue.js 2快速入门指南翻译自Vue.js 2 Quickstart Tutorial 20 ...

  7. Flux快速入门指南

    翻译自 http://www.jackcallister.com/2015/02/26/the-flux-quick-start-guide.html 2015年2月26日 本文将概述如何使用Flux ...

  8. AngularJS快速入门指南09:SQL

    我们可以将之前章节中的代码用来从数据库中读取数据. 通过PHP Server从MySQL数据库中获取数据 <div ng-app="myApp" ng-controller= ...

  9. AngularJS快速入门指南03:表达式

    AngularJS通过表达式将数据绑定到HTML. AngularJS表达式 AngularJS表达式写在双大括号中:{{ 表达式语句 }}. AngularJS表达式绑定数据到HTML的方式与ng- ...

最新文章

  1. 你奋斗这么辛苦,这辈子要证明什么?
  2. 关于 @ngrx/Store 下 obj 的扩展问题
  3. 【机器学习算法-python实现】K-means无监督学习实现分类
  4. 【北航oj】(线段树取模运算)
  5. 【操作系统复习】操作系统的发展与分类
  6. android 字母索引三方,Android 字母索引动态自定义布局
  7. 【英语学习】【WOTD】despot 释义/词源/示例
  8. 网页中多层效果的灵活使用
  9. 零基础学习java------day1------计算机基础以及java的一些简单了解
  10. Nginx流媒体服务器搭建
  11. 通俗讲解深度学习和神经网络!
  12. Python办公自动化——发票开具明细汇总
  13. 2020年开始,中国程序员前景一片灰暗,是这样吗?
  14. vue 导出表格到xlsx中
  15. excel柱状图自定x轴y轴_《excel柱状图自定x轴y轴》 如何更改EXCEL 图表中X轴的名称...
  16. hdu6438(优先队列)
  17. 使用电容触摸屏做一个画板--原理(一)
  18. django多任务开启rabbitmq,并进行声明队列、发送、阻塞监听消息
  19. 服务器显示中国移动,中国移动服务器地址是什么
  20. SpringBoot XStream整合

热门文章

  1. MySQL将多条数据合并成一条
  2. 工信部数字电视标准符合性检测中心发布的
  3. 社会工程学三本_1.9万人报考,扩招近千人!被戏称为“大三本”的985——东南大学,低调有实力!...
  4. 宜信敏捷数据中台建设实践
  5. SqlServer数据库配置大小写敏感
  6. 1.1到底什么是云计算
  7. 和老板比,员工弱爆了
  8. (五)Android资源访问
  9. Kafka SASL SCRAM授权java开发demo
  10. 个人简历网页搭建(快速搭建GitHub Pages和Apache)