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

汇川CodeSysPLC教程03-2-6 ModBus TCP

什么是ModBus TCP?

ModBus TCP是一种基于TCP/IP协议的工业网络通信协议,常用于工业自动化和控制系统。它是ModBus协议的一个变种,ModBus协议最初由Modicon(现在是施耐德电气的一部分)在1979年开发。

以下是ModBus TCP的一些主要特征:

  1. 基于TCP/IP:ModBus TCP使用以太网和TCP/IP协议进行通信,这使得它能够在现有的以太网络基础设施上运行,具有高传输速度和广泛的兼容性。

  2. 客户端-服务器模型:ModBus TCP采用客户端-服务器模型。客户端发送请求,服务器处理请求并返回响应。客户端和服务器之间的通信通过TCP端口502进行,这是ModBus TCP的默认端口。

  3. 数据表示:ModBus协议使用简单的数据表示方法,支持多种数据类型,如位(线圈和离散输入)、16位寄存器(保持寄存器和输入寄存器)。这些数据类型被映射到以太网帧中进行传输。

  4. 应用层协议:ModBus TCP位于OSI模型的应用层,其消息结构与传统的ModBus RTU(基于串行通信)类似,只是在以太网上传输。

  5. 无缝集成:由于ModBus TCP与ModBus RTU共享相同的功能码和数据格式,它们可以在一个混合网络中无缝集成,使得现有的ModBus设备可以轻松过渡到以太网络。

TCP/IP协议

TCP/IP(传输控制协议/互联网协议,Transmission Control Protocol/Internet Protocol)是一组网络通信协议,用于在计算机网络中实现数据传输和通信。TCP/IP协议族是互联网和大多数局域网(LAN)所使用的基础协议。以下是TCP/IP协议的一些关键概念和组成部分:

1. TCP/IP 协议模型

TCP/IP协议模型分为四个层次,每一层都有其特定的功能:

  1. 应用层(Application Layer)

    • 提供用户直接使用的网络服务,如HTTP(用于网页浏览)、FTP(文件传输)、SMTP(电子邮件传输)、DNS(域名解析)等。
  2. 传输层(Transport Layer)

    • 负责端到端的数据传输和流量控制。
    • TCP(Transmission Control Protocol):提供可靠的、面向连接的数据传输,确保数据按顺序到达且无错误。
    • UDP(User Datagram Protocol):提供无连接的、尽力而为的数据传输,适用于需要快速传输且容忍丢包的应用,如视频流和在线游戏。
  3. 网络层(Internet Layer)

    • 负责数据包在网络中的路由选择和转发。
    • IP(Internet Protocol):是核心协议,负责将数据包从源地址传送到目标地址。IP地址标识网络上的设备。
    • ICMP(Internet Control Message Protocol):用于发送错误消息和网络诊断信息,如ping工具。
  4. 链路层(Link Layer)

    • 负责在物理网络媒介上传输数据帧。
    • 包括以太网、Wi-Fi等具体的物理和数据链路层协议。
2. TCP/IP 协议的工作原理
TCP(传输控制协议)
  • 连接建立:TCP使用三次握手建立连接,确保双方都准备好发送和接收数据。
  • 数据传输:数据被分割成小的数据包(段),每个段都有一个序列号。TCP确保所有段按序到达,重传丢失的段,并通过校验和检查数据完整性。
  • 连接终止:通过四次握手终止连接,确保所有数据都被成功传输。
IP(互联网协议)
  • 路由选择:IP负责根据目标IP地址选择最佳路径,将数据包从源地址传送到目标地址。
  • 分片和重组:当数据包超过网络MTU(最大传输单元)时,IP会将其分片传输,并在目标处重新组装。
3. TCP/IP 协议的优势
  • 互操作性:TCP/IP是一个开放的标准协议,广泛支持多种硬件和操作系统,确保不同设备间的互操作性。
  • 可伸缩性:TCP/IP可以支持从小型局域网到全球互联网的各种规模的网络。
  • 可靠性:TCP协议提供了可靠的数据传输机制,确保数据在不丢失、不重复的情况下传输。
  • 灵活性:通过分层设计,TCP/IP协议可以适应各种不同的网络技术和应用需求。

