modbus 通信协议介绍与我的测试经验分享

1、简介

Modbus 协议是一种通信协议,用于工业自动化系统中的设备间通信。该协议最初由 Modicon 公司开发,并于 1979 年发布。
Modbus 协议通过串行通信格式进行通信,在物理层上支持 RS-232、RS-422 和 RS-485 等多种通信方式。在协议层面,Modbus 协议分为应用层、数据链路层和物理层。
应用层定义了 Modbus 消息的格式和内容,包含功能码、数据地址、数据长度以及数据内容等信息。数据链路层则负责传输 Modbus 消息,包括帧起始符、帧结束符、校验位等。物理层则定义了消息的物理传输方式,如电气特性、传输速率等。
Modbus 协议广泛应用于工业自动化系统中的各种设备之间的通信,如 PLC、传感器、伺服控制器等。它已成为一个通用的标准,被广泛采用和支持。
RS-485 通信距离可以达到 1200 米,但实际距离取决于许多因素,例如通信速度、电缆质量、环境噪声和阻抗匹配等。在高速通信和长距离通信的情况下,建议采用特殊的通信线缆并添加信号放大器以提高通信质量。此外,在布置电缆时要注意避免电缆与强电设备或其他干扰源的交叉干扰。
注释:下文描述主机(上位机),从机(下位机)

2、应用场景

目前大部分工业产品,串口有线通信基本上使用 Modbus 协议 RS-485 通信方式,实现设备与设备之间数据传输;设备与设备直接接线,接线方式很多,比如树型接线,星型接线,推荐方式为 “手拉手接线(菊花链接法)”,应用方案和场景很多,需要根据实际业务设定,以下简单介绍,熟悉的应用场景。
1、主控和线控模式:主控作为 “主”,线控作为 “从”,主控自动查询线控状态;
2、从机设备可以为同类产品,也可以不同类产品,举例子:使用 1-8 从机为温度控器,9-15 从机为混水控制器,16-20 为新风控制器等

繁杂的应用场景:

遇到这样的复杂系统测试时,首先不要慌张,先查看各个产品的通信协议,逐步拆解到每一个设备,进行单元测试,确保每一部分的功能正常和数据正常;比如首先使用 modbus poll 模拟主机设备,测试每一个设备功能是否正常,数据上报格式是否正常;再次使用 modbus Slave 模拟从机设备,查看设备实际运行逻辑是否正常,获取从机数据显示是否正常。如果在集成测试时,遇到问题时,可以使用 SSCOM 软件,查看主从机直接通信情况。

3、RS-485 通信协议基础

一、基础知识

RS485 是一个定义平衡数字多点系统中的驱动器和接收器的电气特性的标准,该标准由电信行业协会和电子工业联盟定义。使用该标准的数字通信网络能在远距离条件下以及电子噪声大的环境下有效传输信号。RS-485 使得连接本地网络以及多支路通信链路的配置成为可能。
RS485 有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,很多采用的是两线制接线方式,这种接线方式为总线式拓扑结构,在同一总线上最多可以挂接 256 个节点,挂最多少节点,决定在于芯片。
在 RS485 通信网络中一般采 用的是主从通信方式,即一个主机带多个从机。
RS485 硬件工具:

二、Modbus 协议

Modbus 协议可以说是工业自动化领域应用最为广泛的通讯协议,因为他的开放性、可扩充性和标准化使它成为一个通用工业标准。有了它,不同厂商的产品可以简单可靠的接入网络,实现系统的集中监控,分散控制功能。
在串行通信中,用 “波特率” 来描述数据的传输速率。国际上规定了一个标准波特率系列:110、300、600、1200、1800、2400、4800、9600、14.4Kbps、19.2Kbps、28.8Kbps、33.6Kbps、56Kbps。例如:9600bps,指每秒传送 9600 位,包含字符的数位和其它必须的数位,如起始位、停止位和奇偶校验位等。
编码系统:8 位二进制,十六进制 0-9,A-F
数据位: 1 起始位
8 位数据,低位先送
奇/偶校验时 1 位;无奇偶校验时 0 位
带校验时 1 位停止位;无校验时 2 位停止位
错误校验区:循环冗余校验 (CRC)
从站地址设置:信息地址包括 2 个字符 (ASCII) 或 8 位 (RTU),有效的从机设备地址范围 0-247(十进制)。

