当前位置: 首页 > news >正文

Modbus 协议:工业自动化领域的通信脊梁

一、引言

在当今工业自动化的舞台上,数据的准确传输和设备间的有效通信是实现高效生产、精准控制的关键。Modbus 协议作为一种应用广泛、历史悠久的通信协议,在工业领域发挥着举足轻重的作用。从工厂的生产线到智能建筑的控制系统,从能源管理到过程自动化,Modbus 协议的身影无处不在。它就像一条无形的纽带,将各种工业设备紧密连接在一起,实现数据的互通有无和协同工作。那么,Modbus 协议究竟是什么?它有哪些特点和优势?又是如何工作的呢?本文将深入探讨 Modbus 协议的方方面面,带你揭开它的神秘面纱。

二、Modbus 协议的发展历程

(一)诞生背景

20 世纪 60 年代末到 70 年代初,工业自动化领域开始蓬勃发展,但设备之间的通信却面临着诸多挑战。不同厂家生产的设备往往使用各自独特的通信方式,这使得设备之间的互联互通变得极为困难。为了解决这一问题,Modbus 协议应运而生。它的出现旨在为工业设备提供一种统一的、标准化的通信方式,使得不同品牌、不同类型的设备能够相互理解和交流。

(二)发展阶段

  1. 早期发展
    在 Modbus 协议诞生初期,它主要应用于可编程逻辑控制器(PLC)之间的通信。当时的工业环境相对简单,对通信的要求主要集中在数据的可靠性和稳定性上。Modbus 协议以其简洁明了的设计和高效的数据传输机制,迅速得到了广大工程师的认可。它通过串行通信线路实现设备之间的数据交换,为工业自动化控制系统的发展奠定了基础。
  2. 逐步完善
    随着计算机技术和网络技术的飞速发展,Modbus 协议也在不断演进和完善。从最初的串行通信逐渐扩展到支持以太网等多种网络通信方式,传输速率和数据处理能力得到了极大的提升。同时,为了满足不同行业和应用场景的需求,Modbus 协议不断增加新的功能和特性,如支持更多的数据类型、增强的错误检测机制以及安全性方面的改进等。

(三)在现代工业中的地位

如今,Modbus 协议已经成为工业自动化领域中最为流行的通信协议之一。无论是传统的制造业,还是新兴的智能能源、智能建筑等领域,都广泛采用了 Modbus 协议。它不仅实现了设备之间的无缝通信,还促进了工业系统的集成化和智能化发展。大量的工业设备,如传感器、执行器、控制器等,都支持 Modbus 协议,使得整个工业生态系统更加紧密和高效。

三、Modbus 协议的基本原理

(一)通信模型

  1. 主从结构
    Modbus 协议采用主从通信模式。在一个 Modbus 网络中,通常有一个主设备和多个从设备。主设备负责发起通信请求,从设备则响应主设备的请求并返回相应的数据。这种结构确保了通信的有序性和可控性。例如,在一个工厂的自动化控制系统中,主设备可以是中央监控计算机,它向各个从设备(如 PLC、传感器等)发送查询指令,获取设备的运行状态、传感器数据等信息。
  2. 数据传输方式
    • 串行传输:在早期,Modbus 协议主要通过串行通信接口(如 RS - 232、RS - 485)进行数据传输。RS - 232 适用于短距离、低速率的通信,而 RS - 485 则可以实现较长距离的通信,并且支持多个设备连接在同一条总线上。在串行传输中,数据按照一定的波特率逐位进行传输,通过起始位、数据位、校验位和停止位来保证数据的准确性和完整性。
    • 以太网传输:随着网络技术的发展,Modbus 协议也支持以太网传输。这种方式大大提高了数据传输速率和传输距离,并且可以与企业内部网络进行无缝集成。在以太网传输中,Modbus 数据被封装在 TCP/IP 数据包中进行传输,利用网络的路由和交换功能实现设备之间的通信。

(二)数据格式

  1. 消息帧结构
    Modbus 协议的消息帧包括地址域、功能码、数据域和校验域等部分。地址域用于标识从设备的地址,主设备通过这个地址来选择与之通信的从设备。功能码则指示了本次通信的操作类型,如读取数据、写入数据、诊断等。数据域则包含了具体的数据内容,其长度和格式根据功能码的不同而有所变化。校验域用于检测数据在传输过程中是否出现错误,常见的校验方式有 CRC(循环冗余校验)和 LRC(纵向冗余校验)等。
  2. 数据类型支持
    Modbus 协议支持多种数据类型,包括位(离散量)、字节、字、双字等。例如,对于开关量的控制和监测,使用位数据类型;对于模拟量的传输,则通常使用字或双字数据类型。这种多样化的数据类型支持使得 Modbus 协议能够适应不同类型设备的数据传输需求。