总之,TCP/IP协议是现代计算机网络和互联网的基础,它提供了一个标准化的框架,使得不同设备和系统之间能够高效、可靠地进行通信。

客户端-服务器模型

客户端-服务器模型(Client-Server Model)是一种网络架构模型,其中任务或工作量在服务提供者(服务器)和服务请求者(客户端)之间分配。该模型广泛应用于网络和分布式计算中。以下是该模型的基本概念和工作原理:

基本概念
  1. 客户端(Client)

    • 客户端是发起请求的实体,可以是计算机、应用程序或设备。客户端向服务器请求资源或服务,并处理服务器返回的响应。
    • 客户端通常具有用户界面,允许用户与系统进行交互。
  2. 服务器(Server)

    • 服务器是响应请求的实体,通常是高性能计算机或专门的软件程序。服务器处理客户端的请求,执行必要的计算或操作,并将结果返回给客户端。
    • 服务器可以提供多种服务,如文件存储、数据库访问、网页服务等。
工作原理
  1. 请求和响应

    • 客户端通过网络向服务器发送请求。请求包含所需服务的详细信息,如资源地址、参数等。
    • 服务器接收到请求后,处理请求并生成响应。响应包含所需的数据或操作结果,然后通过网络发送回客户端。
  2. 连接管理

    • 客户端和服务器之间可以通过多种方式建立连接,常见的有短连接和长连接。
    • 短连接:每次请求响应完成后,连接即关闭。如HTTP/1.0协议。
    • 长连接:连接在多个请求响应之间保持打开状态,提高效率。如HTTP/1.1及其后的版本。
优势和应用
优势
  1. 分工明确

    • 服务器专注于提供和管理资源或服务,客户端专注于用户交互和请求发起。
    • 资源集中管理,便于维护和更新。
  2. 可扩展性

    • 服务器可以集中处理大量请求,通过添加更多服务器实现系统的水平扩展。
    • 客户端数量增加时,不需要修改服务器端的设计,只需增加硬件资源即可。
  3. 安全性

    • 服务器可以集中管理安全策略和数据保护措施,提高系统的整体安全性。
应用
  1. Web应用

    • 浏览器(客户端)向Web服务器发送请求,服务器返回网页内容。
    • 例如,用户访问网站时,浏览器发送HTTP请求,Web服务器处理请求并返回HTML页面。
  2. 电子邮件

    • 邮件客户端(如Outlook、Gmail)向邮件服务器(如SMTP、IMAP服务器)发送和接收电子邮件。
    • 服务器存储和管理邮件,客户端提供用户界面进行邮件操作。
  3. 文件共享

    • 客户端通过文件传输协议(如FTP)向文件服务器请求下载或上传文件。
    • 服务器管理文件存储和访问权限。
  4. 数据库访问

    • 应用程序(客户端)向数据库服务器发送SQL查询请求,服务器处理查询并返回结果。
    • 例如,企业内部系统查询客户数据。
图示
      Client                     Server
+----------------+       +----------------------+
|  User Interface| <---> | Application Services |
|                | <---  |                      |
|                |  ---> |                      |
+----------------+       +----------------------+

在客户端-服务器模型中,客户端和服务器通过网络进行通信,完成任务的分配和协作。这个模型在现代计算中广泛应用,支持从简单的网页浏览到复杂的企业级应用系统。

OSI(开放系统互连,Open Systems Interconnection)模型是一个标准化的网络通信框架,旨在使不同系统之间的互连和通信更加顺畅。OSI模型由国际标准化组织(ISO)在1984年制定,并分为七个层次,每个层次都有特定的功能和协议。以下是OSI模型的七层结构及其功能:

OSI 模型的七层结构

  1. 物理层(Physical Layer)

    • 功能:负责在物理媒体上发送和接收原始的比特流(0和1)。包括物理连接、信号传输、比特同步等。
    • 协议和设备:网线、光纤、电缆、集线器、网络接口卡(NIC)。
  2. 数据链路层(Data Link Layer)

    • 功能:负责在物理层上提供可靠的数据传输,包括帧的组装、地址命名、错误检测和纠正。
    • 子层:逻辑链路控制(LLC)和媒体访问控制(MAC)。
    • 协议和设备:以太网、Wi-Fi、交换机、桥接器。
  3. 网络层(Network Layer)

    • 功能:负责路由选择和逻辑地址的管理,将数据包从源节点传送到目的节点。
    • 协议和设备:IP(互联网协议)、路由器。
  4. 传输层(Transport Layer)

    • 功能:提供端到端的通信服务,包括数据分段、传输控制、错误检测和纠正、流量控制等。
    • 协议:TCP(传输控制协议)、UDP(用户数据报协议)。
  5. 会话层(Session Layer)

    • 功能:管理会话和连接,提供建立、维护和终止通信会话的机制。
    • 功能:会话管理、同步、对话控制。
  6. 表示层(Presentation Layer)

    • 功能:负责数据的格式化、编码和解码,确保不同系统之间的数据兼容性。
    • 功能:数据压缩、加密/解密、格式转换。
  7. 应用层(Application Layer)

    • 功能:提供直接为用户或应用程序使用的网络服务和接口。
    • 协议和应用:HTTP、FTP、SMTP、DNS、Telnet。

OSI 模型的功能和意义

1. 标准化

OSI模型提供了一个标准化的框架,使不同制造商和开发者可以创建互操作的硬件和软件。

2. 模块化

通过分层设计,OSI模型使得网络通信可以模块化。每一层独立工作且与上下层通信,使得开发和故障排除更加简便。

3. 可互换性

协议和技术可以在特定层进行替换或升级,而不会影响整个系统的其余部分。

4. 教育和理解

OSI模型提供了一个清晰的网络通信结构,使学生和工程师能够更好地理解和学习网络概念和协议。

5. 故障排除

分层模型使网络故障排除更为系统化,可以逐层检查和解决问题,定位具体的故障位置。

OSI模型与TCP/IP模型

尽管OSI模型是一个理论模型,但在实际应用中,TCP/IP协议族更为广泛使用。TCP/IP模型有四层(有时分为五层),如下所示:

  1. 网络接口层(Network Interface Layer)(对应OSI的物理层和数据链路层)
  2. 互联网层(Internet Layer)(对应OSI的网络层)
  3. 传输层(Transport Layer)(与OSI的传输层相对应)
  4. 应用层(Application Layer)(对应OSI的会话层、表示层和应用层)

尽管TCP/IP模型更为实际,但OSI模型的分层思想和结构化方法仍然是理解和设计网络系统的重要基础。

OSI模型七层图示
+---------------------------+
|   7. 应用层 (Application)   |
+---------------------------+
|   6. 表示层 (Presentation)  |
+---------------------------+
|   5. 会话层 (Session)       |
+---------------------------+
|   4. 传输层 (Transport)     |
+---------------------------+
|   3. 网络层 (Network)       |
+---------------------------+
|   2. 数据链路层 (Data Link)|
+---------------------------+
|   1. 物理层 (Physical)      |
+---------------------------+

通过理解和应用OSI模型,我们可以更好地设计、实现和维护复杂的网络系统,提高网络通信的效率和可靠性。

Modbus TCP设备编辑器

单击网络组态中的PLC设备,会显示PLC内部所支持的主/从站的使能窗口,如下图所示,单击窗口中的复选框按钮来使能CPU所支持的主/从站功能(如下图),再从视图右侧的“网络设备列表”中双击“MODBUS_TCP”将从站添加到网络中。
在这里插入图片描述
Modbus TCP组态配置示例

此时,在界面左侧视图中将出现ModbusTCP组态配置对应设备树。如下:
在这里插入图片描述

主站设定

在这里插入图片描述
帧间隔指主站接收上一个响应数据帧到下一个请求数据帧之间等待的时间间隔。这个参数可用于调节数据交换率。

主站中添加从站

在这里插入图片描述

添加从站的设定

在这里插入图片描述
注意:从站使能变量,若要启用图示中的从站,需要对SM3001变量置True。
其中,端口、从站地址、超时时间一般不用特别设置,IP根据从站的实际地址设置即可。

从站的通讯设定

在这里插入图片描述
这个部分的设定方式和RTU中设定时一样的,这里不重复说明。

本地从站的设定

与前面主站中的从站设定不同,本地从站的设定的意思是将PLC作为从站使用。我们在与HMI通信当中提到过,与HMI通讯是一种典型的PLC作为从站使用的实例。
本地从站设定的部分很少,按图示所示:
在这里插入图片描述