三、Modbus 的功能码


一般使用到功能码 03、06、16。

03(0x03) 功能码——查询多个寄存器

下文中所示例的发送和接收数据,其格式全部为 16 进制,例如 01 为 0x01,C5 为 0xC5
集成系统发送: 01 03 00 00 00 06 C5 C8
集成系统接收: 01 03 0C 00 00 00 02 00 19 00 01 00 00 00 00 3F 11
集成系统发送码含义:
第 1 字节(01)——空调网关设备地址(MODBUS 定义为 Slave ID),出厂默认为 01。如果是 00,表示广播
第 2 字节(03)——MODBUS 功能码,其意义为读取一系列寄存器的值。
第 3,4 字节(00 00)——从 00 00 位置开始读取一系列寄存器的值
第 5,6 字节(00 06)——从 第 3,4 字节指定的寄存器开始,共读取 00 06 个寄存器。
第 7,8 字节(C5 C8)——该帧数据的校验字节(校验方式:CRC16)
集成系统接收码含义:
第 1 字节(01)——空调网关设备地址(MODBUS 定义为 Slave ID)
第 2 字节(03)——MODBUS 功能码。
第 3 字节(0C)——对应于查询指令,空调网关共返回 0C(十进制:12)个字节的数据
第 4~15 字节 —— 空调网关返回 12 字节的被读取数据
第 16,17 字节( 3F 11)——该帧数据的校验字节(校验方式:CRC16)

06(0x06) 功能码——操作单个寄存器

01 06 0F A0 00 01 4B 3C --- 开启
01 06 0F A0 00 01 4B 3C --- 回复开启
集成系统发送码含义:
第 1 字节(01)——空调网关设备地址(MODBUS 定义为 Slave ID)
第 2 字节(06)——MODBUS 功能码,其意义为设定一个寄存器的值。
第 3,4 字节(0F A0)——从 0F A0 位置开始设定一个寄存器的值。
第 5,6 字节(00 01)——将 第 3,4 字节所指定的寄存器写入值 00 01
第 7,8 字节(4B 3C)——该帧数据的校验字节(校验方式:CRC16)
*集成系统接收码含义: *
第 1 字节(01)——空调网关设备地址(MODBUS 定义为 Slave ID)
第 2 字节(06)——MODBUS 功能码,其意义为设定一个寄存器的值。
第 3,4 字节(0F A0)——从 0F A0 位置开始设定一个寄存器的值。
第 5,6 字节(00 01)——将 第 3,4 字节所指定的寄存器写入值 00 01
第 7,8 字节(4B 3C)——该帧数据的校验字节(校验方式:CRC16)

16(0x10) 功能码——操作多个连续寄存器

01 10 0F A0 00 04 08 00 01 00 04 00 14 00 03 C0 B1
--- 同时设定 4 项参数 (开启 送风 20 度 高风) 其中温度和风向无效
01 10 0F A0 00 04 C2 FC --- 回复 4 项变更
集成系统发送码含义:
第 1 字节(01)——空调网关设备地址(MODBUS 定义为 Slave ID)
第 2 字节(10)——MODBUS 功能码,其意义为一次设定多个寄存器的值。
第 3,4 字节(0F A0)——从 0F A0 位置开始一次设定多个寄存器的值。
第 5,6 字节(00 04)——从第 3,4 字节指定位置开始,一次设定 4 个寄存器的值。
第 7 字节(08)——要设定写入的总字节数为 8( 4 个寄存器 x 2 字节/寄存器)
第 8~15 字节 ——要设定的 4 个寄存器的具体值,第 8,9 字节写入第一个寄存器,第 10, 11 字节写入第 2 个寄存器,第 12,13 字节写入第 3 个寄存器,第 14,15 字节写入第 4 个寄存器
第 16,17 字节(C0 B1)——该帧数据的校验字节(校验方式:CRC16)
集成系统接收码含义:
第 1 字节(01)——空调网关设备地址(MODBUS 定义为 Slave ID)
第 2 字节(10)——MODBUS 功能码,其意义为一次设定多个寄存器的值。
第 3,4 字节(0F A0)——从 0F A0 位置开始,一次设定多个寄存器的值。
第 5,6 字节(00 04)——从第 3,4 字节指定位置开始,一次设定 4 个寄存器的值。
第 7,8 字节(C2 FC)——该帧数据的校验字节(校验方式:CRC16)
PS:只支持修改连续的寄存器地址值;