(三)功能码分类与应用

  1. 读取数据功能码
    • 读取线圈状态(功能码 01):用于读取从设备中的离散量输出线圈的状态,如继电器的开关状态等。主设备发送请求后,从设备返回相应线圈的状态信息,以二进制形式表示。
    • 读取输入状态(功能码 02):读取从设备的离散量输入状态,如传感器的输入信号等。这些输入状态不能被主设备直接控制,只能进行读取操作。
    • 读取保持寄存器(功能码 03)和读取输入寄存器(功能码 04):用于读取从设备中的各类寄存器数据,如温度、压力、流量等模拟量数据。保持寄存器可以由主设备进行写入操作,而输入寄存器通常用于只读的数据采集。
  2. 写入数据功能码
    • 写入单个线圈(功能码 05):主设备可以通过这个功能码来控制从设备的离散量输出线圈的状态,将其设置为 ON 或 OFF。
    • 写入多个线圈(功能码 15):用于一次性写入多个离散量输出线圈的状态,提高数据写入的效率。
    • 写入单个寄存器(功能码 06)和写入多个寄存器(功能码 16):用于向从设备的保持寄存器中写入数据,如设置设备的参数、控制指令等。
  3. 诊断和特殊功能码
    • 诊断功能(功能码 08):从设备可以通过这个功能码向主设备返回自身的诊断信息,如设备的状态、通信错误等,以便主设备进行故障排查和监控。
    • 查询从设备标识(功能码 11):主设备可以使用这个功能码来获取从设备的相关信息,如设备型号、版本号等,有助于系统的管理和维护。

四、Modbus 协议的优势与特点

(一)开放性与兼容性

  1. 开放标准
    Modbus 协议是一种开放的标准协议,这意味着任何人都可以免费获取和使用该协议的规范。厂家不需要支付高额的授权费用,这大大降低了设备的开发成本。同时,开放的标准也吸引了众多的开发者和研究人员参与到 Modbus 协议的应用和改进中来,促进了协议的不断发展和完善。
  2. 广泛的兼容性
    由于 Modbus 协议的通用性,几乎所有的工业自动化设备制造商都支持该协议。不同品牌、不同类型的设备可以通过 Modbus 协议实现互联互通,无需进行复杂的协议转换。这种兼容性使得企业在构建工业自动化系统时,可以更加灵活地选择设备,降低了系统集成的难度和成本。

(二)简单易用

  1. 简洁的协议结构
    Modbus 协议的设计非常简洁明了,易于理解和实现。它的消息帧结构简单,功能码定义清晰,不需要复杂的编程和配置即可实现设备之间的通信。对于工程师来说,能够快速掌握 Modbus 协议的使用方法,减少开发和调试的时间。
  2. 易于集成
    无论是在硬件还是软件层面,Modbus 协议都很容易集成到现有的工业自动化系统中。在硬件方面,大多数微控制器和通信芯片都提供了对 Modbus 协议的支持,开发人员只需进行简单的配置即可实现通信功能。在软件方面,各种编程语言都有相应的 Modbus 库和工具,方便开发人员进行应用程序的开发。

(三)可靠性与高效性

  1. 可靠的数据传输
    Modbus 协议采用了多种错误检测和纠错机制,如校验位、超时重传等,确保了数据在传输过程中的准确性和可靠性。即使在恶劣的工业环境中,如电磁干扰、高温、高湿度等条件下,Modbus 协议也能够稳定地工作,保证数据不丢失、不被篡改。
  2. 高效的数据处理
    Modbus 协议以其高效的数据处理能力而著称。它能够快速地响应主设备的请求,并及时返回数据。通过优化的数据格式和通信机制,减少了数据传输的延迟和开销,提高了系统的实时性和响应速度。在大规模的工业自动化系统中,Modbus 协议能够同时处理多个设备的通信请求,保证系统的高效运行。

五、Modbus 协议的应用场景