Modbus TCP常见故障

Modbus TCP主站连接Modbus TCP从站时发生的主要故障如下:
1:Modbus TCP主站连接Modbus TCP从站配置IP不正确,导致主站与从站通信无法建立。
2:Modbus TCP主站访问Modbus TCP从站非法地址,返回错误应答。
3:Modbus TCP主站操作Modbus TCP从站写寄存器,但是Modbus TCP从站该寄存器只支持读不支持写操作,Modbus TCP主站会收到Modbus TCP从站返回的出错应答。
要判定通讯故障是哪些原因造成的,可以通过返回的错误帧进行判定。
在这里插入图片描述

通讯帧格式说明

如果要特别读取SM、SD等区的话,可以参考帮助手册,其他的通讯方式同RTU,这里不展开说明了。

相关文章:

汇川CodeSysPLC教程03-2-6 ModBus TCP

什么是ModBus TCP&#xff1f; ModBus TCP是一种基于TCP/IP协议的工业网络通信协议&#xff0c;常用于工业自动化和控制系统。它是ModBus协议的一个变种&#xff0c;ModBus协议最初由Modicon&#xff08;现在是施耐德电气的一部分&#xff09;在1979年开发。 以下是ModBus TC…...

【Python机器学习】决策树的构造——划分数据集

分类算法除了需要测量信息熵&#xff0c;还需要划分数据集&#xff0c;度量划分数据集的熵&#xff0c;以便判断当前是否正确划分了数据集。 我们将对每个特征划分数据集的结果计算一次信息熵&#xff0c;然后判断按照哪个特征划分数据集是最好的划分方式。 想象一个分部在二…...

Pip换源使用帮助

PyPI 镜像使用帮助 PyPI 镜像帮助提高包安装的速度&#xff0c;特别是当默认源访问较慢时。镜像每次同步成功后&#xff0c;每隔 5 分钟进行更新&#xff0c;确保镜像内容尽量与官方源保持一致。 pip 临时使用 如果您只想在一次安装中使用镜像&#xff0c;可以使用以下命令&…...

力扣1089复写0

1089. 复写零 - 力扣&#xff08;LeetCode&#xff09; 我们的思路是利用类似双指针的方式去解答&#xff0c;来看下代码 class Solution { public:void duplicateZeros(vector<int>& arr){int cur 0, dest -1, n arr.size();while (cur < n){if (arr[cur])d…...

10 VUE Element

文章目录 VUE1、概述2、快速入门3、Vue 指令4、生命周期5、案例 Elemant1、快速入门2、Element 布局3、常用组件-案例 VUE 1、概述 Vue 是一套前端框架&#xff0c;免除原生JavaScript中的DOM操作&#xff0c;简化书写基于MVVM(Model-View-ViewModel)思想&#xff0c;实现数据…...

独立游戏《星尘异变》UE5 C++程序开发日志8——实现敏感词过滤功能(AC自动机)

在游戏中经常会有需要玩家输入一些内容的功能&#xff0c;例如聊天&#xff0c;命名等&#xff0c;这款游戏只有在存档时辉用到命名功能&#xff0c;所以这个过滤也只是一个实验性的功能&#xff0c;我们将使用AC自动机来实现&#xff0c;这是在我们把“csdn”这个词设置为屏蔽…...

使用 Swagger 在 Golang 中进行 API 文档生成

Swagger 是一款强大的 API 文档生成工具&#xff0c;可以帮助开发者轻松创建、管理和展示 RESTful API 文档。在本文中&#xff0c;我们将介绍如何在 Golang 项目中使用 Swagger 来生成 API 文档。 官网地址 &#xff1a; gin-swagger 前提条件 Golang 开发环境&#xff08;…...

Pip换源实战指南:加速你的Python开发

1. Pip换源的重要性 在使用Python进行软件开发或数据分析时&#xff0c;pip 是Python的包管理工具&#xff0c;用于安装和管理第三方库。然而&#xff0c;由于网络环境的差异&#xff0c;特别是在某些国家&#xff0c;访问默认的PyPI&#xff08;Python Package Index&#xff…...

【数据结构】常用数据结构的介绍:理解与应用

