齐护机器人ModbusRTU RS485转TTL通信模块与ESP32 Arduino通信可Mixly的图形化编程Scratch图形化编程
齐护机器人ModbusRTU RS485-TTL通信模块
一、概念理解
Modbus协议是一种由Modicon公司(现为施耐德电气Schneider Electric)于1979年发表的网络通信协议,旨在实现可编辑逻辑控制器(PLC)之间的通信。
1.1 什么是Modbus RTU?
Modbus RTU是一种串行通信协议,它被广泛用于工业环境中各种电子设备之间的通信。这种协议是Modbus协议家族中的一种,专门设计用于在串行线路上传输数据。
1.2 Modbus RTU的基础概念
串行通信:Modbus RTU使用串行通信方式,即数据在一条线路上一个接一个地传输。这种方式与并行通信相比,虽然速度较慢,但成本更低,且更适合长距离传输。
RS-485接口:Modbus RTU通常使用RS-485接口进行物理连接。RS-485是一种差分信号传输方式,具有抗噪声干扰能力强、传输距离远等优点。
数据包结构:Modbus RTU的数据包由地址域、功能码、数据域和校验码等部分组成。每个部分都有其特定的作用,如地址域用于标识从设备,功能码用于指示要执行的操作等。
1.3 Modbus RTU的工作原理
主从通信模式:Modbus RTU采用主从通信模式,即一个主设备(如PLC)可以与多个从设备(如传感器、执行器等)进行通信。主设备负责发起通信请求,而从设备则根据请求做出响应。
数据请求与响应:当主设备需要读取或写入从设备的数据时,它会发送一个包含地址域、功能码和数据域的数据包给从设备。从设备接收到数据包后,会根据功能码执行相应的操作,并将结果返回给主设备。
校验与错误处理:为了确保数据的准确性,Modbus RTU数据包中包含校验码。当从设备接收到数据包后,会进行校验计算,如果校验结果不正确,则会认为数据包有误,并做出相应的错误处理。
1.4 Modbus RTU的进阶概念
波特率与数据位:波特率是指每秒传输的比特数,它决定了通信的速度。数据位则是指每个数据包中传输的数据比特数。在实际应用中,需要根据设备的性能和通信距离等因素选择合适的波特率和数据位。
奇偶校验与停止位:除了校验码外,Modbus RTU还支持奇偶校验和停止位等错误检测机制。奇偶校验通过在数据位后面添加一位校验位来检测数据是否出错,而停止位则用于标识数据包的结束。
地址分配与设备识别:在Modbus RTU网络中,每个设备都有一个唯一的地址。主设备通过发送包含目标设备地址的数据包来与特定设备进行通信。这种方式使得主设备能够同时与多个从设备进行通信,而不会发生混淆。
1.5 Modbus RTU的实际应用
工业自动化:Modbus RTU被广泛用于工业自动化领域,如PLC与传感器、执行器之间的通信等。通过Modbus RTU协议,PLC可以实时读取传感器的数据,并根据数据做出相应的控制决策。
智能建筑:在智能建筑领域,Modbus RTU也被用于各种智能设备的通信中。例如,智能照明系统、智能安防系统等都可以通过Modbus RTU协议实现数据的传输和控制。
远程监控与维护:通过Modbus RTU协议,还可以实现远程设备的监控和维护。技术人员可以通过网络远程访问设备的数据和状态信息,从而及时发现并解决问题。
1.6 Modbus TCP/IP与Modbus UDP简介
除了Modbus RTU外,Modbus协议家族还包括Modbus TCP/IP和Modbus UDP等版本。它们都是基于以太网的通信协议,具有更高的传输速度和更广泛的适用范围。其中,Modbus TCP/IP利用TCP/IP协议进行数据传输,而Modbus UDP则利用UDP协议的低延迟和低开销特点进行数据传输。这些版本使得Modbus协议能够在更广泛的领域中得到应用。
1.7 工作原理与特点
主从通信:Modbus协议采用主从通信方式,即一个设备作为主设备(Master),负责发起请求,而其他设备作为从设备(Slave),负责响应请求。这种通信模式确保了数据交换的可靠性和有序性。
串行通信:Modbus协议是一种串行通信协议,数据按位依次传输,每位数据占据固定的时间长度,并使用少数几条通信线路完成系统间的信息交换。
帧结构:Modbus协议每发送一次数据就是一个数据帧,每个数据帧都必须符合Modbus的帧结构。帧结构通常包括地址、功能码、数据和校验等部分。
多种传输模式:Modbus协议支持多种传输模式,包括Modbus-RTU、Modbus-ASCII、Modbus-TCP/IP等。其中,Modbus-RTU使用二进制格式进行数据传输,通讯效率更高;Modbus-ASCII使用ASCII码进行数据传输,可读性好但通讯效率更低;Modbus-TCP/IP则是基于以太网的一种通讯方式,具有高速、稳定的特点。
1.8. 物理接口
由于 Modbus 是一种应用层协议,因此任何支持承载数字数据的物理接口都可用于部署 Modbus。然而,由于 Modbus 在工业环境中的普遍性,主要用于 Modbus 的接口类型是最强大的。
RS-232 – RS-232 是一种传统的串行通信接口标准。尽管 USB 等现代串行接口已经取代了它,但许多术语今天仍在使用。由于 RS-232 是一个串行接口,我们可以将其用于 Modbus RTU 和 Modbus ASCII。
RS-485 – 与 RS-232 相比,RS-485 具有更高的速度、更长的电缆,并且信号更强大。基于 RS-485 的 Modbus 可能是部署 Modbus 协议的最流行方式。我们可以使用 Modbus RTU 或 Modbus ASCII。
以太网 – 在大容量数据传输方面,以太网无疑是最好的之一,仅次于光纤。以太网的多功能性使其成为所有行业的最爱。我们几乎可以通过以太网实现任何数据协议。这是封装数据并将其发送到目标的问题。Modbus TCP/IP 专为以太网实施量身定制。
无线 – 只要通信接口允许可靠且可寻址的数据传输和多点方案,它就适用于 Modbus。根据无线链路的能力,可以实现任何模式的 Modbus。然而,由于无线传输和网络的不可预测性和复杂性,各行各业更喜欢有线链路而不是无线链路。
1.9. 协议版本
多年来,随着许多新的物理接口标准的推出,Modbus 协议已被调整以适应这些接口,从而提高通信效率。
Modbus RTU – RTU 代表远程终端单元,主要用于串行通信。串行通信接口包括 UART、RS-485、RS-232 等。在 Modbus RTU 中,数据被分组为单独的帧,并以二进制格式表示。RTU 消息可以是命令或数据(请求/响应)。每个数据帧都以基本 CRC 码结尾,用于检测传输中的错误。
Modbus ASCII – 这类似于 Modbus RTU,不同之处在于所有数据都仅使用 ASCII 字符作为 ASCII 等效项发送。例如,像 153 这样的整数值以三个字符 “1”、“5” 和 “3” 的形式发送,而不是以二进制格式直接表示数字。这样做的好处是,您可以以人类可读的格式查看消息,并且可以轻松调试通信。但作为副作用,在大多数情况下,它使所需的数据带宽增加了一倍。
Modbus TCP/IP – 顾名思义,这是对以太网接口的改编。在这种情况下,利用 TCP/IP 的速度和寻址功能,数据通过以太网电缆作为 TCP/IP 数据包传输。以太网也是一种高效、快速和强大的通信接口,使其成为工业应用的理想选择。
Modbus UDP – TCP/IP 并不是唯一可以在以太网中使用的协议。一些 Modbus 实现利用了 UDP 的低延迟和低开销。
QH modbus 模块物理层是RS-485,协议版本为Modbus RTU 。
1.10. 报文格式
modbus报文包含站号、功能码、数据、和CRC校验码。这里不做详细叙述。
1 功能码
重点关注功能码,通常设备通讯说明书会告诉你读取设备数据所需要的功能码及地址。
功能码 功能说明
01H 读取输出线圈
02H 读取输入线圈
03H 读取保持寄存器
04H 读取输入寄存器
05H 写入单线圈
06H 写入单寄存器
0FH 写入多线圈
10H 写入多寄存器
2 寄存器分类
Modbus协议中一个重要的概念是寄存器,所有的数据均存放于寄存器中。最初Modbus协议借鉴了PLC中寄存器的含义,但是随着Modbus协议的广泛应用,寄存器的概念进一步泛化,不再是指具体的物理寄存器,也可能是一块内存区域。Modbus寄存器根据存放的数据类型以及各自读写特性,将寄存器分为4个部分,这4个部分可以连续也可以不连续,由开发者决定。
数据区块 前缀
线圈 0
离散量输入 1
输入寄存器 3
保持寄存器 4
3 寄存器地址分配
Modbus寄存器地址分配(不同的设备,可访问的地址范围不同,以下是其中一个示例)
寄存器种类 寄存器PLC地址 寄存器Modbus协议地址 简称 读写状态
线圈状态 00001 ~0999 0000H~ FFFFH 0x 可读可写
离散输人状态 10001~ 19999 0000H~ FFFFH 1x 只读
保持寄存器 40001~49999 0000H~ FFFFH 4x 可读可写
输入寄存器 30001~ 39999 0000H~ FFFFH 3x 只读
二、 编程功能块
2.1 图形化编程功能块位置
齐护教育版Mixly:ESP32 Arduino/C02/AIcam/UNO主板:齐护工业应用–>ModbusRTU
Mixly2RC4及以上:ESP32 Arduino 云端库导入【齐护ModbusRTU库】
齐护编程Scratch: ESP32 Arduino 添加扩展–>通讯–>ModbusRTU
2.2 编程功能块说明
2.2.1初始化
Mixly
Scratch
初始化modbusRTU模块,选择串口引脚和串口接口,以及串口参数。这些参数需要与连接在RS-485上所有的设备一致。
序列号:请查看【3.4 序列号】的详细说明。
波特率:串口所使用的波特率,与连接的其它设备一致。
串口参数如 SERIAL_8N1 后三位代表的意义如下:
其中 8表示数据位(modbus固定为8位)
N :无校验 E :偶检验 O :奇校验
1或2表示停止位
2.2.2 写多个
Mixly
Scratch
ModbusRTU 写多个保持寄存器(功能码0x10),在远程设备中写入连续寄存器块,数据变量类型为uint16_t类型的数组。
站号:从站站号
地址:从站寄存器起始地址,地址范围0 – 65535。
数量:要写入寄存器的数量,最多可以写入 123 个连续的 16 位 寄存器。
数据:需要写入的数据,类型为uint16_t类型的数组,数组的长度必须等于或大于写入的数量。
返回:
该函数返回数据含义如下:
正常返回为该指令的功能码
返回-1时为通讯故障,原因可能为以下几点: 发送失败、接收失败、响应与请示地址不同。
当出现其它错误时会将错误代码+100返回,
错误代码如下所示:
0x01 非法功能 (Illegal Function)
0x02 非法数据地址 (Illegal Data Address)
0x03 非法数据值 (Illegal Data Value)
0x04设备故障 (Slave Device Failure)
0x05设备忙 (Acknowledge)
0x06负号应答 (Negative Acknowledge)
0x07内存区保留 (Memory Parity Error)
0x08Gateway路径不存在 (Gateway Path Not Available)
0x0AGateway目标失败 (Target Device Failed to Respond)
如下图所示功能块,所有写多个数据的程序块内参数含义相同。
写多个线圈
Mixly
Scratch
2.2.3 写单个
Mixly
Scratch
ModbusRTU 写单个保持寄存器(功能码0x06),在远程设备中写入连续寄存器块,数据变量类型为uint8_t类型的数据。
站号:同上
地址:同上
数量:同上
数据:同上。
返回:同上
所有写单个数据的程序块内参数含义相同
写单个线圈
Mixly
Scratch
2.2.4 读取功能块
Mixly
Scratch
ModbusRTU读取数据,从远程设备中读取数据到变量中,变量的类型要与功能块上一致。
站号:同上
地址:同上
数量:同上
数据:同上。
返回:同上
2.2.5 通讯超时设置
设置从服务器接收响应的超时时间,在设置时间内如果没有数据到达则表示接收数据完成。默认值50ms(能满足大部分通讯),每种设备的响应时间不尽相同,请设置合适的超时时间以达到最高效率。设置时间过长会影响收发效率,时间过短可能会造成通讯错误。
Mixly
Scratch
三、 模块介绍
3.1 模块功能介绍
齐护RS485转TTL模块
3.3V与5.0V电源、信号完美兼容的RS485自动流向控制模块无需“收-发”控制,使用本模块跟您操作串口一样简单 (1)、3. 3V与5.0V信号兼容 (2)、采用原装进口芯片,工业级设计,抗干扰能力强同时采用更为有效的485防雷设计,可在工业现场及野外恶劣的环境下使用,工作温度为-40°C至+85°C,传输距离可达千米( 具体距离和使用环境,传输速率有关连。) (3)具有RXD、TXD信号指示灯,收发状况尽收眼底。
模块兼容3.3V~5V信号,供电建议不超过5V。
序号 端子名称 功能
1 VCC 3.3V或5V(模块电源+)
2 TXD 模块串口发送
3 RXD 模块串口接收
4 GND 电源地
5 A+ RS485 A+
6 B- RS485 B-
7 EARTH 接大地,用于防干扰
3.2 终端电阻
短接R0可使用内置120Ω电阻做为终端电阻。
什么时候需要加终端电阻?
在RS485通信中,长总线传输和多终端连接,需要在总线的两端加终端电阻。具体请查阅相关资料。
3.3 防干扰
由于工业控制环境恶劣,通信线路中会出现更多的干扰耦合,从而影响RS485总线的可靠性,甚至会损坏RS485收发器芯片。
常见防干扰措施:
RS485总线隔离
在485总线上添加隔离器件。
使用屏蔽双绞线
使用带屏蔽的双绞线,并且屏蔽层单点接大地,连接能够有效的抑制干扰。
增加TVS管或串联磁珠
在总线上增加TVS管或串联磁珠,可起到保护485收发器效果。
3.4 序列号
序列号印于产品两侧,为产品唯一标识,编写程序时需要使用。
四、 主站例程(ESP32)
与永宏PLC的modbusRTU通讯示例
4.1 使用器材
永宏PLC FBS60MT+FBS-CB5通讯板(485)
QH_modbus通讯模块
齐护C02开发板(ESP32)
4.2 接线
C02–>QH_modbus通讯模块
C02 QH_modbus通讯模块
3.3V或5V VCC
GND GND
16 RX
17 TX
QH_modbus通讯模块—>PLC(如实际应用应使用屏蔽双绞线,并接地)
QH_modbus通讯模块 PLC 485接口
A+ +
B- -
注:PLC接入电源前请确认接线正确再上电!
4.3 PLC参数设置
设置PLC通信模块参数为 9600 8N1,通讯协议为Modbus RTU(Slave)从站。有些PLC做为modbusRTU的从站需要编写PLC程序,永宏PLC不需要。设置完成后PLC断电重启后通讯参数才会生效。
4.4 PLC地址
查阅PLC手册,可以看出永宏的modbus只支持0X与4X寄存器。也就是只支持线圈和保持寄存器相关的功能指令。
例如:
Y输出,使用读写线圈指令,地址范围0~255(表中是+1后的,在我们编程中不需要+1)读取和写入。
X输入,使用读线圈指令,地址范围1000~1255
R0寄存器,对应读保持寄存器指令,地址范围0~4167。
4.5 写保持寄存器
站号、波特率、数据位、停止位、校验位设置需要与PLC一致。
连续对R0开始的10个寄存器写入数据,在写入完成之后对每个数据+1。
写入指令执行完成后将执行结果码保存到result,再判断是否成功写入。
abc变量用于计算通讯用时。
Mixly
Scratch
联机PLC监视PLC寄存器的变化
4.6 读保持寄存器
读取寄存器与写入寄存器的使用方法相似。
Mixly
Scratch
联机PLC观察数据,PLC数据与串口打印数据一致。
所有其它读取功能使用方法与其相同,注意变量的类型要与功能块标识一样
五、从站例程(ESP32)
5.1 使用器材
USB转485通讯线,电脑端使用modbus Poll模拟modbusRTU主站
QH_modbus通讯模块
齐护C02开发板(ESP32芯片)
5.2 接线
C02–>QH_modbus通讯模块
C02 QH_modbus通讯模块
3.3V或5V VCC
GND GND
16 RX
17 TX
QH_modbus通讯模块—>USB转485通讯线
QH_modbus通讯模块 USB转485通讯线
A+ A+
B- B+
5.3, 程序
做为从端,只能被动的接收消息,被动的接收主端的读写寄存器请求并响应。
只有配好对应的寄存器,主端才能去访问,否则会回复对应的错误信息。
Mixly
Scratch
5.4 电脑端modbus poll软件配置
设置与C02相同串口参数
点击菜单 连接–>连接
连接选择 serial port
串口设置选择USB转485线的串口端口号
其它的波特率、数据位、校验位、停止位与程序中相同。
设置–>读/写定义,配置读写寄地址,这里的地址用于在主画面显示.
从站ID填写程序中的站号
地址与程序中相同
数量,填写你要读取的数量
扫描间隔,读取的间隔时间
点击连接后图中1表示连接成功。双击对应的值可以修改其中的值。
也可以使用菜单功能中的单个指令对寄存进行操作。
可以使用其它命令读写从机寄存器
从主站对其数据修改后,我们可以从C02的串口观察到实际数据的更改。
六、主站例程(UNO)
UNO的使用和ESP32没有太大区别,唯一不同的是UNO下使用的是软串口,无法定义除波特率外的其它参数(数据位、停止位、校验)。固定数据位为8,停止位为1,无校验。
图中例为读取从站保持寄存器示例。
Mixly
写保持寄存器
Mixly
七、从站例程(UNO)
UNO下从站暂时不可用。
八、 相关下载
测试程序:modbus_例程
相关文章:

齐护机器人ModbusRTU RS485转TTL通信模块与ESP32 Arduino通信可Mixly的图形化编程Scratch图形化编程
齐护机器人ModbusRTU RS485-TTL通信模块 一、概念理解 Modbus协议是一种由Modicon公司(现为施耐德电气Schneider Electric)于1979年发表的网络通信协议,旨在实现可编辑逻辑控制器(PLC)之间的通信。 1.1 什么是Mod…...

python学习笔记15 python中的类
上一篇我们介绍了python中的库 ,学习了一些常见的内置库。详细内容可点击–>python学习笔记14 python中的库,常见的内置库(random、hashlib、json、时间、os) 这一篇我们来看一下python中的类 创建一个类 class 类的名称():de…...

PMP–一、二、三模、冲刺–分类–10.沟通管理
文章目录 技巧十、沟通管理 一模10.沟通管理--1.规划沟通管理--文化意识--军事背景和非军事背景人员有文化差异5、 [单选] 项目团队由前军事和非军事小组成员组成。没有军事背景的团队成员认为前军事团队成员在他们的项目方法中过于结构化和僵化。前军事成员认为其他团队成员更…...

android-studio开发第一个项目,并在设备上调试
恭喜你成功安装并配置好了 Android Studio!下面是开发你的第一个 Android 项目并在设备上调试的详细步骤: 1. 启动 Android Studio 首先,启动 Android Studio。你可以通过以下几种方式启动: 使用桌面快捷方式(如果已…...

springboot/ssm线上教育培训办公系统Java代码web项目在线课程作业源码
springboot/ssm线上教育培训办公系统Java代码web项目在线课程作业源码 基于springboot(可改ssm)htmlvue项目 开发语言:Java 框架:springboot/可改ssm vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库&…...

Spring 依赖 详解
Spring 依赖详解 在 Spring 框架中,依赖 是指一个对象(Bean)需要另一个对象(Bean)来完成其功能的情况。Spring 通过 依赖注入(Dependency Injection, DI) 和 控制反转(Inversion of…...

千益畅行,旅游卡有些什么优势?
千益畅行共享旅游卡是一种创新的旅游服务模式,旨在通过整合各类旅游资源,为用户提供一站式的旅游解决方案。这张旅游卡支持2至6人同行,涵盖了接机、酒店、用餐、大巴、导游、景区门票等服务,用户只需自行承担往返交通费用即可享受…...

Ubuntu24 cgroupv2导致rancher(k3s)启动失败的处理
方案一: 修改系统镜像为ubuntu18 方案二: 修改当前系统的cgroup版本,由v2改成v1 修改步骤: 1、查看当前cgroup版本 stat -fc %T /sys/fs/cgroup cgroup v2,输出结果为cgroup2fs cgroup v1,输出为tm…...

学习CSS第二天
学习文章目录 一.内部样式 一.内部样式 写在 html 页面内部,将所有的 CSS 代码提取出来,单独放在 <style> 标签中 语法: <style> h1 { color: red; font-size: 40px; } </style>注意点: <style> 标签理…...

2021数学分析【南昌大学】
2021 数学分析 求极限 lim n → ∞ 1 n ( n + 1 ) ( n + 2 ) ⋯ ( n + n ) n \lim_{n \to \infty} \frac{1}{n} \sqrt [n]{(n+1)(n+2) \cdots (n+n)} n→∞limn1n(n+1)(n+2)⋯(n+n) lim n → ∞ 1 n ( n + 1 ) ( n + 2 ) ⋯ ( n + n ) n = lim n → ∞ ( n + …...

单端和差分信号的接线法
内容来源:【单端信号 差分信号与数据采集卡的【RSE】【 NRES】【 DIFF】 模式的连接】 此篇文章仅作笔记分享。 单端输入 单端信号指的是输入信号由一个参考端和一个信号端构成,参考端一般是地端,信号就是通过计算信号端口和地端的差值所得…...

力扣-图论-2【算法学习day.52】
前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非…...

MySQL如何区分幻读和不可重复读
在MySQL中,幻读和不可重复读都是并发事务中可能出现的问题,但它们的表现和原因略有不同。 不可重复读 (Non-Repeatable Read) 不可重复读是指在同一个事务内,多次读取同一行数据时,可能会得到不同的结果。这种情况发生在一个事务…...

界面控件Syncfusion Essential Studio®现在已完全支持 .NET 9
Syncfusion Essential Studio现在完全支持 .NET 9,可最新版本2024 Volume 3 版本中使用!通过此更新,Blazor、.NET MAUI、WPF、WinForms、WinUI和ASP.NET Core 平台中的 Syncfusion 组件以及文档处理库已准备好让您利用 .NET 9 中的最新功能。…...

openEuler安装lsb_release
lsb_release是linux下查看发行版信息用的工具 lsb_release只是一个小程序,它的包名并不是lsb_release lsb_release其实是红帽的一个项目,其名为redhat-lsb 我们的lsb_release就是其中的一部分,更准确的说是redhat-lsb-core 从网站࿱…...

统计数字字符个数
统计数字字符个数 C语言实现C实现Java实现Python实现 💐The Begin💐点点关注,收藏不迷路💐 输入一行字符,统计出其中数字字符的个数。 输入 一行字符串,总长度不超过255。 输出 出为1行,输出…...

44页PDF | 信息化战略规划标准框架方法论与实施方法(限免下载)
一、前言 这份报告详细介绍了企业信息化战略规划的标准框架、方法论以及实施方法,强调了信息化规划应以业务战略和IT战略为驱动力,通过构筑企业架构(EA)来连接长期战略和信息化建设。报告提出了信息化规划原则,探讨了…...

计算机网络期末复习-part1-概述
1、互联网的组成 互联网由两大块组成。 1、边沿部分:由所有连接在互联网上的主机组成,是用户直接使用的部分。 2、核心部分,由大量网络和路由器组成,为边缘部分提供服务。 2、数据传送阶段的三种交换方式的主要特点 1、电路交…...

A1228 php+Mysql旅游供需平台的设计与实现 导游接单 旅游订单 旅游分享网站 thinkphp框架 源码 配置 文档 全套资料
旅游供需平台 1.项目描述2. 开发背景与意义3.项目功能4.界面展示5.源码获取 1.项目描述 随着社会经济的快速发展,生活水平的提高,人们对旅游的需求日益增强,因此,为给用户提供一个便利的查看导游信息,进行导游招募的平…...

RabbitMQ消息可靠性保证机制5--消息幂等性处理
RabbitMQ层面有实现“去重机制”来保证“恰好一次”吗?答案是没并没有,而且现在主流的消息中间件都没有实现。 一般解决重复消息的办法是:在消费端让我们消费消息操作具有幂等性。 幂等性问题并不是消息系统独有,而是࿰…...

Claude3.5如何使用?
Claude 3.5 Sonnet,性能直接吊打了 GPT-4o,甚至价格还更便宜。网友们纷纷展开实测,有人表示自己一半的工作已经可以由它替代了!而最让人惊喜的新功能,莫过于 Artifacts 了。 就在昨天,Anthropic 深夜发布了…...

力扣刷题TOP101:14.BM16 删除有序链表中重复的元素-II
目录: 目的 思路 复杂度 记忆秘诀 python代码 目的 1→1→2→3→3 删除重复后变成2。 思路 这个任务是删除链表里重复的节点包含本身。可以看成是一个抽奖活动的系统升级。某人通过多种方式报名(节点不同),后台数据检测到这些…...

解决github网络慢的问题
前言 本文采用替换host的方式来加速github的git请求,主要我自己用来备份的懒人方式,不然每次都要手动修改hosts文件,skrskrskr… 一、获取到可用的ip 先到这个网站查询到低延迟的ip 站长工具:https://ping.chinaz.com/ 第2步&…...

docker及docker exec命令学习笔记
docker exec 是一个常用的 Docker 命令,允许你在已经运行的容器中执行命令或启动新的进程。以下是详细介绍和常见用法: 基本语法 docker exec [OPTIONS] CONTAINER COMMAND [ARG...]参数详解 1. CONTAINER指定目标容器的名字或容器 ID。可以通过以下命…...

linux环境宝塔服务部署安装及介绍
一、简介 宝塔面板是一款服务器管理软件,支持windows和linux系统,可以通过Web端轻松管理服务器,提升运维效率。例如:创建管理网站、FTP、数据库,拥有可视化文件管理器,可视化软件管理器,可视化C…...

充分统计量(Sufficient Statistic)概念与应用: 中英双语
充分统计量:概念与应用 在统计学中,充分统计量(Sufficient Statistic) 是一个核心概念。它是从样本中计算得出的函数,能够完整且无损地表征样本中与分布参数相关的信息。在参数估计中,充分统计量能够帮助我…...

基于Matlab计算机视觉的车道线识别与前车检测系统研究
随着自动驾驶技术的发展,车道线识别和前车检测成为智能驾驶系统中的核心技术之一。本实训报告围绕基于计算机视觉的车道线识别与前车检测系统展开,旨在通过处理交通视频数据,实时检测车辆所在车道及其与前车的相对位置,从而为车道…...

模糊测试中常见的10种变异mutation策略
1. 引入 基于变异策略的模糊测试,有两个重点: (1)seed:种子,初始的合法输入序列。 (2)mutation:对已经存在的输入序列,进行微调。 所以,mutatio…...

opencv-android编译遇到的相关问题处理
1、opencv-android sdk下载 下载地址:https://opencv.org/releases/ 下载安卓SDK即可 2、解压下载好的SDK 3、导入opencv的SDK到安卓项目中 导入步骤在/OpenCV-android-sdk/sdk/build.gradle文件的注释中写的非常详细,大家可安装官方给出的步骤导入。…...

把 py脚本生成windows 可执行的文件
1 确保生成的exe文件,不会立即退出 input("Please input any key to exit!")2 安装 PyInstaller 确保已经安装了 PyInstaller。可以使用 pip 来安装它: pip install pyinstaller3 执行命令 这里的 --onefile 选项表示将所有依赖项打包到一…...