史上最俗的MODBUS介绍
如今网购正深深地改变着人们的生活,以前买东西要逛商场,先找楼层导购,再逛到相应柜台,接着愉快购物,选好东西后经过一番讨价还价,最后付钱拿货走人,这些都是稀松平常的场景。可是,如果没有实际看见东西,只在网上看到照片,在见不着商家就先付钱,然后等着东西送到家里,这些场景放在过去简直让人不可思议,但就是凭借一套行之有效的交易规则实现了,也就是一种各方都需要遵守的协议。

既然购物能通过一套规则做到这么便捷,那么通信是不是也能做到?答案是肯定的,因为通信就是数据交互,也可以通过制定一套规则来方便数据交互,这种规则就是通信协议。万事开头难,整明白了协议以及通信协议,那么MODBUS就说清楚了一半,因为MODBUS就是一种通信协议,那么MODBUS是怎样的一种通信协议呢?
众所周知,网购的规则是为了协调买家、卖家、第三方平台之间的关系,规定了各方享有的权利和承担的义务,提出一些完成交易需要的步骤和方法。大家直接就能想到的场景,比如说电商会展示商品和服务内容(买、可退换)、网络平台(淘宝、天猫)制定了交易的规则,以及快递公司定义了传输商品的方式(包裹、快递单)。同样道理,MODBUS通信协议是为了方便控制器、设备之间的数据交互,表面上由类似于“用户须知”一样的诸多条文组成,其实也就是说了几件事情:协议功能、通信内容、通信规则、通信数据格式。
1)通信功能:MODBUS通信协议定义的功能包括读、写、诊断,这里可以想象一下,当你打电话办理某个业务,语音提示你:请输入您想办理业务,按键1查询,2充值,0人工服务,这不就是功能码嘛!
2)通信内容:正如电商会展示出商品供大家选择一样,MODBUS通信协议定义了通信的内容包括保持型寄存器、输入寄存器、线圈等。商品有小件也有大件的,能退也有不能退的,这些通信的内容也是有的可以读写,有的只能读。

3)通信规则:MODBUS通信协议采用客户端/服务器模式进行通信,可以看看图表2对这种通信模式与网购的类比。显然两个客户端是没办法直接通信的,因为两个买家能干嘛?