文章目录 前言一、介绍二、使用场景三、总结 前言 在计算机科学中&#xff0c;数据结构是我们组织和存储数据的方式&#xff0c;它可以帮助我们高效地执行各种操作&#xff0c;如搜索、插入和删除。从数组和链表&#xff0c;到树和图&#xff0c;不同的数据结构有着不同的优点…...

【优秀python系统毕设】基于Python flask的气象数据可视化系统设计与实现,有LSTM算法预测气温

第一章 绪论 1.1 研究背景 在当今信息爆炸的时代&#xff0c;气象数据作为重要的环境信息资源&#xff0c;扮演着关键的角色。然而&#xff0c;传统的气象数据呈现方式存在信息量庞大、难以理解的问题&#xff0c;限制了用户对气象信息的深入理解和利用。因此&#xff0c;基…...

【康复学习--LeetCode每日一题】2951. 找出峰值

题目&#xff1a; 给你一个下标从 0 开始的数组 mountain 。你的任务是找出数组 mountain 中的所有 峰值。 以数组形式返回给定数组中 峰值 的下标&#xff0c;顺序不限 。 注意&#xff1a; 峰值 是指一个严格大于其相邻元素的元素。 数组的第一个和最后一个元素 不 是峰值。…...

PYTHON学习笔记(八、字符串及的使用)

目录 1、字符串 1.1、字符串的常用操作 1.2、格式化字符串 1.2.1、占位符格式化字符串 1.2.2、f-string格式化字符串 1.2.3、str.format( )格式化字符串 1.3、数据的验证 1.4、正则表达式 1.5.1元字符 1.5.2限定符 1.5.3其他字符 1.5.4re模块 1、字符串 1.1、字符…...

文件共享功能无法使用提示错误代码0x80004005【笔记】

环境情况&#xff1a; 其他电脑可以正常访问共享端&#xff0c;但有一台电脑访问提示错误代码0x80004005。 处理检查&#xff1a; 搜索里输入“启用或关闭Windows功能”按回车键&#xff0c;在“启用或关闭Windows功能”里将“SMB 1.0/CIFS文件共享支持”勾选后&#xff08;故…...

FTP(File Transfer Protocal,文件传输协议)

文章目录 引言FTP管理工具FTP客户端FTP连接模式控制连接数据连接FTP命令/响应FTP命令FTP响应FTPSSFTP引言 FTP(File Transfer Protocal,文件传输协议)用于建立两台主机间的数据文件传输下载。使用客户/服务器(Client/Server)架构,基于TCP协议,服务端口为21。 FTP链接…...

DevEco Studio中使用Qt,编写HarmonyOS程序

文章目录 1.操作2.注意事项2.1.adapter_ts2.1.手机插到电脑后&#xff0c;DevEco无法识别 1.操作 最近需要尝试把之前在Windwos下用Qt实现的程序移植到鸿蒙&#xff08;HarmonyOS&#xff09;系统上。 我使用的DevEco版本是5.03.501 找了一下资料&#xff0c;官方&#xff0…...

基于单文档的MFC图像增强

目录 function.h ColorEnhanceDib.h ColorEnhanceDib.cpp Dib.h Dib.cpp FrequencyFilterDib.h FrequencyFilterDib.cpp GrayTransformDib.h GrayTransformDib.cpp HistogramDib.h HistogramDib.cpp SharpenProcessDib.h SharpenProcessDib.cpp SmoothProcessDib.h Sm…...

云计算实训13——DNS域名解析、ntp时间服务器配置、主从DNS配置、多区域DNS搭建

一、DNS域名解析 1.正向解析 将域名解析为IP地址 DNS正向解析核心配置 (1)安装bind [rootdns ~]# yum -y install bind (2)编辑配置文件 编辑named.conf文件&#xff0c;限定访问权限 [rootdns ~]# vim /etc/named.conf 编辑named.rfc文件&#xff0c;指定要访问的域名 [ro…...

【C#】Visual Studio2022打包依赖第三方库的winForm程序为exe

0.简介 IDE&#xff1a;VS2022 平台&#xff1a;C# .NetFramework4.7.2 WinForm界面 有GDAL、EEplus第三方库的依赖&#xff0c;所以在其他未安装环境的电脑中功能无法使用。 1. 安装 1.1 运行文件输出 在VS扩展中选择管理扩展&#xff0c;安装&#xff1a;Microsoft Visua…...

