为什么要将Modbus转成MQTT

什么是Modbus

Modbus 是一种串行通信协议,最初由Modicon(现在的施耐德电气Schneider Electric)于1979年开发,用于可编程逻辑控制器(PLC)之间的通信。Modbus协议设计简单,易于部署和维护,并且由于其开放性,没有版权要求,因此被广泛应用于工业领域。Modbus支持多种通信介质,包括RS232、RS485、RS422以及以太网等,它使用主从架构,其中一个节点作为主节点,其他节点作为从节点进行通信。Modbus协议定义了多种功能码,用于执行不同的操作,如读取或写入寄存器数据等。

什么是MQTT

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种轻量级的、基于发布/订阅模式的通信协议,构建于TCP/IP协议之上,由IBM在1999年发布。MQTT协议特别适用于物联网(IoT)设备,因为它能够在低带宽和不稳定的网络环境中提供可靠的消息传输。MQTT协议支持三种不同的服务质量(QoS)级别,允许开发者根据应用需求选择合适的消息传输保证。MQTT协议广泛应用于需要低功耗和低带宽的场合,如智能家居、车载系统等

为什么要将Modbus转成MQTT?

  1. Modbus在安全性和实时性方面存在挑战:

    • Modbus协议存在安全漏洞,容易受到黑客攻击和数据篡改。
    • 在实时性和带宽利用率方面,Modbus与现代工业通信标准相比显得不够优秀。
  2. MQTT协议的优势:

    • 轻量级:MQTT适用于带宽有限、网络质量差等环境。
    • 灵活性:支持多种连接方式,通过订阅/发布模式实现灵活的消息传递。
    • 可靠性:能保证消息的可靠传输,即使网络中断也能重新连接并恢复通信。
    • 安全性:支持SSL/TLS加密和认证机制,数据传输更加安全。
  3. MQTT在物联网领域的应用:

    • MQTT协议广泛应用于物联网、移动互联网、智能硬件、车联网、智慧城市等领域。
    • 它更适合分布式系统中的消息传递需求。
  4. 必要性和意义:

    • 将Modbus转换成MQTT能够弥补Modbus协议的不足,提高通信效率和安全性。
    • 在工业4.0时代的要求下,实现系统的升级改造势在必行。

通过将Modbus桥接至MQTT,可以充分利用MQTT协议的优势,解决Modbus的局限性,满足现代制造业对高效、安全通信的需求,为工业领域的智能化、自动化和数据化发展提供更好支持。

作者介绍:

90后资深架构师,深耕工业可视化,数字化转型,深度学习技术在工业中的应用。深入研究Web3D,SCADA ,深度学习开发应用。开发语言技能JAVA/C#/Python/Golang/Vue3/TypeScript, 关注【工业可视化】带你一起学~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/24307.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零入手人工智能(2)——搭建开发环境

1.前言 作为一名单片机工程师,想要转型到人工智能开发领域的道路确实充满了挑战与未知。记得当我刚开始这段旅程时,心中充满了迷茫和困惑。面对全新的领域,我既不清楚如何入手,也不知道能用人工智能干什么。正是这些迷茫和困惑&a…

M1Pro 使用跳板机

Mac (M1 Pro) 通过Iterm2 使用跳板机 1、由于堡垒机(跳板机)不能支持mac系统终端工具,只支持xshell等win生态。所以我们需要先安装iterm2 装iterms教程 这里头对rz、sz的配置不详细。我们可以这样配置: where iterm2-send-zmod…

Windows 11中删除分区的几种方法,总有一种适合你

序言 想从Windows 11 PC中删除一个分区,以便将空间重新分配给现有分区或创建一个新分区吗?我们将为你介绍删除Windows 11分区的多种方法。 删除Windows上的分区时会发生什么 删除分区时,Windows会擦除该分区的内容,并将该分区从电脑上的任何位置删除。你将丢失保存在该分…

单元测试覆盖率

什么是单元测试覆盖率 关于其定义,先来看一下维基百科上的一段描述: 代码覆盖(Code coverage)是软件测试中的一种度量,描述程序中源代码被测试的比例和程度,所得比例称为代码覆盖率。 简单来理解&#xff…

C语言实现map数据结构 key—value对应

1.首先43行 createKeyValuePair(char*key ,int value)这个函数就是给一个keyValuePair *pair的指针来通过内存分配将数据key和value存入这个pair指针所对应的内存空间 2.52行freeKeyValuePair这个函数是释放内存空间 3.头文件 struct结构体KeyValuePair就是一个指针一个值 4…

GO语言 服务发现概述

https://zhuanlan.zhihu.com/p/32027014 明明白白的聊一下什么是服务发现-CSDN博客 一、服务发现 是什么 在传统的系统部署中,服务运行在一个固定的已知的 IP 和端口上,如果一个服务需要调用另外一个服务,可以通过地址直接调用。 但是&…