4、测试工具介绍

一、SSCOM 软件使用分享

主要用途:通过 RS485 控制设备或者监听同路上接 N 个从机设备与主机通信
缺点:需要熟悉 modbus 协议内容,分析数据比较麻烦,需要将看到 16 进制数转为 10 进制数;


配置文件,查看产品开发协议文档
举例子:
端口号(Port):选择连接电脑 RS485 设备端口号;
波特率(Baud rate):9600,4800
数据位(Data bits): 8 位
停止位(Stop bits):1
校验(Parity):N
步骤 1:连接 RS485 工具的端口
步骤 2:设置 modbus 协议的环境参数
步骤 3:选择连接从机设备的波特率,如果手中的设备和设置的波特率不一致,会导致不能正常通信;
步骤 4:打开串口,连接设备,若提示以下信息,说明端口被占用等;


步骤 5:发送指令内容;详情查看 Modbus 的功能码讲解
举例子:02 06 10 01 00 00 DC F9 向从机地址 2,1001(开关机),设置 00(关机)
PS:工具功能比较多,不一一讲解,详情自己探索:比如 “扩展” 功能自动定时发送不同指令参数;

二、modbus Poll 软件使用分享


主要用途:代替为主机,时刻查询从机设备状态,并且实时展现
优点:参数值默认转为十进制,查看参数通俗易懂,设置参数值操作简单,支持同时查询多个设备情况,参数表支持保存下次继续使用;
缺点:设备只能为从机,若设备为主机协议,需使用 modbus Slave 软件工具测试;

工具介绍:

1、工具栏:
新键配置表、导入配置表、保存配置表、打印配置表、取消、配置从机参数、断开连接、连接设备、功能码区域(05/06/15/16/17/22/23)、TC、日志查询
2、当前寄存器地址:显示为十进制数
3、寄存器地址描述,支持自定义
4、寄存器的读取参数值

操作介绍:

第一步:设置参数值

第二步:设置从机地址和初始寄存器地址,读取参数数量

点击 Setup →Read/Write Definition


Slave ID: 当前设备的 RS485 地址,2 代表当前设备 RS485 地址为 2
Address:读取设备的初始地址,填写十进制地址,比如初始地址十六进制为 1001,转成十进制为 4097
Quantity:需读取参数数量,若超过设备参数范围,会导致参数异常的现象
ScanRate :查询参数的速度值,默认为 1000ms(此参数可能影响到设备的丢包现象)
TX :表示总共发送多少次查询指令
Err:表示返回错误值次数(丢包次数)
ID:表示当前的设备 RS485 地址
F:表示功能吗:03
SR:表示查询速率:1000ms

第三步:修改参数值

双击参数值后,会弹窗显示以下内容


举例子:修改设备开关机状态,双击开关机地址,在 Value 中填写 0-关机或者 1-开机,点击 Send 发送指令。06 和 16 分别表示功能码,需要查看设备是否支持 06 和 16 功能码。

查看日志:

在工具栏中,点击日志按钮,支持暂停日志和保存日志功能,若需要分析日志内容,可以返回查看基础讲解的 Modbus 的功能码。
日志显示数据为 16 进制数,因此需要转换为 10 进制数

通信日志监听:

在日常工作中,总是想着监听一些参数值,在一段时间中时刻变化,但又不想着时刻去记录这些数据,此软件提供日志系统,直接输出到 Excel 或者 Text;
操作步骤:Setup →Excel log 或者 log

参数值显示类型切换:

在日常工作中,遇到参数为 Bit 类型参数,如果使用十进制数查看比较麻烦,需要转换为二进制,软件支持显示类型转换;如果参数为 Bit 类型,请使用 Binary 类型

三、Modbus Slave 软件使用分享


主要用途:模拟从机设备,并且支持同时模拟多个从机设备;
优点:参数值默认转为十进制,查看参数通俗易懂,设置参数值操作简单,支持同时模拟多个从机设备情况,参数表支持保存下次继续使用;

工具介绍


1、工具栏:
新键配置表、导入配置表、保存配置表、打印配置表、配置从机参数、断开连接、连接设备
2、状态栏:
ID=10 表示模拟从机地址为 10 的设备
F = 03 表示功能码为 03


01 Coil Status 寄存器地址用于获取数字输出(Coil)的状态信息。这些数字输出通常是硬件上的继电器或开关等,可以通过 Modbus 协议进行控制。读取 01 Coil Status 寄存器地址将返回一个位图(bitmap),每个位代表一个数字输出的状态,通常为 0 或 1,表示关闭或打开。
02 Input Status 寄存器地址用于获取数字输入(Input)的状态信息。这些数字输入通常是传感器或其他设备提供的信号,可以通过 Modbus 协议获取。读取 02 Input Status 寄存器地址将返回一个位图,每个位代表一个数字输入的状态,通常为 0 或 1,表示低电平或高电平。
03 Holding Register 寄存器地址用于读取和写入模拟量输出(Holding Register)的值。这些模拟量输出通常是一些设备的状态量或控制量,可以通过 Modbus 协议进行读写操作。读取 03 Holding Register 寄存器地址将返回一个字(16 位),表示模拟量输出的当前值;写入 03 Holding Register 寄存器地址将设置模拟量输出的目标值。
04 Input Registers 寄存器地址用于读取模拟量输入(Input Registers)的值。这些模拟量输入通常是传感器或其他设备提供的模拟量信号,可以通过 Modbus 协议获取。读取 04 Input Registers 寄存器地址将返回一个字(16 位),表示模拟量输入的当前值。
3、寄存器地址描述,支持自定义
4、寄存器的写入参数值,若遇到写入的值为 Bit 类型时,选择需要参数值,右键选择 “Format” 改成 Binary


3、参数设置:


Slave ID:表示模拟从机地址
Address:表示初始地址
Quantity: 表示模拟 39 位数据
Fit ot Quantity:表示垂直显示数据

查看日志:

在工具栏 “Display“,点击 communication Traffic,支持暂停日志和保存日志功能,若需要分析日志内容,可以返回查看基础讲解的 Modbus 的功能码。
日志显示数据为 16 进制数,因此需要转换为 10 进制数

5、测试事项介绍

Modbus RS-485 通信测试方法和 APP 测试相似,比如稳定性测试,功能逻辑,参数边界值、等价值测试等;
1、RS-485 参数值输入范围仅支持-32768 到 32767 整数范围;
2、在 RS-485 修改参数时,需要结合参数公式转换,比如温度值上报 225,显示端应显示为 “22.5”℃
3、主要协议点位计量单位,比如协议中单位为 W,但是显示端(APP 或者设备)需要显示为 kW,因此 10000W,最终应该显示为 10kW
4、遇到复杂的设备系统时,比如多设备直接互相通信时,先确认每一个对接产品的功能是否正常,再组装成完整系统测试;

一、基本功能测试

产品 RS-485 协议文档中,规定当前值的类型和参数范围如下所示:
PS:DIGI1,TEMP1 定义由自己公司制定,没有统一标准
DIGI1:表示无符号 byte,单位 1,显示 123 时,数据传输是 123。
TEMP1:有符号 byte,0.1℃分辨率,公式:T*10,温度范围为-30~97℃(显示 25 度时,其协议传输的数据根据上述公式是 250;显示-25 度时,其协议传输的数据是-250;bit15 为 1 时表示负数,bit15 为 0 时,表示整数;),当该值为 32767 时表示对应传感器故障。