《算法笔记》总结No.11——数字处理(上)欧拉筛选

机试中存在部分涉及到较复杂数字的问题&#xff0c;这是编码的基本功&#xff0c;各位一定要得心应手。 目录 一.最大公约数和最小公倍数 1.最大公约数 2.最小公倍数 二.素数 1.判断指定数 2.输出所有素数 3.精进不休——埃拉托斯特尼筛法 4.达到更优&#xff01;——…...

DP学习——享元模式

学而时习之&#xff0c;温故而知新。 享元模式 名词解析 有必要解释下“享元”两字&#xff0c;英文原文是flyweight pattern——轻量级模式&#xff0c;但是翻译过来的“享元”两字太牛逼了——褒贬不一&#xff0c;翻译的他妈都不认识。 享元的高雅在于: 享:共享/共用 元:…...

无人机10公里WiFi图传摄像模组,飞睿智能超清远距离无线监控,智能安防新潮流

在这个科技日新月异的时代&#xff0c;我们对影像的捕捉和传播有了更高的要求。从传统的有线传输到无线WiFi图传&#xff0c;每一次技术的飞跃都为我们带来了全新的视觉体验。今天&#xff0c;我们要探讨的&#xff0c;正是一款具有划时代意义的科技产品——飞睿智能10公里WiFi…...

SAP S/4HANA Cloud Public Edition

即装即用的云ERP软件。借助SaaS模式为企业提供完备、现代化的ERP 云套件&#xff0c;为企业带来新的技术突破&#xff0c;如自动化的业务流程与基于数据的商业分析。企业可选择这款智能云ERP软件&#xff0c;快速实现自身价值。 什么是 SAP S/4HANA Cloud Public Edition&#…...

LabVIEW汽车动态信号模拟系统

随着汽车工业的快速发展&#xff0c;对汽车电子控制单元&#xff08;ECU&#xff09;的测试与仿真需求日益增加。开发了一种基于LabVIEW软件开发的汽车动态信号模拟系统&#xff0c;该系统能有效模拟ECU在实车环境下的工作状态&#xff0c;为ECU的开发和测试提供了一个高效、经…...

chrome 插件:content-script 部分逻辑在页面无法生效,可考虑插入 script 到页面上

背景: 某页面有个输入框, 用的应该是什么库里的组件, 直接修改内容不生效/机制不明确, 于是使用 paste event 粘贴到输入框, 结果发现也不行 定位: 使用 mutationObserver , 发现事件确实触发了, 输入框内容变了, 但马上又变回来了, 于是怀疑是输入框组件有做 mutationObers…...

【前端 10】初探BOM

初探BOM&#xff1a;浏览器对象模型 在JavaScript的广阔世界中&#xff0c;BOM&#xff08;Browser Object Model&#xff0c;浏览器对象模型&#xff09;扮演着举足轻重的角色。它为我们提供了一套操作浏览器窗口及其组成部分的接口&#xff0c;让我们能够通过编写JavaScript…...

PostgreSQL入门与进阶学习,体系化的SQL知识,完成终极目标高可用与容灾,性能优化与架构设计,以及安全策略

​专栏内容&#xff1a; postgresql使用入门基础手写数据库toadb并发编程 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 文章目录 概述基础篇初级篇进阶篇…...

ODBC+FreeTDS从Linux访问Windows SqlServer数据库

提示 \color{red}{提示} 提示&#xff1a; 《Linux系统上编译安装FreeTDS库文件》中讲述了如何编译FreeTDS源码&#xff0c;并安装。 本文部分内容会在上述文章的基础上深入。 本文内容所使用的环境 Windows系统&#xff1a;Windows 10 企业版 64位操作系统&#xff1b;IP&a…...

Chainlit一个快速构建成式AI应用的Python框架,无缝集成与多平台部署

概述 Chainlit 是一个开源 Python 包&#xff0c;用于构建和部署生成式 AI 应用的开源框架。它提供了一种简单的方法来创建交互式的用户界面&#xff0c;这些界面可以与 LLM&#xff08;大型语言模型&#xff09;驱动的应用程序进行通信。Chainlit 旨在帮助开发者快速构建基于…...