软件巨头SAP裁员优厚条件,吸引5300名员工争相离职

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》 在科技行业的大潮中,SAP公司近日因一项颇具争议的裁员计划而备受瞩目。但这次裁员风波并未如往常般引发员工的强烈抗议,反…

msvcr120.dll丢失怎样修复?为什么msvcr120.dll文件很重要

msvcr120.dll​ 是一个属于 Microsoft Visual C 2013 Redistributable package 的动态链接库文件。这个文件对于运行使用 Visual Studio 2013 开发的应用程序是必要的,因为它包含了C运行时库的一部分功能,这些功能是标准C库中与输入/输出操作、字符串操作…

OpenCV中的圆形标靶检测——斑点检测算法(二)

前面的章节中我们已经大致介绍了算法流程,也对一些算法中用到的相关概念做了简要介绍,同时给出了算法调用的API,现在我们开始算法检测接口实现源码的分析。 1. 斑点的分组与加权 这里我们选择后者,先了解算法的处理流程,再分析各个模块的实现。算法流程图如下图所示,上一…

android中调用onnxruntime框架

创建空白项目 安装Android Studio及创建空白项目参考:【安卓Java原生开发学习记录】一、安卓开发环境的搭建与HelloWorld(详细图文解释)_安卓原生开发-CSDN博客 切记:build configuration language 一定选择Groovy!官…

51单片机-LCD液晶显示

目录 前言: 一. LCD1602模块简介 二. 代码功能实现 三.总结 前言: 本文主要是51单片机的LCD液晶显示,使用的是LCD1602.下面是详细介绍和完整代码,欢迎大家的点赞,评论和关注.感谢. 一. LCD1602模块简介 LCD1602 模块具有以下特点: 显示特点: 可以…

企业建站响应式网站建设平台版源码系统 海量模版可选择 带完整的安装代码以及搭建教程

系统概述 企业建站响应式网站建设平台版源码系统是一款集创新性、实用性和便捷性于一体的建站解决方案。它旨在为用户提供一站式的网站建设服务,无论你是新手还是经验丰富的开发者,都能通过该系统轻松实现网站的构建与部署。 该系统采用先进的技术架构…

单链表复习 (C语言版)

目录 一.顺序表与链表的区别 二.链表概念 三.单链表 1.单链表的开始与初始化 2.单链表的打印 3.单链表的尾插 重难点:单链表实现时的指针详解 4.单链表的头插 5.单链表的尾删 6.单链表的头删 小结: 7.单链表的查找 8.在指定位置前插入数据 …

GitHub工程获取第三方PR操作

GitHub工程获取第三方PR操作 1. 源由2. 获取第三方PRStep 1:安装ghStep 2:获取个人TokenStep 3:通过git协议获取代码Step 4:获取第三方PR分支 3. 总结 1. 源由 通常来说,GitHub上通常有三种场景: 工程管理…

冯喜运:6.8下周伦敦金行情怎么看?黄金原油下周操作建议

【黄金消息面分析】:黄金不是由通胀驱动的。它也不是由通货紧缩驱动的。它也不是由美元驱动的。当股市反弹时,它也不会下跌,反之亦然。黄金是由市场情绪驱动的。而且,它是黄金市场上唯一的常数,使人们能够对黄金价格趋…

c++使用_beginthreadex创建线程

记录使用_beginthreadex(),来创建线程。方便后期的使用。 创建一个线程 相关函数介绍 unsigned long _beginthreadex( void *security, // 安全属性, 为NULL时表示默认安全性 unsigned stack_size, // 线程的堆栈大小, 一般默认为0 u…

3D打印随形透气钢:技术革新引领模具制造新潮流

在模具制造领域,透气钢一直扮演着重要角色,它能够有效解决模具困气问题,提高注塑成型的效率和质量。然而,传统的透气钢制造方法受限于工艺和材料,难以满足复杂模具的需求。随着3D打印技术的飞速发展,3D打印…

Go微服务: 分布式之通过本地消息实现最终一致性

概述 我们的业务场景是可以允许我们一段时间有不一致的消息的状态的,并没有说必须特别高的这个消息的一致性比如说在TCC这个架构中,如果采用了消息的最终一致性,整体架构设计要轻松好多即便我们库存服务挂了,或者我们积分服务挂了…

【2024PythonPycharm详细安装教程】

1.打开官网 https://www.python.org/ downloads——>Windows 2.找到 Download Windows installer (64-bit) 下载 3.下载完成双击安装包 勾选Add python.exe to PATH(自动配置系统变量) 点击Install Now(默认安装) 然后看到安装成功&#xff0…

Oracle EBS AP发票创建会计科目错误:子分类帐日记帐分录未按输入币种进行平衡

系统版本 RDBMS : 12.1.0.2.0 Oracle Applications : 12.2.6 问题症状: 提交“创建会计科目”请求提示错误信息如下: 中文报错: 该子分类帐日记帐分录未按输入币种进行平衡。请检查日记帐分录行中输入的金额。 英文报错:The subledger journal entry does not balance i…