电力系统时间同步系统之三
2.6 电力系统时间同步装置
时间同步装置主要完成时间信号和时间信息的同步传递,并提供相应的时间格式和物理接口。时间同步装置主要由三大部分组成:时间输入、内部时钟和时间输出,如图 2-25 所示。输入装置的时间信号和时间信息的精度必须不低于装置输出的时间信号和时间信息的精度的要求,以确保被授时设备正常工作。
2.6.1 时间同步装置的输入
时间同步装置的时间输入分为无线时间基准信号和有线时间基准信号两类。无线时间基准信号主要指北斗卫星时间信号和 GPS 卫星时间信号,有线时间基准信号主要指 IRIG-B(DC)(直流 B 码)和 PTP,如图 2-26 所示。 时间同步装置通过北斗天线和接收模块可以获取秒脉冲(BD_1PPS)信号和串口通信(BD_TXD,BD_RXD)提供时间信息。北斗的时间信息主要包括:年、月、日、时、分、秒、闰秒、质量、星历等。同样,也可以获取 GPS 提供的秒脉冲(GPS_1PPS)和时间信息。IRIG-B(DC)通过可编程逻辑电路进行解码和秒脉冲提取,获得 B_1PPS 和时间信息。通过 PTP 网络芯片和逻辑电路进行报文解析、组装和秒脉冲的提取,获取 PTP_1PPS 和时间信息。
由于从不同时间源提取出的秒脉冲(BD_1PPS、GPS_1PPS、B_1PPS、PTP_1PPS)在硬件处理传递过程中会产生不同的延时,需要做相应的校准补偿,以达到补偿后的各秒脉冲(IPPS_BD、IPPS_GPS、IPPS_B、IPPS_PTP)准确一致。秒沿补偿必须由硬件逻辑电路实现,利用秒脉冲周期性的特点做延时补偿,可以实现秒沿超前、滞后的校准。获取的各时间信息(TIME_BD、TIME_GPS、TIME_B、TIME_PTP)存入相应的存储单元中。
2.6.2 多时间源输入的选择
多时间源(北斗、GPS、IRIG-B(DC)、PTP)的输入是为了确保时间同步装置可用时间源的高可靠性,时间同步装置只选取一个时间源作为内部时钟的基准时间源,选取哪一个时间源必须做时间源有效性检测。时间源的有效性检测分为基本有效性检测和选择有效性检测。
(1)基本有效性检测主要是针对秒脉冲和时间信息所必备的基本特质进行检测。秒脉冲的基本特质包括其周期性和稳定性,时间信息的基本特质包括时间格式和连续递增。当满足了秒脉冲和时间信息的基本有效性检测后,才能确认该时间源基本有效,参与时间源的选择。
(2)选择有效性检测主要是检测多时间源之间以及与内部时钟的一致性,即:时间信息(年、月、日、时、分、秒)是否一致,秒沿互差是否小于某一阈值τ(如:5μs)。然后,从满足这两项检测后的时间源中,选取优先级的时间源作为外部时间源基准(IPPS_X、TIME_X)。
时间同步装置有三种工作状态:初始化、跟随和守时,如图 2-27 所示。
装置上电后,首先进入初始化状态,对外部时间源做有效性检测,此时内部时钟还未正常工作,装置闭锁时间输出。当多数外部时间源(3中取2,4中取3)有效时,即这些时间源的时间信息一致、秒沿互差小于τ时,选取其中优先级最高的作为内部时钟的基准,建立内部时钟。接下来装置进入跟随状态。
在跟随状态中,内部时钟进行频标源(恒温晶振、铷原子钟)的驯服工作,同时允许装置时间输出。当无有效的时间源时,装置进入守时状态;当有满足选择要求的时间源时,装置又恢复到跟随状态。
外部时间源的有效性决定了装置处于跟随状态还是守时状态,状态的切换遵从以下原则:
(1)当无基本有效时间源时,装置进入守时状态。
(2)当有 1 个基本有效时间源时,其与内部时钟满足选择有效性检测时,内部时钟按步进方式跟随外部时间源,否则进入守时状态。
(3)当有两个基本有效时间源时,以下 3 种情形处于跟随状态,否则进入守时状态:①若两个基本有效的时间源与内部时钟满足选择有效性检测,则内部时钟按步进方式跟随优先级高的时间源;②若只有 1 个时间源与内部时钟满足选择性检测,则内部时钟按步进方式跟随该时间源;③若两个基本有效的时间源与内部时钟不满足选择有效性检测,但它们之间满足选择有效性检测,则内部时钟按步进方式跟随优先级高的时间源。
(4)当有 N 个基本有效时间源时,以下两种情形处于跟随状态,否则进入守时状态:①若大于 N/2 个时间源与内部时钟满足选择有效性检测,则内部时钟按步进方式跟随优先级高的时间源;②若 N 个时间源之间满足选择有效性检测,则内部时钟按步进方式跟随优先级高的时间源。
2.6.3 时间同步装置的内部时钟
外部时间源经过输入部分的秒沿补偿、有效性检测、时间源选择后,进入内部时钟部分。内部时钟由秒沿差测量、频标源、秒脉冲发生器和时间计数器组成,如图 2-28 所示。频标源可以是恒温晶振、铷原子钟或铯原子钟,其输出的频率为 CLK,频率值的大小与对时间分辨率的要求有关,如分辨率要求为 100ms,则 CLK 为 10MHz。秒沿差测量根据输入的 2 路秒脉冲(PPS_X、PPS_Y)以及 CLK 信号,输出频标源的微调信号 AD(依据频标源的种类不同,AD 可以是模拟量或数字量电压)以及秒脉冲发生器的秒沿调节信号。时间计数器根据输入的秒脉冲(PPS_Y)生成秒、分、时、日、年等时间信息(TIME_Y)。
2.6.4 时间同步装置的输出
时间同步装置的输出是直接面向被授时设备的,其输出的时间信号物理输出接口和类型种类较多,如 IPPS、IPPM、IPPH、IRIG-B(DC)、IRIG-B(AC)、DCF77、串口报文、PTP、NTP/SNTP 等,同一种类路数不同,每一路传输距离亦不同。因此,为了保证到达每一个被授时设备的时间同步,每一路输出的秒脉冲信号都要做秒沿补偿,如图 2-29 所示。
2.7 电力系统时间同步网
电力系统时间同步网[3]由设在各级电网的调度机构、变电站(发电厂)等的时间同步系统组成。在满足技术要求的条件下,网内的时间同步系统可通过通信网络接收上一级时间同步系统发出的有线时间基准信号,也能为下一级时间同步系统提供有线时间基准信号,从而实现全网范围内有关设备的时间同步。时间同步网的组成如图 2-30 所示。在满足技术要求的前提下,网内不同时间同步系统之间的有线时间基准信号采用现有通信网络传递,以完成时间信息交换。
随着时间同步技术的日益成熟,除了变电站内的时间同步之外,调度主站与多个变电站之间的时间同步也成为电网建设的一个新课题。IEC 61850-90-1 中定义了多种涉及变电站间的操作,如纵联保护、站间互锁、平行线路多相重合闸、电流差动保护、系统完整性保护以及自动化业务相关的操作,因此要求主站以及各个厂站之间能够实现满足精度要求的站间时间同步。
目前主要通过卫星信号同步来实现各个变电站之间的相对时间同步,并未实现真正的同源时间同步网络,即各个变电站各自接收卫星信号,它们之间时间信号除自卫星获得外无其他联系,如图 2-31 所示。由于 GPS 卫星时钟源存在可能恶意降低精度(美国政府从其国家利益出发,通过降低广播星历精度,在 GPS 信号中加入高频抖动等方法,人为降低普通用户利用 GPS 进行导航定位时的精度的一种方法)、易受天气影响等技术和安全风险,因此必须能够有高精度、高可靠的地面广域时间同步机制。通过地面网络解署广域时间同步技术,来实现一种卫星信号之外的更大范围内的时间同步,确保该范围内的多个变电站参考时钟保持在要求的精度范围内,为多个变电站的统一管理提供时钟精度的保障。
从实现技术来看,电力系统地面时间同步机制至少包括四种:①基于 SDH 网 E1 通道的 DCLS 码广域时间同步技术;②基于数据网的 NTP 网络时间同步协议的广域时间同步技术;③基于数据网的 PTP 精确时间同步协议的广域同步技术;④基于 SDH 网 E1 通道的 PTP 精确时间同步协议的广域时间同步技术。
(1)基于 SDH 网 E1 通道的 DCLS 码广域时间同步技术。
这种机制利用电力通信网有丰富的同步数字体系(synchronous digital hierarchy,SDH)网 E1 通道资源,将调度主站主时钟输出的 DCLS 码传送到各所辖厂站,作为厂站主时钟的时间参考输入,实现广域时间同步,如图 2-32 所示。这种机制能够充分利用已有 SDH 资源,不需要搭建新的时间同步网络,建设成本低,时间同步精度较低,为毫秒级。由于 DCLS 是单向传输,无法自动补偿 E1 通道延时引入的误差,需要人工补偿,同时不能适应 E1 通道的动态调整,因此运行维护不方便该技术不适合同步精度要求1μs的电网生产系统的时间同步,可以用于同步精度要求不高的场合,如通信网网管系统时间同步、信息系统时间同步等。
(2)基于数据网的 NTP 网络时间同步协议的广域时间同步技术。
这种机制利用电力系统数据网的资源,将调度主站主时钟输出的 NTP 时间信号传送到各所辖厂站,作为厂站主时钟的时间参考输入,实现广域时间同步,如图 2-33 所示。这种机制能够充分利用已有数据通信网资源,不需要搭建新的时间同步网,建设成本低,但时间同步精度低,为秒级,且受网络规模和流量影响。
该技术不适合同步精度要求 1μs 的电网生产系统的时间同步,可以用于同步精度要求不高的场合,如通信网管系统时间同步、信息系统时间同步等。
(3)基于数据网的 PTP 精确时间同步协议的广域时间同步技术。
自从 2002 年 IEEE 1588 精确时间同步协议发布以来,基于以太网的 1588 技术以其部署简单、与数据无缝融合、高对时精度等一系列技术优点迅速在智能变电站内得到广泛的应用;同样,在站间的时间同步应用上,也可以采用 1588 方案进行时钟的同步,考虑到 1588 协议需要端到端部署才能够保证时间同步的精度,所以基于 IEEE 1588 的广域时间同步技术需要数据网沿途路径能够支持 1588 协议,如图 2-34 所示。这一方案的优点在于能够实现端到端的 1588 高精度对时,通过 E2E 或 P2P 的透明钟在 10 跳路由的网络规模上实现 1500ns 的对时精度,而且能够无缝与变电站内部的 IEEE 1588 对时机制对接,实现整网 1588 的时间同步,便于进行时间状态和性能的实时监控管理,而且能够实现时间同步网络与数据承载网络的融合,从而不需要维护独立的两张网。但正如前面所介绍的,该方案必须端到端的所有设备都支持 IEEE 1588,尤其是骨干网所有设备需要全部升级成支持 1588,投资巨大,不太适合当前的时间同步应用水平。
(4)SDH 网 E1 通道的 PTP 精确时间同步协议的广域时间同步技术。
在智能电网的时间同步需求中,仍然需要一种既能够利用现有 SDH 资源,又能够将时间同步精度提高到 1μs 以内的广域时间同步技术。该技术在标准 PTP 算法的基础上,通过非对称时延自动补偿算法和 SDH 自愈倒换延时变化补偿算法,可以实现 1μs 以内的广域时间同步,且不受 SDH 网络规模的影响。该技术还需要控制 PTP 以太网报文封装成 SDH 帧时造成的延时抖动,同时确保 SDH 网的频率同步性能符合规范要求。如图 2-35 所示。该技术在电力系统中已成功应用,在成本和性能上取得了良好的均衡,是目前电力系统高精度时间同步的最新选择。
2.8 时间同步在线监测
电力系统时间同步是各类监控系统进行数据采样、故障处理、网络监管、信息管理及事故追忆和分析的基础,是系统安全运行的重要组成部分。任何参与时间同步的节点如果发生时间偏差问题,都可能影响系统的稳定运行。为了保证用户能实时掌握系统中时间运行状态,以及系统中相关参与时间同步的计算机、服务器、交换机、智能设备及相关其他系统的时间同步状态,建立一套完整的时间同步监测系统是非常必要的。
时间同步在线监测系统的目的就是全面监测授时设备的工作状态以及各种被授时系统及设备的运行工况[19-20],系统不仅可以弥补诸如 PPS/IRIG-B 等单方向对时的安全性和可靠性,而且可以对采用双向对时的 PTP/NTP 同步授时进行实时在线误差监测,实现全面的精确时间信息预报和维护,提高全网时间同步水平,保证系统的安全稳定运行。通过时间同步监测系统的建设,实现对全国直辖市/省/自治区以及各个地区的时间同步系统的全面监测与管理。
2.8.1 时间同步在线监测系统
时间同步在线监测系统实现对电力系统时间同步状态的监测,其中包括对提供时间同步信号的时间同步系统的时间偏差监测以及对接收时间同步信号的各类系统(如调度自动化系统、能量管理系统、生产信息管理系统、监控系统等)和设备(如继电保护装置、智能电子设备、事件顺序记录装置、厂站自动控制设备、安全稳定控制装置、故障录波器等)的时间同步状态监测。通过对监测对象的时间同步状态进行监视和管理,实现全网时间同步状态的管理。
时间同步在线监测系统的应用结构必须满足时间同步网的结构定义,时间同步网的应用结构如图 2-36 所示。电力系统采用分层分级的调度体系架构,决定了时间同步在线监测系统的管理运行体系。时间同步在线监测系统可在变电站、发电厂等地就地实现,通过数据通信系统可传送到远方调度控制中心,所有来自变电站、发电厂的时间同步信息通过调度专用通道到达不同的调度控制中心,实现信息的一体化管理和维护。
根据时间同步系统中时间同步网的结构建立时间同步在线监测系统的数据网络,时间同步在线监测系统的数据网络由设在各级电网的调度机构、变电站(发电厂)等电厂等的时间同步在线监测系统数据网络构成。如图 2-37 所示。时间同步在线监测系统的数据信息包括时间状态自检信息及时间状态测量信息。时间状态自检信息是被监测对象自己对时间同步状态的检测信息,时间状态测量信息是外部时间同步状态测量发起者对被监测对象的时间状态测量数据。时间状态自检信息反映了被监测对象的时间源状态信息及自身时间工作的服务状态信息。时间测量数据信息是外部测量发起者根据被测对象的特点进行时间状态测量,可检测被测对象的时间准确度及时间同步状态。
2.8.2 时间同步在线监测实施原则
时间同步系统以及被授时系统及设备的应用技术及实施方案已经在电力系统非常成熟和稳定。对于时间同步在线监测系统,为了尽可能在系统上做到兼容和可扩展性,必须具备合理的实施原则和方法,确保系统的正确性和安全性。
(1)对于提供 PPS/PPM 等脉冲输出时间信号的被监测对象,如果条件满足的话可通过接收相时刻 PPS/PPM 等脉冲时间信号进行信息记录和分析,通过数据对比分析完成时间同步状态的监视和管理。
(2)对于提供 IRIG-B 等输出时间信号的被监测对象,如果条件满足的话可通过接收其 IRIG-B 信号对其进行时间状态信息记录和分析,通过数据对比分析完成时间同步状态的监视和管理。
(3)对于通过 NTP 规约进行时间同步的被检测对象,如果条件满足的话可利用 NTP 规约提供的标准数据读取方法获取时间同步状态。
(4)对于支持通信的被检测对象,如果条件满足的话可通过通信规约的问答方式提供时间同步状态信息的记录和分析,通过对数据的分析判断其时间同步状态的工况。
(5)对于支持空接点输入的设备,可设置准时刻的状态量输入信息确保设备产生可记录的时间同步状态记录信息,通过对数据的分析判断确定其时间同步状态的工况。
(6)对于支持面向通用对象的变电站事件(generic object oriented substation event,GOOSE)订阅的智能设备,可设置触发单元,通过准时刻的 GOOSE 变位输出信息,由网络内的所有智能设备订阅此 GOOSE 信息并产生新的 GOOSE 变位信息,通过直接订阅各个监测对象的 GOOSE 变位信息可分析其时间同步状态。
(7)对于支持 SMV9-2 数据发布的智能设备,可采用对 SMV9-2 信息进行分析记录的方式,将 0 时刻采样数据信息进行分析,通过分析判断确定其时间同步状态的工况。
2.8.3 智能变电站时间同步在线监测方案
智能变电站时间同步在线监测的方案如图 2-38 所示,其中时间同步在线监测单元(TMU)和时间同步触发单元(TU)可以是一个装置设备也可以是现有系统中某个现成设备或系统的一个功能模块,其目的是通过一种方法和手段实现时间同步状态数据信息的在线监测,其优点是完全利用了智能变电站现有的技术手段和方法实现时间同步状态的在线监测。
2.8.4 常规变电站时间同步在线监测方案
常规变电站时间同步在线监测的方案如图 2-39 所示。其中时间同步在线监测单元(TMU)和时间同步触发单元(TU)可以是一个装置设备也可以是现有系统中某个设备或系统的一个功能模块,其目的是通过一种方法和手段实现时间同步状态数据信息的在线监测,其优点是完全利用了常规变电站现有的技术手段和方法实现时间同步状态的在线监测。
2.9 时间同步系统安全性
电力系统时间同步安全是指时钟输出信号和被授时设备的守时时间应该连续、稳定、可靠,不应出现时间跳变、断续以及紊乱,同时在与授时设备进行基于数据网络的时间同步时应满足《电力二次系统安全防护总体方案》的要求,总体包括时钟源安全和数据流安全两个方面的内容。
2.9.1 时钟源安全性
目前电力系统时间同步装置基本接收北斗和 GPS 信号作为时间源,接收地面时钟源的很少,为了实现失去外信源后的卫星守时功能,时钟本身配有铷原子振荡器、铯原子振荡器或高精度晶振作为内部信源。在运行时,单独选择哪种时钟源作为标准都存在不安全性,因为一旦出现异常或者故障都无法向被授时设备提供准确、连续、稳定的时间。这就要求时钟在信源选择时具备多元选择功能,所谓多元选择,就是时间同步装置根据得到的多种时钟源经过分析、运算、处理后输出稳定、连续、满足精度要求的时间。
2.9.2 数据流安全性
(1)NTP 信息安全。
NTP 的安全需求要远高于其他的分布式服务[22]。首先,认证机制和时间同步机制的操作无法避免的融为一体,一方面可靠的时间同步要有密钥,另一方面密钥只有在指定的时间间隔上才有效,而时间间隔只有在相关的服务器和客户端与 UTC 可靠同步时才能生效。另外,NTP 子网是分层的,时间的报文流是从根服务器通过二级服务器流到叶节点上的客户端。只有当到达主服务器路径上的所有服务器都可信时,客户才可以宣称从属应用是可靠的。在 NTP 里面,每个服务器验证其下一层服务器,并可通过归纳验证最底层的服务器(主服务器)。
由可信的概念,可以可信联系,如果服务器的证书和身份通过了校验,那么联系就是可信的。虽然如此客户与可信源同步意味着系统时钟使用了一个个或几个可信联系的时间值进行重置,并且遵从 NTP 分洪(mitigation)算法。当证书机构签署证书请求时必须满足可信要求,而证书本身可以存储在公共目录里,并且可以在不安全的网络路径进行检索。在安全模型里,最基本的假设是网络上传输的包可能被期望的接收者以外的人截获,截获者以各种方式重构包,部分或全部重放包,然后再继续传输或者给以响应。这些包可能会使得客户认为可信或者得出错误的信息,从而使得协议操作失败,网络服务中断或者宝贵的网络和处理器资源被耗尽。
对于 NTP 来说,入侵者的理论目标有:植入错误的时间值;破坏协议;用伪造的包来堵塞网络、服务器和客户,从而耗尽资源并否定对合法应用的服务。对于这些可能存在的入侵,NTP 建立了大量的防护机制,最基本的防护机制是时间戳交换机制。它先天就能防止欺骗和重播攻击。加强的防护过滤、选择和群集算法被用于抵抗拜占庭式的恶意攻击。当没有特别的指定防御顽固入侵者时,这些算法和相应的检测很好地防止了不当操作。尽管如此,这些机制并没有为客户提供安全的鉴别和服务安全验证提供充分的保证。
(2)PTP 信息安全。
IEC 61588 技术对设备硬件处理能力有较高的要求,它不仅需要设备识别 PTP 报文,并且将识别的 PTP 报文打上时间戳,CPU 处理 PTP 报文,以获得准确的时间准确度,下面我们以 bardcom 交换芯片为例,描述 PTP 报文的处理过程。
首先交换机 CPU 生成 Sync 报文,并将它发送给交换芯片,交换芯片识别到 Sync 报文并优先发送给 MAC 层,在 MAC 出口打上报文发送时间戳,发送出去,并将发送时刻信息返回给 CPU。CPU 中断,读取时间戳信息并插入到 Follow_up 报文中再发送出去。交换机发送时间戳报文的处理流程,如图 2-40 所示。图 2-41 是交换机接收时间戳报文的处理流程图,首先 MAC 接收到事件报文并打上时间戳,分析器从大量报文中解析 PTP 同步报文,并将同步报文优先发送给 CPU,CPU 根据接收到的 Sync 报文和 Follow_up 报文,计算本地时钟。
由以上过程可知,在 IEC 61588 技术中,CPU 和 MAC 起到了非常关键的作用,它们承担了 PTP 协议报文生成、时间戳记录、时间计算的作用,而在整个处理过程中,它们是硬件处理的瓶颈,如果系统不完善同时发生频率过快,sequenced 不连续,恶意的协议攻击或者网络风暴等现象将导致设备失效,甚至系统瘫痪。图 2-42 是 PTP 系统在网络负载为 30M 情况下对时精度测试结果,框内显示对时精度为 -31.269ms,已经无法满足智能变电站需求,而实验室测试过程中还发现数小时甚至几天的时间跳动。
这样的数据帧报文,可能成为攻击者伪造和复制的对象,影响 PTP 时钟系统的安全性。
参考文献
[1] 刘万顺. 电力系统故障分析 [M]. 中国电力出版社,2010.
[2] DL/T 516—2006 电力调度自动化系统运行管理规程 [S].
[3] DL/T 1100. 1—2009 电力系统的时间同步系统 第 1 部分:技术规范 [S].
[4] DL 451—1991 输电线路远方控制规约 [S].
[5] DL/T 630—1997 远动系统传输规约 [S].
[6] GB/T 19391—2003 全球定位系统(GPS)术语及定义 [S].
[7] ANSI/TUA/EIA 485-A-1998 Electrical characteristics of generators and receivers for use in balanced digital multipoint systems [S].
[8] IRIG Standard 200 IRIG Serial Time Code Formats [S].
[9] GB/T 6107—2000 使用串行二进制数据交换的数据终端设备和数据电路终端设备之间的接口(idt EIA/TIA-232-E)[S].
[10] RFC 1305 Network Time Protocol(Version 3)Specification, Implementation, and Analysis [S].
[11] RFC 2030 Simple Network Time Protocol(SNTP)Version 4 for IPv4, IPv6 and OSI [S].
[12] D. L. Mills RFC 958 - Network Time Protocol(NTP)[S].
[13] D. L. Mills RFC1059 Network Time Protocol(Version 1)Specification and Implementation [S].
[14] GB/T 25931—2010 网络测量和控制系统的精确时间同步协议(idt IEC 61588:2009)[S].
[15] DL/T 1100. 2—2013 电力系统的时间同步系统 第 2 部分:基于局域网的精确时间同步 [S].
[16] NMEA 0183 Version 4. 10 [S].
[17] DL/T 860 变电站通信网络和系统系列标准(idt IEC 61850)[S].
[18] 于跃海,张道农,胡永辉,等. 电力系统时间同步方案 [J]. 电力系统自动化,2008(7).
[19] 彭志强,霍雪松,曾飞,等. 电力系统时间同步状态在线监测技术应用分析 [J]. 华东电力,2014(10).
[20] 李澄,陈颖,宁艳. 二次设备时间同步状态在线监测系统研究 [J]. 江苏电机工程,2012(1).
[21] 国家电力监管委员会令第 5 号 电力二次系统安全防护规定 [Z].
[22] 洪锡联. 网络时间同步及其安全性研究 [D]. 北京:北京化工大学,2008.
相关文章:

电力系统时间同步系统之三
2.6 电力系统时间同步装置 时间同步装置主要完成时间信号和时间信息的同步传递,并提供相应的时间格式和物理接口。时间同步装置主要由三大部分组成:时间输入、内部时钟和时间输出,如图 2-25 所示。输入装置的时间信号和时间信息的精度必须不…...

火语言RPA--界面应用详解
新建一个界面应用后,软件将自动弹出一个界面设计器,本篇将介绍下流程设计器中各部分的功能。 UI控件列表 显示软件中自带的所有UI控件流程库 流程是颗粒组件的容器,可在建立的流程中添加颗粒组件编写成规则流程。 流程编辑好后再绑定UI控件…...

基于Spring Boot的云音乐平台设计与实现
基于Spring Boot的云音乐平台设计与实现——集成协同过滤推荐算法的全栈项目实战 📖 文章目录 项目概述技术选型与架构设计数据库设计后端核心功能实现推荐算法设计与实现前端交互设计系统优化与性能提升项目部署与测试总结与展望 项目概述 🎯 项目背…...

Neovim - 打造一款属于自己的编辑器(一)
文章目录 前言(劝退)neovim 安装neovim 配置配置文件位置第一个 hello world 代码拆分 neovim 配置正式配置 neovim基础配置自定义键位Lazy 插件管理器配置tokyonight 插件配置BufferLine 插件配置自动补全括号 / 引号 插件配置 前言(劝退&am…...

RAG检索系统的两大核心利器——Embedding模型和Rerank模型
在RAG系统中,有两个非常重要的模型一个是Embedding模型,另一个则是Rerank模型;这两个模型在RAG中扮演着重要角色。 Embedding模型的作用是把数据向量化,通过降维的方式,使得可以通过欧式距离,余弦函数等计算…...

CLion社区免费后,使用CLion开发STM32相关工具资源汇总与入门教程
Clion下载与配置 Clion推出社区免费,就是需要注册一个账号使用,大家就不用去找破解版版本了,jetbrains家的IDEA用过的都说好,这里嵌入式领域也推荐使用。 CLion官网下载地址 安装没有什么特别,下一步就好。 启动登录…...

第21讲、Odoo 18 配置机制详解
Odoo 18 配置机制详解:res.config.settings 与 ir.config_parameter 原理与实战指南 在现代企业信息化系统中,灵活且可维护的系统参数配置是模块开发的核心能力之一。Odoo 作为一款高度模块化的企业管理软件,其参数配置机制主要依赖于两个关…...
LinkedList、Vector、Set
LinkedList 基本概念 LinkedList 是一个双向链表的实现类,它实现了 List、Deque、Queue 和 Cloneable 接口,底层使用双向链表结构,适合频繁插入和删除操作。 主要特点 有序,可重复。 查询速度较慢,插入/删除速度较…...
SQL 基础入门
SQL 基础入门 SQL(全称 Structured Query Language,结构化查询语言)是用于操作关系型数据库的标准语言,主要用于数据的查询、新增、修改和删除。本文面向初学者,介绍 SQL 的基础概念和核心操作。 1. 常见的 SQL 数据…...
GitHub 趋势日报 (2025年06月05日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 1472 onlook 991 HowToCook 752 ChinaTextbook 649 quarkdown 451 scrapy 324 age…...
基于Flask框架的前后端分离项目开发流程是怎样的?
基于Flask框架的前后端分离项目开发流程可分为需求分析、架构设计、并行开发、集成测试和部署上线五个阶段。以下是详细步骤和技术要点: 一、需求分析与规划 1. 明确项目边界 功能范围:确定核心功能(如用户认证、数据管理、支付流程&#…...
Delphi SetFileSecurity 设置安全描述符
在Delphi中,使用Windows API函数SetFileSecurity来设置文件或目录的安全描述符时,你需要正确地构建一个安全描述符(SECURITY_DESCRIPTOR结构)。这个过程涉及到几个步骤,包括创建或修改安全描述符、设置访问控制列表&am…...
rec_pphgnetv2完整代码学习(二)
六、TheseusLayer PaddleOCRv5 中的 TheseusLayer 深度解析 TheseusLayer 是 PaddleOCRv5 中 rec_pphgnetv2 模型的核心网络抽象层,提供了强大的网络结构调整和特征提取能力。以下是对其代码的详细解读: 1. 整体设计思想 核心概念: 网络…...

【计算机网络】Linux下简单的TCP服务器(超详细)
服务端 创建套接字 💻我们将TCP服务器封装成一个类,当我们定义出一个服务器对象后需要马上对服务器进行初始化,而初始化TCP服务器要做的第一件事就是创建套接字。 TCP服务器在调用socket函数创建套接字时,参数设置如下࿱…...
go中的接口返回设计思想
go中的接口返回设计思想 前言 在学习AI编码过程中,产生了类似以下结构的代码 : type MQClient interface {PublishMessage(queue string, message interface{}) error...... } ... type RabbitMQClient struct {conn *amqp.Connectionchannel *amqp.C…...

最新Spring Security实战教程(十七)企业级安全方案设计 - 多因素认证(MFA)实现
🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》…...

html+css+js趣味小游戏~Cookie Clicker放置休闲(附源码)
下面是一个简单的记忆卡片配对游戏的完整代码,使用HTML、CSS和JavaScript实现: html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"wid…...
宝塔面板安装nodejs后,通过node -v获取不到版本号,报错node: command not found
如果在 宝塔面板 安装了 Node.js,但运行 node -v 或 npm -v 时提示 command not found,通常是因为 Node.js 的路径未正确添加到系统环境变量。以下是解决方法: 1. 确认 Node.js 是否安装成功 (1)检查宝塔面板的 Node.…...

SDC命令详解:使用set_propagated_clock命令进行约束
相关阅读 SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482 目录 指定端口列表/集合 简单使用 注意事项 传播时钟是在进行了时钟树综合后,使用set_propagated_clock命令可以将一个理想时钟转换为传播时钟&#x…...

win32相关(消息Hook)
消息Hook 要想实现消息Hook需要使用到三个相关的Api SetWindowsHookEx // 设置钩子CallNextHookEx // 将钩子信息传递到当前钩子链中的下一个子程序UnhookWindowsHookEx // 卸载钩子 我们编写的消息钩子需要将设置钩子的函数写到dll里面,当钩住一个线程后ÿ…...
vue3单独封装表单校验函数
1.在页面中建一个.ts文件 import { useI18n } from /hooks/web/useI18n import { FormItemRule } from element-plusconst { t } useI18n()interface LengthRange {min: numbermax: numbermessage?: string } //必输项校验 export const useValidator () > {const requi…...

mysql 页的理解和实际分析
目录 页(Page)是 Innodb 存储引擎用于管理数据的最小磁盘单位B树的一般高度记录在页中的存储 innodb ibd文件innodb 页类型分析ibd文件查看数据表的行格式查看ibd文件 分析 ibd的第4个页:B-tree Node类型先分析File Header(38字节-描述页信息…...
分享一道力扣
刚刚笔试遇到的。好像很简单,但又不容易写的 611 有效三角形 def triangleNumber(self, nums):count 0nums.sort()for i in range(len(nums) - 2):k i 2for j in range(i 1, len(nums) - 1):if nums[i] 0:breakwhile k < len(nums) and nums[i] nums[j] &g…...
青少年编程与数学 01-011 系统软件简介 06 Android操作系统
青少年编程与数学 01-011 系统软件简介 06 Android操作系统 一、历史发展二、核心架构1. Linux 内核层 (Linux Kernel)2. 硬件抽象层 (Hardware Abstraction Layer - HAL)3. Native 层 (Native Libraries & Android Runtime)4. Java API 框架层 (Java Framework Layer)5. 应…...

构建 MCP 服务器:第 2 部分 — 使用资源模板扩展资源
该图像是使用 AI 图像创建程序创建的。 这个故事是在多位人工智能助手的帮助下写成的。 这是构建MCP 服务器教程(共四部分)的第二部分。在第一部分中,我们使用基本资源创建了第一个 MCP 服务器。现在,我们将使用资源模板扩展服务…...

【算法设计与分析】实验——汽车加油问题, 删数问题(算法实现:代码,测试用例,结果分析,算法思路分析,总结)
说明:博主是大学生,有一门课是算法设计与分析,这是博主记录课程实验报告的内容,题目是老师给的,其他内容和代码均为原创,可以参考学习,转载和搬运需评论吱声并注明出处哦。 4-1算法实现题 汽车…...
Ubuntu2404 下搭建 Zephyr 开发环境
1. 系统要求 操作系统:Ubuntu2404(64位)磁盘空间:至少 8GB 可用空间(Zephyr 及其工具链较大) 2. 安装必要工具 Tool Min. Version CMake 3.20.5 Python 3.10 Devicetree compiler 1.4.6 2.1 安装系…...
现代C++特性(一):基本数据类型扩展
文章目录 基础数据类型long long (C 11)numeric_limits()获取当前数据类型的最值warning C4309: “”: 截断常量值新字符类型char16_t和char32_tWindows编程常用字符类型wchar_tchar8_t (C 20) 基础数据类型 C中的基本类型是构建其他数据类型的基础,常见的基础类型…...

【C++进阶篇】C++11新特性(下篇)
C函数式编程黑魔法:Lambda与包装器实战全解析 一. lambda表达式1.1 仿函数使用1.2 lambda表达式的语法1.3 lambda表达式使用1.3.1 传值和传引用捕捉1.3.2 隐式捕捉1.3.3 混合捕捉 1.4 lambda表达式原理1.5 lambda优点及建议 二. 包装器2.1 function2.2 bind绑定 三.…...

全生命周期的智慧城市管理
前言 全生命周期的智慧城市管理。未来,城市将在 实现从基础设施建设、日常运营到数据管理的 全生命周期统筹。这将避免过去智慧城市建设 中出现的“碎片化”问题,实现资源的高效配 置和项目的协调发展。城市管理者将运用先进 的信息技术,如物…...