leetcode日记(51)不同路径Ⅱ

和上一道题&#xff08;无障碍物的最短路径&#xff09;很像&#xff0c;但事实上比上一题多了优化方法 根据上一题改的代码如下&#xff0c;添加了对障碍物的判定&#xff0c;如果有障碍物则将数组值设为0。 class Solution { public:int uniquePathsWithObstacles(vector&l…...

图解分布式事务中的2PC与Seata方案

文章目录 文章导图什么是2PC解决传统2PC方案XA方案DTP模型举例&#xff1a;新用户注册送积分总结&#xff1a; Seata方案设计思想执行流程举例&#xff1a;新用户注册送积分 Seata实现2PC事务&#xff08;AT模式&#xff09;前提整体机制写隔离读隔离实际案例理解要点说明核心代…...

数据结构(Java):Map集合Set集合哈希表

目录 1、介绍 1.1 Map和Set 1.2 模型 2、Map集合 2.1 Map集合说明 2.2 Map.Entry<K&#xff0c;V> 2.3 Map常用方法 2.4 Map注意事项及实现类 3、Set集合 3.1 Set集合说明 3.2 Set常用方法 3.3 Set注意事项及其实现类 4、TreeMap&TreeSet 4.1 集合类TreeM…...

网络战时代的国家安全:策略、技术和国际合作

网络战时代的国家安全涉及到策略、技术和国际合作等多个方面。以下是对这些问题的简要概述&#xff1a; 网络战策略 网络战策略是指在现代战争中&#xff0c;通过网络技术进行的信息收集、处理、分析、调度和指挥等一系列行动&#xff0c;旨在同时影响和干扰对方的网络系统&am…...

【elasticsearch实现优先展示连词并按某个字段折叠显示最新一条】

elasticsearch实现优先展示连词并按某个字段折叠显示最新一条 前言match_phrase 顺序前缀 boost 权重collapse 折叠基本用法高级功能排序 前言 场景要求&#xff1a; 优先展示关键词连词的商品按照某个字段折叠相同字段&#xff0c;并按指定排序字段选择第一个 match_phras…...

Golang | Leetcode Golang题解之第284题窥视迭代器

题目&#xff1a; 题解&#xff1a; type PeekingIterator struct {iter *Iterator_hasNext bool_next int }func Constructor(iter *Iterator) *PeekingIterator {return &PeekingIterator{iter, iter.hasNext(), iter.next()} }func (it *PeekingIterator) hasNe…...

C语言中的结构体

文章目录 前言一、结构体是什么&#xff1f;二、结构体的定义三、结构体的初始化四、结构体的嵌套五、结构体数组 1结构体数组的定义&#xff1a;六、结构体指针 一、结构体是什么&#xff1f; 我们知道一群类型相同的数据组合到一起是数组&#xff0c;那一群不同类型的数据组…...

3.qml与c++模块化开发

目录 模块化开发封装c模块并使用封装qml模块并使用 模块化开发 什么是模块化开发呢&#xff1f; 举个例子&#xff1a; 我们有一台台式电脑&#xff0c;我们台式电脑有显卡&#xff0c;内存&#xff0c;磁盘&#xff0c;cpu&#xff0c;键盘&#xff0c;鼠标等 你可以将这些部…...

怎么使用github上传XXX内所有文件

要将 目录中的所有文件上传到 GitHub&#xff0c;你可以按照以下步骤进行&#xff1a; 创建一个新的 GitHub 仓库 登录到你的 GitHub 账户。 点击右上角的加号&#xff08;&#xff09;&#xff0c;选择 “New repository”。 输入仓库名称&#xff08;例如&#xff1a;202407…...

合作伙伴中心Partner Center中添加了Copilot预览版

目录 一、引言 二、Copilot 功能概述 2.1 Copilot 简介 2.2 Copilot 的核心功能 2.3 Copilot 的访问和使用 三、Copilot 的使用方法 3.1 Copilot 功能区域 3.2 Copilot 使用示例 3.2.1 编写有效提示 3.2.2 使用反馈循环 四、负责任的人工智能 4.1 Copilot 结果的可…...