(一)工业自动化生产

  1. 制造业生产线
    在汽车制造、电子制造等制造业领域,Modbus 协议广泛应用于生产线的自动化控制。通过 Modbus 协议,PLC 可以与各种传感器、执行器、机器人等设备进行通信,实现生产过程的自动化监控、调度和控制。例如,在汽车生产线上,PLC 可以通过 Modbus 协议读取传感器的数据,判断零部件的位置和状态,控制机器人进行装配操作,确保生产线的高效、准确运行。
  2. 过程自动化
    在化工、石油、电力等行业的过程自动化中,Modbus 协议也发挥着重要作用。它用于连接各种仪表、控制器和执行机构,实现对生产过程中的温度、压力、流量、液位等参数的实时监测和控制。例如,在炼油厂中,通过 Modbus 协议将分散在各个区域的压力传感器、温度传感器等设备的数据采集到中央控制系统,根据预设的工艺参数进行自动化调节,保证生产过程的安全、稳定和高效。

(二)智能建筑与能源管理

  1. 智能建筑系统
    在智能建筑领域,Modbus 协议用于实现建筑自动化系统(BAS)的集成。它可以连接空调系统、照明系统、电梯系统、安防系统等各种设备,实现对建筑物内设备的集中监控和管理。通过 Modbus 协议,管理人员可以根据实际需求对建筑内的环境参数进行调节,实现节能降耗和提高舒适度的目标。例如,在智能办公大楼中,可以通过 Modbus 协议控制空调系统的温度和风速,根据室内人员的分布情况自动调节照明亮度,提高能源利用效率。
  2. 能源管理系统
    在能源管理方面,Modbus 协议可以将各种能源计量设备(如电表、水表、燃气表)、分布式能源设备(如太阳能板、风力发电机)以及能源存储设备(如电池组)连接起来,实现能源数据的采集、分析和管理。通过对能源数据的实时监测和分析,可以优化能源的分配和使用,降低能源消耗和成本。例如,在一个工业园区的能源管理系统中,通过 Modbus 协议采集各个企业的能源消耗数据,进行综合分析和调度,实现能源的合理利用。

(三)其他领域应用

  1. 交通运输
    在交通运输领域,Modbus 协议可以用于智能交通系统中的设备通信,如交通信号灯控制、道路监控设备、车辆检测设备等。通过 Modbus 协议实现这些设备之间的数据共享和协同工作,提高交通管理的效率和安全性。
  2. 农业自动化
    在农业领域,Modbus 协议可应用于温室自动化控制、灌溉系统控制、农产品加工设备控制等方面。通过连接传感器和执行器,实现对农业生产环境和设备的远程监控和管理,提高农业生产的智能化水平和生产效率。

六、Modbus 协议面临的挑战与发展趋势

(一)面临的挑战

  1. 安全性问题
    随着工业互联网的发展,Modbus 协议的安全性问题日益凸显。由于 Modbus 协议在设计之初主要考虑的是通信的可靠性和效率,对安全性的重视程度相对不足。因此,它容易受到网络攻击,如数据篡改、恶意指令注入、拒绝服务攻击等。这些安全威胁可能会导致工业系统的故障、生产停滞甚至安全事故。
  2. 性能瓶颈
    在一些对实时性和大数据量传输要求较高的应用场景中,Modbus 协议可能会面临性能瓶颈。例如,在高速自动化生产线或大规模分布式控制系统中,需要快速处理和传输大量的数据,Modbus 协议的传输速率和数据处理能力可能无法满足需求。
  3. 与新兴技术的融合
    随着物联网、大数据、人工智能等新兴技术在工业领域的广泛应用,Modbus 协议需要与这些技术进行融合和创新。然而,由于 Modbus 协议的传统架构和功能限制,在与新兴技术的融合过程中可能会遇到一些技术难题和兼容性问题。

(二)发展趋势

  1. 安全增强
    为了应对安全性问题,未来的 Modbus 协议将不断加强安全机制。例如,采用加密技术对数据进行加密传输,防止数据被窃取和篡改;增加身份认证和访问控制功能,只有授权的设备才能进行通信;建立安全监测和预警机制,及时发现和处理安全威胁等。
  2. 性能优化
    通过改进协议的架构和算法,提高 Modbus 协议的传输速率和数据处理能力。例如,采用新的编码方式和数据压缩技术,减少数据传输的开销;优化通信调度机制,提高设备间通信的并发处理能力;支持更高的网络带宽和更先进的通信技术,如 5G 通信等。
  3. 与新兴技术融合
    积极探索与物联网、大数据、人工智能等新兴技术的融合应用。例如,通过与物联网平台的对接,实现 Modbus 设备与云端的互联互通,拓展设备的管理和应用范围;利用大数据分析技术对 Modbus 设备产生的数据进行深度挖掘和分析,实现设备的预测性维护和智能决策;将人工智能算法应用于 Modbus 控制系统,实现自动化生产过程的智能优化和自适应控制。