| Address
(10 进制) | Function | Content | | Byte length | mode | Description | Remark |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 1001 | 03/16/06 | 开关机 | | 双字节 | 读/写 | 0-关机/1-开机 | DIGI1 |
| 1002 | 03/16/06 | 设定温度 | | 双字节 | 读/写 | 5.0℃~50.0℃ | TEMP1 |

举例子:
1、设定温度类型为 “TEMP1” 类型,若需要设置温度为 25.5℃,需要在协议中输入 “255”,并同时查看界面显示值为 25.5℃;
2、设定开关机类型为 “DIGI1” 类型,若设置 1-开机,则输入 “1”,并查看界面确认设备是否开机;
3、超过范围值输入,需求不一样,呈现效果不一样;
比如需求为超过范围值时,设置成为范围值最大或者最小值,比如设定温度最小值为 5℃,最大值为 50℃,因此输入 40(4℃),会直接设定为 50(5℃),若输入为 611(61.1℃),会设定为 500(50℃);
比如需求为超过范围值时,设置成为范围值不处理,比如当前设定温度值为 200(20℃),输入 40(4℃),不接收,依然为 200(20℃);

二、通信丢包率测试

我司测试标准,查看 Err 标识数,通信在 1/100000 丢包率;

三、稳定性测试

方法一、设备为从机情况下,通过 SSCOM 软件中 “扩展” 功能,设定循环执行的指令
勾选循环发送,会无限循环发送指令
发送字符串内容,可以为读取 03 指令,写入 06 或者 16 指令,同时内容为异常值和正常值

方法二、通过编写自动化脚本,循环发送指定指令内容(后期讲解)

四、测试遇到问题及解决方案

1、短距离通信时,遇到丢包率比较高的现象

原因分析:
一、通信代码逻辑问题,初代产品时,遇到过此现象;
二、产品周围存在信号干扰;
解决方案:
一、优化代码逻辑,比如将响应时间变短;
二、使用双层的屏蔽线,或者直接将信号干扰源关闭

2、设备手拉手通信,长距离时遇到远距离的设备,通信异常

原因分析:
通信信号随着距离增加性能将降低;
解决方案:
在 485 通信距离超过 300 米的情况下,要在 485 通讯的开始端和结束端增加终端电阻或者在仅一端加电阻。


注释:图片来源电子发烧友

3、接线时遇到烧掉 RS485 芯片

原因分析:
RS485-A 和 RS485-B 接到供电口,直接烧坏芯片
解决方案:
接线时,主要 RS485-AB 口不能接到供电口,并且 RS485-A 接对应 RS485-A 口,RS485-B 接对应 RS485-B 口

4、测试业务功能时,需要记录某段时间内,点位数据变化情况

解决方案:
如果设备为从机时,使用 modbus Poll 软件中 “通信日志监听” 功能,会输出 exlce 表或者 Log 表,同时带有时间标识;比如在测试睡眠功能时,需求是每个小时都会将设定温度调节,因此使用此功能,第二天过来,将表格过滤分析,就知道测试结果。

5、遇到过主机设备,接 16 台设备超过设备会通信异常现象,都是有一些产品可以支持 32 台设备通信

原因分析:
RS-485 芯片的性能问题
解决方案:
使用高性能的 RS-485 芯片,或者限制设备仅支持设备数量;
对接设备越多,轮询时间越长,用户体验越差;目前我司产品,最多支持 32 台设备联动

6、单主控,多从机,如何让从机每一个状态都与主控同步

一、备份和同步逻辑
二、广播指令机制下发参数
三、定时查询全部设备

7、遇到设备端存在丢包或者不响应的问题

解决方案:主控存在重发机制,比如发送第一包数据,没回应,会触发重发机制,再次发送两次,判定是否 RS-485 在线(断开)

8、设备遇到数据包错位情况