Navidrome音乐服务器 + 音流APP = 释放你的手机空间

20240727 By wdhuag 目录 前言&#xff1a; 参考&#xff1a; Navidrome音乐服务器 Demo试用&#xff1a; 支持多平台&#xff1a; 下载&#xff1a; 修改配置&#xff1a; 设置用NSSM成服务启动&#xff1a; 服务器本地访问网址&#xff1a; 音流 歌词封面API&am…...

Prometheus安装部署

文章目录 1.Prometheus(普罗米修斯)安装部署1.1部署环境准备1.2部署prometheus1.3主机数据展示 2.Grafana安装部署2.1部署Grafana2.2配置Grafana数据源2.2配置Grafana仪表板 3.AlertManager安装部署3.1部署alertmanager3.2告警邮件发送配置3.3测试邮件告警效果3.4自定义邮件告警…...

算法(查找算法---二分查找/索引查找/哈希表查找)

二、查找算法 什么是查找算法&#xff1a; 在一个数据序列中&#xff0c;查找某个数据是否存在或存在的位置&#xff0c;在实际开发过程中使用的频率非常高&#xff0c;例如对数据常见的操作有增、删、改、查&#xff0c;增加数据时需要查询新增加的数据是否重复&#xff0c;…...

SQL labs-SQL注入(二)

环境搭建参考 SQL注入&#xff08;一&#xff09; 一&#xff0c;SQL labs-less2。 http://192.168.61.206:8001/Less-2/?id-1 union select 1,2,group_concat(username , password) from users-- 与第一关没什么太大的不同&#xff0c;唯一区别就是闭合方式为数字型。 二…...

go 语言踏出第一步

1、下载Go语言安装包&#xff1a;在官方网站&#xff08;https://golang.org/dl/&#xff09;上下载适合你操作系统的Go语言安装包。选择一个tar.gz格式的包。 2、解压安装包&#xff1a;打开终端&#xff0c;进入下载目录&#xff0c;并使用以下命令解压安装包&#xff1a; ta…...

SpringBoot-21 SpringBoot微服务的发布与部署(3种方式)

基于 SpringBoot 的微服务开发完成之后&#xff0c;现在到了把它们发布并部署到相应的环境去运行的时候了。 SpringBoot 框架只提供了一套基于可执行 jar 包&#xff08;executable jar&#xff09;格式的标准发布形式&#xff0c;但并没有对部署做过多的界定&#xff0c;而且为…...

在occluded Person Re-ID中,选择clip还是ViT作为backbone?

在遮挡行人再识别&#xff08;Occluded Person Re-Identification, Occluded Person Re-ID&#xff09;任务中&#xff0c;使用CLIP&#xff08;Contrastive Language-Image Pre-Training&#xff09;作为backbone和使用Vision Transformer&#xff08;ViT&#xff09;作为back…...

Linuxnat网络配置

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 ☁️运维工程师的职责&#xff1a;监…...

77.WEB渗透测试-信息收集-框架组件识别利用(1)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;76.WEB渗透测试-信息收集- WAF、框架组件识别&#xff08;16&#xff09; java&#xff…...

ExcelJS:轻松实现Excel文件的读取、操作与写入

文章目录 发现宝藏1. 简介2. 安装3. 创建工作簿4. 设置工作簿属性5. 添加工作表6.删除工作表7.访问工作表8. 列操作9. 行操作10. 单元格操作 发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【宝…...

Java 多线程技术详解

文章目录 Java 多线程技术详解目录引言多线程的概念为什么使用多线程&#xff1f;多线程的特征多线程的挑战 多线程的实现方式3.1 继承 Thread 类示例代码&#xff1a; 3.2 实现 Runnable 接口示例代码&#xff1a; 3.3 使用 Executor 框架示例代码&#xff1a; 3.4 使用 Calla…...

一份简单实用的MATLAB M语言编码风格指南

MATLAB M语言编码风格指南 1. 文件命名2. 函数命名3. 注释4. 变量命名5. 布局、注释和文档6. 代码结构7. 错误处理8. 性能优化9. 格式化输出 MATLAB M文件的编码规范对于确保代码的可读性、可维护性和一致性非常重要。下面是一份MATLAB M语言编码规范的建议&#xff0c;可以作为…...