七、结论

Modbus 协议作为工业自动化领域的重要通信协议,已经走过了几十年的发展历程。它以其开放性、兼容性、简单易用、可靠性和高效性等优势,在工业生产、智能建筑、能源管理等众多领域得到了广泛的应用。然而,随着技术的不断发展和应用场景的日益复杂,Modbus 协议也面临着一些挑战。但通过不断的技术创新和发展,如加强安全性、优化性能、与新兴技术融合等,Modbus 协议将继续在工业自动化领域发挥重要作用,为实现工业智能化、高效化发展提供有力的支持。在未来的工业互联网时代,Modbus 协议有望不断演进和完善,适应新的发展需求,为构建更加智能、高效、安全的工业生态系统贡献力量。

相关文章:

Modbus 协议:工业自动化领域的通信脊梁

一、引言 在当今工业自动化的舞台上,数据的准确传输和设备间的有效通信是实现高效生产、精准控制的关键。Modbus 协议作为一种应用广泛、历史悠久的通信协议,在工业领域发挥着举足轻重的作用。从工厂的生产线到智能建筑的控制系统,从能源管理…...

函数的力量:掌握C语言的基石

目录 前言 标准库:C语言的百宝箱 头文件:库函数的藏宝图 实例分析:计算平方根的sqrt函数 功能描述 头文件包含的重要性 库函数文档的一般格式 自定义函数:释放你的编程创造力 函数的语法形式 函数的比喻 函数的举例 简化…...

U-Boot的移植流程

U-Boot的简化版启动流程: 1、设置状态寄存器 cpsr ,使CPU进入 SVC 特权模式,并且禁止 FIQ 和 IRQ; 2、关闭看门狗、中断、MMU、Cache; 3、初始化部分寄存器和外设(时钟、串口、Flash、内存)&…...

xRDP – 在 Ubuntu 18.04、20.04、22.04、22.10、23.04(脚本版本 1.4.7)上轻松安装 xRDP