举例子:主控发送 A 数据段查询,从机回应 B 数据内容
解决方案:回应的数据段中,包含当前数据段标识值,比如 A 段包中有某个点位参数中包含 A 标识符;

总结

 感谢每一个认真阅读我文章的人!!!


那么在这里我也精心准备了软件测试、自动化测试的详细资料包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。需要的点击下方名片加入群聊与我一起学习交流。谢谢大家。

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

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

相关文章

Kotlin ArrayList类型toTypedArray转换Array

Kotlin ArrayList类型toTypedArray转换Array data class Point(val x: Float, val y: Float)fun array_test(points: ArrayList<Array<Point>>) {points.forEachIndexed { idx, ap ->ap.forEach {print("$idx $it ")}println()} }fun main(args: Arra…

verilog语法进阶-分布式ram原语

概述 官方提供的原语 RAM16X1S_1 #(.INIT(16h0000) // Initial contents of RAM) RAM16X1S_1_inst (.O(O), // RAM output.A0(A0), // RAM address[0] input.A1(A1), // RAM address[1] input.A2(A2), // RAM address[2] input.A3(A3), // RAM address[3…

pytest之allure测试报告02:allure具体使用方法

一、allure包含的方法 二、allure使用教程 &#xff08;1&#xff09;用例中写入allure方法 allure.epic("数据进制项目epic") allure.feature("手机号模块feature") class TestMobile:allure.story("杭州的手机号story")allure.title("测…

Selenium安装WebDriver:ChromeDriver与谷歌浏览器版本快速匹配_最新版120

最近在使用通过selenium操作Chrome浏览器时&#xff0c;安装中遇到了Chrome版本与浏览器驱动不匹配的的问题&#xff0c;在此记录安装下过程&#xff0c;如何快速找到与谷歌浏览器相匹配的ChromeDriver驱动版本。 1. 确定Chrome版本 我们首先确定自己的Chrome版本 Chrome设置…

如何从众多知识付费平台中正确选择属于自己的平台(明理信息科技知识付费平台)

在当今的知识付费市场中&#xff0c;用户面临的选择越来越多&#xff0c;如何从众多知识付费平台中正确选择属于自己的平台呢&#xff1f;下面&#xff0c;我们将为您介绍明理信息科技知识付费平台相比同行的优势&#xff0c;帮助您做出明智的选择。 一、创新的技术架构&#…

【linux】Debian不能运行sudo的解决

一、问题&#xff1a; sudo: 没有找到有效的 sudoers 资源&#xff0c;退出 sudo: 初始化审计插件 sudoers_audit 出错 二、可用的方法&#xff1a; 出现 "sudo: 没有找到有效的 sudoers 资源&#xff0c;退出" 和 "sudo: 初始化审计插件 sudoers_audit 出错&q…

IDEA中alt enter不显示创建实现类快捷键

alt enter不显示创建实现类快捷键是因为idea中的设置没打开&#xff0c;按照一下设置打开就可以了。 点击setting-->>editor-->>intentions-->>java下的declaration 如下图所示&#xff1a;

【C++干货铺】继承后的多态 | 抽象类

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 多态的概念 多态的定义和实现 多态的定义条件 虚函数 虚函数的重写 特殊情况 协变&#xff08;基类和派生类的虚函数返回值不同&#xff09; 析构函数的重…

深度学习中的预测图片中的矩形框、标签、置信度分别是什么意思。

问题描述&#xff1a;深度学习中的预测图片中的矩形框、标签、置信度分别是什么意思。 问题解答&#xff1a; 目标框&#xff08;Bounding Box&#xff09;&#xff1a; 描述目标位置的矩形边界框。 类别标签&#xff1a; 表示模型认为目标属于哪个类别&#xff08;例如&#…

【Java JVM】实例对象内存布局

当 Java 应用启动后, 基本就是在不断的创建对象, 回收对象的过程中。 而这些创建的对象基本都是存放在应用的堆 (heap) 中, 但是这些对象在堆中又是什么样子的呢? 在这篇文章中, 我们分析一下 Java JVM 中实例对象的内存布局。 在 HotSpot 虚拟机里, 对象在堆内存中的存储布局…

结构体基础全家桶(2)结构体指针

目录 指向结构体类型数据的指针&#xff1a; 指向结构体变量的指针&#xff1a; 创建&#xff1a; 应用&#xff1a; 注意事项&#xff1a; 指向结构体数组的指针 创建&#xff1a; 应用&#xff1a; 注意&#xff1a; 用结构体变量和指向结构体的指针做函数的参数 …

eNSP小实验---(简单混合)

实验目的&#xff1a;实现vlan10 vlan20 172网段用户互访 1.拓扑图 2.配置 PC1 其它同理 SW4 <Huawei> <Huawei>u t m Info: Current terminal monitor is off. <Huawei>sys <Huawei>sys Enter system view, return user view with CtrlZ. [Hua…

深度学习小白学习路线规划

作为深度学习的初学者&#xff0c;以下是一个建议的学习路线&#xff0c;可以帮助你逐步掌握图像分类、目标检测与跟踪、实例分割和姿态估计&#xff1a; 掌握这些&#xff0c;计算机视觉算是入门了&#xff01; 1. 基础知识&#xff1a; 学习Python编程语言&#xff0c;它是…

当在VMware Workstation Pro 中查询不到ens33网卡的IP

在学习中我们经常要去查询ens33的IP&#xff0c;但是有时候会查询不到&#xff0c;今天就遇到了这样的问题并且找到了解决方法 记录一下 ip a 查询不到IP 显示代码为 ens33: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether …

[论文笔记] GAMMA: A Graph Pattern Mining Framework for Large Graphs on GPU

GAMMA: A Graph Pattern Mining Framework for Large Graphs on GPU GAMMA: 基于 GPU 的针对大型图的图模式挖掘框架 [Paper] [Code] ICDE’23 摘要 提出了一个基于 GPU 的核外(out-of-core) 图模式挖掘框架(Graph Pattern Mining, GPM) GAMMA, 充分利用主机内存来处理大型图…

〖大前端 - 基础入门三大核心之JS篇(55)〗- 内置对象

说明&#xff1a;该文属于 大前端全栈架构白宝书专栏&#xff0c;目前阶段免费&#xff0c;如需要项目实战或者是体系化资源&#xff0c;文末名片加V&#xff01;作者&#xff1a;哈哥撩编程&#xff0c;十余年工作经验, 从事过全栈研发、产品经理等工作&#xff0c;目前在公司…

如何禁止孩子在电脑中浏览某些网页?

在使用电脑的过程中&#xff0c;我们会使用浏览器来查看网页。而在孩子使用电脑的过程中&#xff0c;有些网页并不适合孩子查看。因此&#xff0c;我们需要禁止孩子浏览不健康的网页。那么&#xff0c;该如何禁止孩子在电脑中浏览某些网页呢&#xff1f; 定时关机3000简介 定时…

QML 自定义进度条组件开发

一、效果预览 二、介绍&#xff1a; 自定义的QML 屏幕亮度拖动进度条组件CusProgressBar 可跟鼠标移动 更改进度条样式 三、代码 import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.Controls.Material 2.12/***author:Zwj*csdn:来份煎蛋吧*date:2023/12/16*…

如何禁止服务器自动休眠

如何禁止服务器自动休眠 有时候服务器自己休眠&#xff0c;导致系统web站点无法访问&#xff0c;下面是解决办法&#xff01; 禁止服务器自动进入休眠状态的具体方法可能会因使用的Linux发行版而有所不同。以下是一些通用的方法&#xff0c;你可以根据你的系统选择适用的&#…

【机器学习】044_Kaggle房价预测(机器学习模型实战)

参考自《动手学深度学习》中“Kaggle比赛实战&#xff1a;预测房价”一节 一、数据准备 首先从网站上下载要获取的房价数据。 DATA_HUB是一个字典&#xff0c;用来将数据集名称的字符串和数据集相关的二元组一一对应。 二元组包含两个值&#xff1a;数据集的URL和用来验证文…