4)通信数据格式
网购后,卖家会采用物流投递,快递公司不会像餐厅侍者一样,托着商品呈递到家中,而采用包裹的形式,按照快递单据准确送达,这就是网购货品的形式。MODBUS通信协议为了实现准确传输数据,也需要“打包”和“快递单”。假如说货品是一个保持寄存器,那么打包过程就是将保持寄存器的值用功能码包装,形成协议数据PDU(类似于包裹);货品贴上快递单就是说数据PDU被加上了地址和差错校验(即)后形成一帧完整的通信数据(应用数据ADU)。
综上所述,MODBUS就是包含以上4个内容的通信协议。其实,工业互联网中的一些技术并不是特别深奥,能从生活中找到原型,你看MODBUS通信协议不也是可以很俗很直观的吗?
综上所述,MODBUS就是包含以上4个内容的通信协议。其实,工业互联网中的一些技术并不是特别深奥,能从生活中找到原型,你看MODBUS通信协议不也是可以很俗很直观的吗?
史上最俗的MODBUS介绍的更多相关文章
- 史上最全的RunLoop介绍
之前有人在后台给小编留言,说:小编啥时候给我们分享RunLoop的一些文章,工作以后特别需要这样的技术.这不,小编从网上找了一个介绍非常详细,清晰的文章,仅供参考. RunLoop 是 iOS 和 O ...
- HR面试:过五关斩六将后,小心阴沟翻船!(史上最全、避坑宝典)
文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...
- 【腾讯Bugly干货分享】OCS——史上最疯狂的iOS动态化方案
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/zctwM2Wf8c6_sxT_0yZvXg 导语 在 ...
- 【Tips】史上最全H1B问题合辑——保持H1B身份终级篇
[Tips]史上最全H1B问题合辑——保持H1B身份终级篇 2015-04-10留学小助手留学小助手 留学小助手 微信号 liuxue_xiaozhushou 功能介绍 提供最真实全面的留学干货,帮您 ...
- 史上最简单,一步集成侧滑(删除)菜单,高仿QQ、IOS。
重要的话 开头说,not for the RecyclerView or ListView, for the Any ViewGroup. 本控件不依赖任何父布局,不是针对 RecyclerView. ...
- 史上最全的java随机数生成算法分享(转)
这篇文章主要介绍了史上最全的java随机数生成算法,我分享一个最全的随机数的生成算法,最代码的找回密码的随机数就是用的这个方法 String password = RandomUtil.generat ...
- 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发
[原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文 http: ...
- GitHub上史上最全的Android开源项目分类汇总 (转)
GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...
- 史上最全的iOS面试题及答案
迷途的羔羊--专为路痴量身打造的品牌.史上最精准的定位.想迷路都难!闪电更新中...敬请期待,欢迎提意见.下载地址:https://itunes.apple.com/us/app/mi-tu-de-g ...
随机推荐
- ArcPy获取栅格属性
获取栅格属性 (数据管理) 描述 从元数据和栅格数据集的相关描述性统计数据中检索信息. 使用方法 返回的属性将显示在结果窗口中. 此工具的 Python 结果是地理处理结果对象.要获取字符串值,请使用 ...
- Python基础 | 字符串格式化输出及print()函数介绍
在写代码时,我们会经常与字符串打交道,Python中控制字符串格式通常有三种形式,分别是使用str%,str.format(),f-str,用法都差不多,但又有一些细微之差. 一起来看看吧~~~ 一. ...
- 试题 算法训练 区间k大数查询 java题解
资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二行包含n个正 ...
- 舌头算法的C++实现
观察生活,我们不难发现,吃饭的时候,有时候左边的东西会到右边来,这是为什么呢?就是舌头的作用了. 下面的代码将模拟舌头的运动: #include <iostream> #include & ...
- C/C++入门级小游戏——开发备忘录
很多工科的学生在大一都有一门课程,叫C语言程序设计.大概就是装个IDE然后和一个黑乎乎的窗口打交道,期末到了考完试就结束了.然而很多人可能都有一个疑惑:C语言究竟能干什么?除开嵌入式单片机这些高大上的 ...
- 微信h5跳转小程序wx-open-launch-weapp开放标签不显示(已解决)
前言: 前几天成功对接了跳转第三方小程序的功能,今天有个页面有需要对接.但是奇怪的是用的和上次一模一样的配置,但就是死活不显示wx-open-launch-weapp这个开放标签的按钮,看不到任何效果 ...
- BUAA软工-结对项目
BUAA2020 软件工程-结对项目 Author:17373015 乔玺华 学号 cnblog profile 17373260(本文作者) Prime21 17373015(结对队友) ...
- java中延时队列的使用
最近遇到这么一个需求,程序中有一个功能需要发送短信,当满足某些条件后,如果上一步的短信还没有发送出去,那么应该取消这个短信的发送.在翻阅java的api后,发现java中有一个延时队列可以解决这个问题 ...
- LP-DDR 和其他 DDR
一篇技術文檔比較 LP-DDR 和其他 DDR. 就觀念來說,LP-DDR 就是 Low Power 的 DDR:但就架構來說,LP-DDR 和其他 DDR 是截然不同的東西. 他們分屬不同的 JDE ...
- 从0到1使用Kubernetes系列(四):搭建第一个应用程序
传统Kubernetes应用搭建 创建Namespace 在一个Kubernetes集群中可以创建多个Namespace进行"环境隔离",当项目和人员众多的时候,可以考虑根据项目的 ...