最新脚本Repository | c-nergy.be 概述 到目前为止,您应该知道 xrdp-installer 脚本旨在简化 xRDP 在 Ubuntu 操作系统上的安装和配置后操作。xRDP 是一款在 Linux 上启用远程桌面服务的软件。这意味着 Windows 用户可以使用他们的远程桌面客户端 (mst…...

[Linux网络编程]04-多进程/多线程并发服务器思路分析及实现(进程,信号,socket,线程...)

一.思路 实现一个服务器可以连接多个客户端,每当accept函数等待到客户端进行连接时 就创建一个子进程; 核心思路:让accept循环阻塞等待客户端,每当有客户端连接时就fork子进程,让子进程去和客户端进行通信,父进程用于…...

《OpenCV计算机视觉》—— 年龄与性别预测

结合以下链接中的文章有助于理解此篇案例: OpenCV中的 cnn 模块 https://blog.csdn.net/weixin_73504499/article/details/142965441?spm1001.2014.3001.5501 此案例是通过使用OpenCV中的cnn模块来调用别人已经训练好的深度学习模型,此篇案例中用到了…...

详解23种设计模式——第一部分:概述+创建型模式

目录 1. 概述 2. 创建型模式 2.1 简单(静态)工厂模式 2.1.1 介绍 2.1.2 实现 2.2 工厂模式 2.3 抽象工厂模式 2.4 单例模式 2.4.1 饿汉模式 2.4.2 懒汉模式 2.4.3 线程安全的懒汉式 2.4.4 DCL单例 - 高性能的懒汉式 2.5 建造者模式 2.6 原…...

semi-Naive Bayesian(半朴素贝叶斯)

semi-Naive Bayesian(半朴素贝叶斯) 引言 朴素贝叶斯算法是基于特征是相互独立这个假设开展的(为了降低贝叶斯公式: P ( c ∣ x ) P ( c ) P ( x ∣ c ) P ( x ) P(c|x) \frac {P(c)P(x|c)}{P(x)} P(c∣x)P(x)P(c)P(x∣c)​中后验概率 P …...

大语言模型(LLM)入门级选手初学教程

链接:https://llmbook-zh.github.io/ 前言: GPT发展:GPT-1 2018 -->GPT-2&GPT-3(扩大预训练数据和模型参数规模)–> GPT-3.5(代码训练、人类对齐、工具使用等)–> 2022.11 ChatG…...

HTML 实例/测验之HTML 基础一口气讲完!(o-ωq)).oO 困

HTML 基础 非常简单的HTML文档 <!DOCTYPE html> <html><head><title>页面标题(w3cschool.cn)</title></head><body><h1>我的第一个标题</h1><p>我的第一个段落。</p></body> </html> 输出&a…...

c语言基础程序——经典100道实例。

c语言基础程序——经典100道实例 001&#xff0c; 组无重复数字的数002&#xff0c;企业发放的奖金根据利润提成003&#xff0c;完全平方数004&#xff0c;判断当天是这一年的第几天005&#xff0c;三个数由小到大输出006&#xff0c;输出字母C图案007&#xff0c;特殊图案008&…...

火星求生CE修改金钱,无限资金

由于火星求生前期没有资金非常难玩&#xff0c;想通过修改资金渡过前期&#xff0c;网上找了一圈修改器&#xff0c;只有修改无限声望和无限科研&#xff0c;就是没有无限资金&#xff0c;于是自己用CE修改 教程 首先查看自己资金是多少M&#xff0c;如下图我是22430M资金&…...

linux 内存管理-slab分配器

伙伴系统用于分配以page为单位的内存,在实际中很多内存需求是以Byte为单位的,如果需要分配以Byte为单位的小内存块时,该如何分配呢? slab分配器就是用来解决小内存块分配问题,也是内存分配中非常重要的角色之一。 slab分配器最终还是由伙伴系统分配出实际的物理内存,只不过s…...

docker-compose部署gitlab(亲测有效)

一.通过DockerHub拉取Gitlab镜像 docker pull gitlab/gitlab-ce:latest 二.创建目录 mkdir -p /root/tool/gitlab/{data,logs,config} && cd /root/tool/gitlab/ 三.编辑DockerCompose.yaml文件 vim /root/tool/gitlab/docker-compose.yml version: "3&quo…...

Leetcode 赎金信

利用hash map做 java solution class Solution {public boolean canConstruct(String ransomNote, String magazine) {//首先利用HashMap统计magazine中字符频率HashMap<Character, Integer> magazinefreq new HashMap<>();for(char c : magazine.toCharArray())…...

S7--环境搭建基本操作

1.修改蓝牙名称和地址 工程路径:$ADK_ROOT\adk\src\filesystems\CDA2\factory_default_config\ 在subsys7_config5.htf中 DeviceName = "DEVICE_NAME“ # replace with your device name BD_ADDRESS=[00 FF 00 5B 02 00] # replace with your BD address 2.earbud工程修改…...

webAPI中的排他思想、自定义属性操作、节点操作(配大量案例练习)

一、排他操作 1.排他思想 如果有同一组元素&#xff0c;我们想要某一个元素实现某种样式&#xff0c;需要用到循环的排他思想算法&#xff1a; 1.所有的元素全部清除样式 2.给当前的元素设置样式 注意顺序能不能颠倒&#xff0c;首先清除全部样式&#xff0c;再设置自己当前的…...

101、QT摄像头录制视频问题

视频和音频录制类QMediaRecorder QMediaRecorder 通过摄像头和音频输入设备进行录像。 注意: 使用Qt多媒体模块的摄像头相关类无法在Windows平台上进行视频录制&#xff0c;只能进行静态图片抓取但是在Linux平台上可以实现静态图片抓取和视频录制。 Qt多媒体模块的功能实现是依…...

FairGuard游戏加固全面适配纯血鸿蒙NEXT

2024年10月8日&#xff0c;华为正式宣布其原生鸿蒙操作系统 HarmonyOS NEXT 进入公测阶段&#xff0c;标志着其自有生态构建的重要里程碑。 作为游戏安全领域领先的第三方服务商&#xff0c;FairGuard游戏加固在早期就加入了鸿蒙生态的开发&#xff0c;基于多项独家技术与十余年…...

鲸信私有化即时通信如何平衡安全性与易用性之间的关系?

即时通信已经成为我们生活中不可或缺的一部分。从日常沟通到工作协作&#xff0c;每一个信息的传递都承载着信任与效率。然而&#xff0c;随着网络安全威胁日益严峻&#xff0c;如何在享受即时通信便捷的同时&#xff0c;确保信息的私密性与安全性&#xff0c;成为了摆在我们面…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008&#xff1a;是version产品的大版本。 R006&#xff1a;是release产品特性版本。 C009&#xff1a;是通用版 B0014&#xff1a;是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存&#xff1a;1GB 以上 硬盘&#xf…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能

指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...