一文搞懂OPC质量码

news2026/4/5 8:48:54

在工业自动化系统中,数据的可靠性和准确性至关重要。为了有效管理和监控数据质量,OPC(OLE for Process Control)标准引入了质量码(Quality Codes),用于描述和标识数据的状态和可用性。本文将深入探讨OPC质量码的背景、结构以及常见的应用场景。

什么是OPC质量码?

OPC质量码是一种标准化的表示方式,用于指示数据质量的状态。它们通过数字码的形式提供了关于数据的各种信息,例如数据是否有效、是否有异常、是否可信等。这些码是OPC通信协议中的一部分,不仅在实时数据访问(如OPC DA)中使用广泛,也在更复杂的系统中(如OPC UA)扮演重要角色。

OPC质量码的分类

OPC DA 质量代码

OPC DA使用16位的质量代码来表示数据的质量状态。这些质量代码由主质量(Major Quality)和子质量(Substatus)组成,并且还包含一些特定的位来表示更多详细信息。质量代码的结构如下:

  • 质量代码(16位)
    • 主要质量(2位):Good(00),Uncertain(01),Bad(10)
    • 子状态(6位):提供详细的状态信息
    • 限制位(2位):表示值是否超过范围
    • 保留位(6位):用于扩展或特定应用

常见的OPC DA质量代码:

  • 0xC0 - Bad
  • 0x80 - Uncertain
  • 0x00 - Good
  • 例如:
    • 0xC0:Bad,通用错误
    • 0x84:Uncertain,非正常
    • 0x00:Good,正常

OPC UA 质量代码

OPC UA使用32位的状态代码(Status Codes)来表示数据的质量状态,比OPC DA提供了更详细和结构化的表示方式。状态代码不仅仅表示质量,还可以包括诊断信息和其他扩展信息。

状态代码的结构如下:

  • 状态代码(32位)
    • 主要质量(位 31-30):Good(00),Uncertain(01),Bad(10)
    • 子状态(位 29-16):提供详细的状态信息
    • 限制位和保留位(位 15-0):用于扩展和特定用途

常见的OPC UA质量代码:

  • 0x00000000 - Good
  • 0x40000000 - Uncertain
  • 0x80000000 - Bad
  • 例如:
    • 0x80070000:Bad,通用错误
    • 0x40090000:Uncertain,非正常
    • 0x00000000:Good,正常

比较与总结

  1. 表示方式

    • OPC DA使用16位质量代码,包含主要质量和子状态。
    • OPC UA使用32位状态代码,包含更多的详细信息和扩展能力。
  2. 扩展性

    • OPC UA提供了更强的扩展能力,能够表示更多的状态和诊断信息。
    • OPC DA的质量代码结构相对简单,适用于实时数据访问。
  3. 使用场景

    • OPC DA主要用于传统的实时数据访问场景。
    • OPC UA不仅用于实时数据访问,还用于报警、历史数据访问和其他高级功能,适用于更复杂的工业自动化场景。

总体来说,OPC UA的质量代码比OPC DA的质量代码更加详细和灵活,适应了现代工业自动化系统的复杂需求。

OPC质量码记录

OPCUA质量码

infocode描述
0x00000000操作成功。
不确定0x40000000值不确定,但原因不明。
0x80000000值为坏,但原因不明。
Bad_UnexpectedError0x80010000发生非预期错误。
Bad_InternalError0x80020000编程或配置错误时发生内部错误。
Bad_OutOfMemory0x80030000完成操作所需内存不足。
Bad_ResourceUnavailable0x80040000操作系统资源不可用。
Bad_CommunicationError0x80050000发生底层通信错误。
Bad_EncodingError0x80060000正在序列化的对象中有非法数据,编码暂停。
Bad_DecodingError0x80070000数据流中有非法数据,解码暂停。
Bad_EncodingLimitsExceeded0x80080000栈设置的消息编码和解码限制已超出。
Bad_RequestTooLarge0x80B80000请求消息大小超出了服务器设置的限制。
Bad_ResponseTooLarge0x80B90000响应消息大小超出了客户端设置的限制。
Bad_UnknownResponse0x80090000从服务器接收到的响应无法识别。
Bad_Timeout0x800A0000操作超时。
Bad_ServiceUnsupported0x800B0000服务器不支持请求的服务。
Bad_Shutdown0x800C0000应用程序正在关闭,所以操作取消。
Bad_ServerNotConnected0x800D0000由于客户端未连接至服务器,操作无法完成。
Bad_ServerHalted0x800E0000服务器已停止,无法处理任何请求。
Bad_NothingToDo0x800F0000客户端传入的操作列表中无任何元素,因此不会执行任何操作。
Bad_TooManyOperations0x80100000请求指定的操作过多,无法进行处理。
Bad_TooManyMonitoredItems0x80DB0000由于订阅中的监视项过多,无法处理请求。
Bad_DataTypeIdUnknown0x80110000由于数据类型ID无法识别,扩展对象无法序列化或解序列化。
Bad_CertificateInvalid0x80120000提供的证书不是有效参数。
Bad_SecurityChecksFailed0x80130000验证安全时发生错误。
Bad_CertificateTimeInvalid0x80140000证书已过期或尚未生效。
Bad_CertificateIssuerTimeInvalid0x80150000发布方证书已过期或尚未生效。
Bad_CertificateHostNameInvalid0x80160000用于连接服务器的主机名与证书中的主机名不匹配。
Bad_CertificateUriInvalid0x80170000应用程序说明中指定的URI与证书中的URI不匹配。
Bad_CertificateUseNotAllowed0x80180000证书可能无法用于请求的操作。
Bad_CertificateIssuerUseNotAllowed0x80190000发布方证书可能无法用于请求的操作。
Bad_CertificateUntrusted0x801A0000证书未被信任。
Bad_CertificateRevocationUnknown0x801B0000无法确定证书是否已被吊销。
Bad_CertificateIssuerRevocationUnknown0x801C0000无法确定发布方证书是否已被吊销。
Bad_CertificateRevoked0x801D0000证书已被吊销。
Bad_CertificateIssuerRevoked0x801E0000发布方证书已被吊销。
Bad_UserAccessDenied0x801F0000用户无权限执行请求的操作。
Bad_IdentityTokenInvalid0x80200000用户身份令牌无效。
Bad_IdentityTokenRejected0x80210000用户身份令牌有效,但服务器拒绝该令牌。
Bad_SecureChannelIdInvalid0x80220000指定的安全通道不再有效。
Bad_InvalidTimestamp0x80230000时间标识超出了服务器允许的范围。
Bad_NonceInvalid0x80240000Nonce不是一个随机值,或长度不符合要求。
Bad_SessionIdInvalid0x80250000会话ID无效。
Bad_SessionClosed0x80260000会话已被客户端关闭。
Bad_SessionNotActivated0x80270000由于未调用ActivateSession,无法使用会话。
Bad_SubscriptionIdInvalid0x80280000订阅ID无效。
Bad_RequestHeaderInvalid0x802A0000请求的标头无效或丢失。
Bad_TimestampsToReturnInvalid0x802B0000要返回参数的时间标识无效。
Bad_RequestCancelledByClient0x802C0000请求已被客户端取消。
Good_SubscriptionTransferred0x002D0000订阅被转移至另一个会话。
Good_CompletesAsynchronously0x002E0000处理过程将异步完成。
Good_Overload0x002F0000由于资源限制,采样速度已降低。
Good_Clamped0x00300000写入的值已被接受,但未限定范围。
Bad_NoCommunication0x80310000已定义与数据源之间的通信,但尚未建立通信,无可用的最近已知值。
Bad_WaitingForInitialData0x80320000等待服务器从底层数据源获取值。
Bad_NodeIdInvalid0x80330000节点ID的语法无效。
Bad_NodeIdUnknown0x80340000节点ID指向服务器地址空间中不存在的节点。
Bad_AttributeIdInvalid0x80350000指定的节点不支持该属性。
Bad_IndexRangeInvalid0x80360000索引范围参数的语法无效。
Bad_IndexRangeNoData0x80370000指定的索引范围内无数据存在。
Bad_DataEncodingInvalid0x80380000数据编码无效。
Bad_DataEncodingUnsupported0x80390000服务器不支持为该节点请求的数据编码。
Bad_NotReadable0x803A0000访问等级不允许读取或订阅该节点。
Bad_NotWritable0x803B0000访问等级不允许写入节点。
Bad_OutOfRange0x803C0000值超出范围。
Bad_NotSupported0x803D0000不支持请求的操作。
Bad_NotFound0x803E0000请求的项未找到,或搜索操作已结束但无结果。
Bad_ObjectDeleted0x803F0000对象已被删除,无法使用。
Bad_NotImplemented0x80400000求取的操作未执行。
Bad_MonitoringModeInvalid0x80410000监视模式无效。
Bad_MonitoredItemIdInvalid0x80420000监视ID未指向有效的监视项。
Bad_MonitoredItemFilterInvalid0x80430000监视项的过滤参数无效。
Bad_MonitoredItemFilterUnsupported0x80440000服务器不支持请求的监视项筛选器。
Bad_FilterNotAllowed0x80450000监视筛选器无法与指定的属性配合使用。
Bad_StructureMissing0x80460000强制性架构的参数丢失或为空。
Bad_EventFilterInvalid0x80470000事件过滤器无效。
Bad_ContentFilterInvalid0x80480000内容过滤器无效。
Bad_FilterOperatorInvalid0x80C10000过滤器中提供了无法识别的运算符。
Bad_FilterOperatorUnsupported0x80C20000提供的运算符有效,但服务器不支持该过滤器运算符。
Bad_FilterOperandCountMismatch0x80C30000为过滤器运算符提供的操作数少于期望的操作数。
Bad_FilterOperandInvalid0x80490000内容过滤器中使用的操作数无效。
Bad_FilterElementInvalid0x80C40000引用的元素不是内容过滤器中的有效元素。
Bad_FilterLiteralInvalid0x80C50000引用的字面值不是有效值。
Bad_ContinuationPointInvalid0x804A0000连续点不再有效。
Bad_NoContinuationPoints0x804B0000由于所有的连续点已被分配,无法处理该操作。
Bad_ReferenceTypeIdInvalid0x804C0000引用类型ID无效。
Bad_BrowseDirectionInvalid0x804D0000浏览方向无效。
Bad_NodeNotInView0x804E0000节点不是视图的一部分。
Bad_ServerUriInvalid0x804F0000ServerUri不是有效的URI。
Bad_ServerNameMissing0x80500000未指定ServerName。
Bad_DiscoveryUrlMissing0x80510000未指定DiscoveryUrl。
Bad_SempahoreFileMissing0x80520000客户端指定的信号量文件无效。
Bad_RequestTypeInvalid0x80530000安全令牌请求类型无效。
Bad_SecurityModeRejected0x80540000安全模式不满足服务器设定的要求。
Bad_SecurityPolicyRejected0x80550000安全策略不满足服务器设定的要求。
Bad_TooManySessions0x80560000服务器已达到最大会话数量。
Bad_UserSignatureInvalid0x80570000用户令牌签名丢失或无效。
Bad_ApplicationSignatureInvalid0x80580000使用客户端证书生成的签名丢失或无效。
Bad_NoValidCertificates0x80590000客户端未向服务器提供至少一个有效且满足性能要求的软件证书。
Bad_IdentityChangeNotSupported0x80C60000服务器不支持更改为会话分配的用户身份。
Bad_RequestCancelledByRequest0x805A0000客户端通过Cancel服务取消了请求。
Bad_ParentNodeIdInvalid0x805B0000父节点ID未指向有效的节点。
Bad_ReferenceNotAllowed0x805C0000由于引用违反了数据模型设定的约束条件,无法创建引用。
Bad_NodeIdRejected0x805D0000由于节点ID无效或服务器不允许客户端指定节点ID,请求的节点ID被拒绝。
Bad_NodeIdExists0x805E0000请求的节点ID已被另一个节点使用。
Bad_NodeClassInvalid0x805F0000节点类无效。
Bad_BrowseNameInvalid0x80600000浏览器名称无效。
Bad_BrowseNameDuplicated0x80610000浏览名称不是共享相同父节点关系的节点中的唯一名称。
Bad_NodeAttributesInvalid0x80620000节点类的节点属性无效。
Bad_TypeDefinitionInvalid0x80630000类型定义节点ID未引用正确的类型节点。
Bad_SourceNodeIdInvalid0x80640000源节点ID未引用有效的节点。
Bad_TargetNodeIdInvalid0x80650000目标节点ID未引用有效的节点。
Bad_DuplicateReferenceNotAllowed0x80660000节点间的引用类型已被定义。
Bad_InvalidSelfReference0x80670000服务器在该节点上不允许此类自引用。
Bad_ReferenceLocalOnly0x80680000远程服务器引用的引用类型无效。
Bad_NoDeleteRights0x80690000服务器不允许删除节点。
Uncertain_ReferenceNotDeleted0x40BC0000服务器无法删除所有目标引用。
Bad_ServerIndexInvalid0x806A0000服务器索引无效。
Bad_ViewIdUnknown0x806B0000视图ID未指向有效的视图节点。
Bad_ViewTimestampInvalid0x80C90000视图时间标识不可用或不受支持。
Bad_ViewParameterMismatch0x80CA0000视图参数彼此不一致。
Bad_ViewVersionInvalid0x80CB0000视图版本不可用或不受支持。
Uncertain_NotAllNodesAvailable0x40C00000由于底层系统不可用,引用列表可能不完整。
Good_ResultsMayBeIncomplete0x00BA0000服务器应跟踪远程服务器的节点引用,但并未跟踪。结果集可能不完整。
Bad_NotTypeDefinition0x80C80000提供的节点ID不是自定义类型节点ID。
Uncertain_ReferenceOutOfServer0x406C0000相对路径中要跟踪的引用之一指向了另一服务器上地址空间中的节点。
Bad_TooManyMatches0x806D0000请求操作的返回匹配数量过多。
Bad_QueryTooComplex0x806E0000请求操作需要的服务器资源过多。
Bad_NoMatch0x806F0000请求的操作无匹配可返回。
Bad_MaxAgeInvalid0x80700000最大年龄参数无效。
Bad_HistoryOperationInvalid0x80710000历史详情参数无效。
Bad_HistoryOperationUnsupported0x80720000服务器不支持请求的操作。
Bad_InvalidTimestampArgument0x80BD0000定义的返回的时间标识无效。
Bad_WriteNotSupported0x80730000服务器不支持写入所提供的值、状态和时间标识的组合。
Bad_TypeMismatch0x80740000为属性提供的值与属性值的类型不匹配。
Bad_MethodInvalid0x80750000方法ID未指向指定对象的方法。
Bad_ArgumentsMissing0x80760000客户端未指定该方法的全部输入参数。
Bad_TooManySubscriptions0x80770000服务器已达到最大订阅数量。
Bad_TooManyPublishRequests0x80780000服务器已达到最大发布请求队列数量。
Bad_NoSubscription0x80790000无订阅可用于该会话。
Bad_SequenceNumberUnknown0x807A0000序列号对于服务器未知。
Bad_MessageNotAvailable0x807B0000请求的通知消息不再可用。
Bad_InsufficientClientProfile0x807C0000当前会话的客户端不支持订阅所需的一个或多个性能。
Bad_StateNotActive0x80BF0000子状态机当前不是活动状态。
Bad_TcpServerTooBusy0x807D0000服务器过于忙碌,无法处理请求。
Bad_TcpMessageTypeInvalid0x807E0000标头中指定的消息类型无效。
Bad_TcpSecureChannelUnknown0x807F0000SecureChannelId和/或TokenId当前未被使用。
Bad_TcpMessageTooLarge0x80800000标头中指定的消息大小过大。
Bad_TcpNotEnoughResources0x80810000无足够的资源处理请求。
Bad_TcpInternalError0x80820000发生内部错误。
Bad_TcpEndpointUrlInvalid0x80830000服务器未识别指定的QueryString。
Bad_RequestInterrupted0x80840000由于网络中断,无法发送请求。
Bad_RequestTimeout0x80850000处理请求时发生超时。
Bad_SecureChannelClosed0x80860000安全通道已关闭。
Bad_SecureChannelTokenUnknown0x80870000令牌已过期或未被识别。
Bad_SequenceNumberInvalid0x80880000序列号无效。
Bad_ProtocolVersionUnsupported0x80BE0000应用程序没有兼容的协议版本。
Bad_ConfigurationError0x80890000配置存在问题,影响了值的有效性。
Bad_NotConnected0x808A0000变量应从另一个变量中接收值,但未如此配置。
Bad_DeviceFailure0x808B0000生成值的设备/数据源存在故障,对值造成了影响。
Bad_SensorFailure0x808C0000设备/数据源获取值的传感器存在故障。
Bad_OutOfService0x808D0000数据源未正常运行。
Bad_DeadbandFilterInvalid0x808E0000死区过滤器无效。
Uncertain_NoCommunicationLastUsableValue0x408F0000与数据源通信失败。变量值为最后一个质量为Good的值。
Uncertain_LastUsableValue0x40900000正在更新该值的操作已停止更新。
Uncertain_SubstituteValue0x40910000该值为手动改写的运行值。
Uncertain_InitialValue0x40920000该值为变量的初始值,变量通常从另一个变量接收值。
Uncertain_SensorNotAccurate0x40930000该值位于一个传感器的限值。
Uncertain_EngineeringUnitsExceeded0x40940000值超出了为该参数定义的值范围。
Uncertain_SubNormal0x40950000该值从多个源中获取,包含的Good源数量小于所需数量。
Good_LocalOverride0x00960000值已被覆盖。
Bad_RefreshInProgress0x80970000条件刷新失败,或已有条件刷新操作正在运行。
Bad_ConditionAlreadyDisabled0x80980000该条件已被禁用。
Bad_ConditionAlreadyEnabled0x80CC0000该条件已被启用。
Bad_ConditionDisabled0x80990000属性不可用,或该条件被禁用。
Bad_EventIdUnknown0x809A0000指定的事件ID未被识别。
Bad_EventNotAcknowledgeable0x80BB0000事件无法知悉。
Bad_DialogNotActive0x80CD0000对话框条件未处于活动状态。
Bad_DialogResponseInvalid0x80CE0000响应对于对话框无效。
Bad_ConditionBranchAlreadyAcked0x80CF0000条件分支已被知悉。
Bad_ConditionBranchAlreadyConfirmed0x80D00000条件分支已被确认。
Bad_ConditionAlreadyShelved0x80D10000条件已被搁置。
Bad_ConditionNotShelved0x80D20000条件当前未被搁置。
Bad_ShelvingTimeOutOfRange0x80D30000搁置时间不在允许范围内。
Bad_NoData0x809B0000请求的时间范围内或事件筛选条件下不存在数据。
Bad_BoundNotFound0x80D70000未找到提供上/下边界值的数据。
Bad_BoundNotSupported0x80D80000服务器无法检索到变量边界。
Bad_DataLost0x809D0000由于采集开始/停止/丢失,数据已丢失。
Bad_DataUnavailable0x809E0000由于存在未安装的卷、离线存档或磁带,或由于暂时不可用等类似原因,期望的数据在请求的时间范围内不可用。
Bad_EntryExists0x809F0000由于存在匹配条目,数据或事件未成功插入。
Bad_NoEntryExists0x80A00000由于不存在匹配条目,数据或事件未成功更新。
Bad_TimestampNotSupported0x80A10000客户端请求历史数据所使用时间标识格式不受服务器支持。换言之,客户端请求了ServerTimestamp,而服务器仅支持SourceTimestamp。
Good_EntryInserted0x00A20000数据或事件已成功插入历史数据库。
Good_EntryReplaced0x00A30000历史数据库中的数据或事件已被成功替换。
Uncertain_DataSubNormal0x40A40000该值从多个值中获取,包含的Good值数量小于所需数量。
Good_NoData0x00A50000请求的时间范围内或事件筛选条件下不存在数据。
Good_MoreData0x00A60000请求的时间范围内或事件筛选条件下存在更多数据。
Bad_AggregateListMismatch0x80D40000请求的集合数量与请求的节点ID数量不匹配。
Bad_AggregateNotSupported0x80D50000服务器不支持请求的集合。
Bad_AggregateInvalidInputs0x80D60000由于输入数据无效,无法获取集合值。
Bad_AggregateConfigurationRejected0x80DA0000指定节点的集合配置无效。
Good_DataIgnored0x00D90000请求所指定的字段对于EventType无效,或无法被历史记录保存。
Good_CommunicationEvent0x00A70000通信层已发起事件。
Good_ShutdownEvent0x00A80000系统正在关闭。
Good_CallAgain0x00A90000操作未完成,需重新调用。
Good_NonCriticalTimeout0x00AA0000发生非关键超时。
Bad_InvalidArgument0x80AB0000一个或多个参数无效。
Bad_ConnectionRejected0x80AC0000无法与远程服务器建立网络连接。
Bad_Disconnect0x80AD0000服务器已从客户端断开连接。
Bad_ConnectionClosed0x80AE0000网络连接已关闭。
Bad_InvalidState0x80AF0000由于对象被关闭、未初始化或处于其他无效状态,操作无法完成。
Bad_EndOfStream0x80B00000无法移动至数据流结束之后。
Bad_NoDataAvailable0x80B10000非阻隔数据流中当前没有数据可读取。
Bad_WaitingForResponse0x80B20000异步操作正在等待响应。
Bad_OperationAbandoned0x80B30000异步操作已被调用方放弃。
Bad_ExpectedStreamToBlock0x80B40000数据流未返回所有的请求数据(可能由于数据流为非阻隔性数据流)。
Bad_WouldBlock0x80B50000需要非阻隔性操作,但该操作会导致阻隔。
Bad_SyntaxError0x80B60000值语法无需。
Bad_MaxConnectionsReached0x80B70000由于所有变量连接正在使用,操作无法完成。

OPCDA质量码(十进制)

0 Bad
1 Bad, Low Limited
2 Bad, High Limited
3 Bad, Constant
4 Bad, Configuration Error
5 Bad, Configuration Error, Low Limited
6 Bad, Configuration Error, High Limited
7 Bad, Configuration Error, Constant
8 Bad, Not Connected
9 Bad, Not Connected, Low Limited
10 Bad, Not Connected, High Limited
11 Bad, Not Connected, Constant
12 Bad, Device Failure
13 Bad, Device Failure, Low Limited
14 Bad, Device Failure, High Limited
15 Bad, Device Failure, Constant
16 Bad, Sensor Failure
17 Bad, Sensor Failure, Low Limited
18 Bad, Sensor Failure, High Limited
19 Bad, Sensor Failure, Constant
20 Bad, Last Known Value
21 Bad, Last Known Value, Low Limited
22 Bad, Last Known Value, High Limited
23 Bad, Last Known Value, Constant
24 Bad, Comm Failure
25 Bad, Comm Failure, Low Limited
26 Bad, Comm Failure, High Limited
27 Bad, Comm Failure, Constant
28 Bad, Out of Service
29 Bad, Out of Service, Low Limited
30 Bad, Out of Service, High Limited
31 Bad, Out of Service, Constant
32 Bad, Waiting for Initial Data
33 Bad, Waiting for Initial Data, Low Limited
34 Bad, Waiting for Initial Data, High Limited
35 Bad, Waiting for Initial Data, Constant
64 Uncertain
65 Uncertain, Low Limited
66 Uncertain, High Limited
67 Uncertain, Constant
68 Uncertain, Last Usable Value
69 Uncertain, Last Usable Value, Low Limited
70 Uncertain, Last Usable Value, High Limited
71 Uncertain, Last Usable Value, Constant
80 Uncertain, Sensor Not Accurate
81 Uncertain, Sensor Not Accurate, Low Limited
82 Uncertain, Sensor Not Accurate, High Limited
83 Uncertain, Sensor Not Accurate, Constant
84 Uncertain, Engineering Units Exceeded
85 Uncertain, Engineering Units Exceeded, Low Limited
86 Uncertain, Engineering Units Exceeded, High Limited
87 Uncertain, Engineering Units Exceeded, Constant
88 Uncertain, Sub-Normal
89 Uncertain, Sub-Normal, Low Limited
90 Uncertain, Sub-Normal, High Limited
91 Uncertain, Sub-Normal, Constant
192 Good
193 Good, Low Limited
194 Good, High Limited
195 Good, Constant
216 Good, Local Override
217 Good, Local Override, Low Limited
218 Good, Local Override, High Limited
219 Good, Local Override, Constant

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

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

相关文章

vue+elementUI实现在表格中添加输入框并校验的功能

背景: vue2elmui 需求: 需要在一个table中添加若干个输入框,并且在提交时需要添加校验 思路: 当需要校验的时候可以考虑添加form表单来触发校验,因此需要在table外面套一层form表单,表单的属性就是ref…

6月17日15点丨解锁大消费品行业收入管理秘籍

在数字化浪潮席卷全球的今天,企业对于收入管理的精细化和智能化需求日益凸显。收入管理作为企业运营的核心环节,对企业的现金流、利润和发展战略至关重要。 在消费品行业,往往拥有大量的销售数据和客户信息,但这些数据往往分散在多个系统和部…

简单了解MySql以及一些简单的应用MySql

MySql基础篇 1、数据模型概述 关系型数据库 概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。 特点: 使用表存储数据,格式统一,便于维护使用SQL语言操作,标准统一,使用方便 数…

基于WPF技术的换热站智能监控系统08--实现右上模式控制

1、区域划分 2、UI设计 3、样式及触发器 4、运行效果 走过路过不要错过,点赞关注收藏又圈粉,共同致富,为财务自由作出贡献

【leetcode--单词规律】

题目要求: 跟上一个字符串的思路一致,只是要进行单词的拆分,用.split()函数即可。 class Solution:def wordPattern(self, pattern: str, s: str) -> bool:word s.split()if(len(pattern) ! len(word)):return Falsereturn len(set(patt…

TCP/IP协议,三次握手,四次挥手

IP - 网际协议 IP 负责计算机之间的通信。 IP 负责在因特网上发送和接收数据包。 HTTP - 超文本传输协议 HTTP 负责 web 服务器与 web 浏览器之间的通信。 HTTP 用于从 web 客户端(浏览器)向 web 服务器发送请求,并从 web 服务器向 web …

btrace:binder_transaction+eBPF+Golang实现通用的Android APP动态行为追踪工具

一、简介: 在进行Android恶意APP检测时,需要进行自动化的行为分析,一般至少包括行为采集和行为分析两个模块。其中,行为分析有基于规则、基于机器学习、基于深度学习甚至基于大模型的方案,各有各的优缺点,不…

上传文件生成聊天机器人,实现客服、办公自动化智能体 | Chatopera

从谈论聊天机器人,到谈论智能体,是目前人工智能最炙手可热的话题,这两年最大的变化是大语言模型的应用。聊天机器人曾经很难定制,往往局限于个别行业,同时也只有行业内的领导者、头部企业能定制。比如银行、金融证券、…

火绒安全删除explorer.exe文件造成windows系统异常的问题

问题 过程是这样的,电脑在使用过程中突然就变成了黑色的,任务栏、桌面等都消失了,只有部分程序的窗口。具体如下: 因为,在变化的时候,我有瞟到一眼有个火绒的气泡消息,就感觉是火绒错误的删除…

详解函数动态调用的作用——call

动态调用的作用 类似于其他语言的反射能够开发框架性代码 Call调用语法 (bool success, bytes data) <address>.call(bytes calldata)call是address的方法call返回值(bool success, bytes data)忽视返回值success&#xff0c;会造成严重问题 calldata的结构 call的…

JasperReport-使用Jasper Studio中的table组件制作表格模板

背景&#xff1a; JasperReport 已知调研出的最适合JAVA开发者使用的一款报表模板制作&#xff0c;报表文件生成或导出PDF\Excel\html的最佳框架&#xff08;可以免费使用&#xff09;。 一、Jasper制作表格模板 1.1、制作模板文件 &#xff08;1&#xff09;创建参数 首先…

Ollama+Open WebUI本地部署Llama3 8b(附踩坑细节)

先展示一下最终结果&#xff0c;如下图所示&#xff1a; 1. 添加环境变量 在下载 ollama 之前&#xff0c;先去配置环境变量&#xff0c;确保模型下载到我们想要的地方 win10 和 win11 输入path或者环境变量&#xff1a; 增加系统环境变量 变量名不可更改&#xff0c;必须是O…

Superset 二次开发之Git篇 git cherry-pick

Cherry-Pick 命令是 Git 中的一种功能&#xff0c;用于将特定的提交&#xff08;commit&#xff09;从一个分支应用到另一个分支。它允许你选择性地应用某些提交&#xff0c;而不是合并整个分支。Cherry-Pick 非常适合在需要将特定更改移植到其他分支时使用&#xff0c;例如从开…

基于PointNet / PointNet++深度学习模型的激光点云语义分割

一、场景要素语义分割部分的文献阅读笔记 1.1 PointNet PointNet网络模型开创性地实现了直接将点云数据作为输入的高效深度学习方法&#xff08;端到端学习&#xff09;。最大池化层、全局信息聚合结构以及联合对齐结构是该网络模型的三大关键模块&#xff0c;最大池化层解决了…

SpringBoot 实现 阿里云语音通知(SingleCallByTts)

目录 一、准备工作1.开通 阿里云语音服务2.申请企业资质3.创建语音通知模板&#xff0c;审核通过4.调用API接口---SingleCallByTts5.调试API接口---SingleCallByTts 二、代码实现1.导入依赖 com.aliyun:aliyun-java-sdk-dyvmsapi:3.0.22.创建工具类&#xff0c;用于发送语音通知…

如何部署 Celestia 节点:运行轻节点和全节点

最近几周&#xff0c;Celestia ($TIA) 凭借其模块化数据可用性的基本概念和突破性功能在加密社区引起了轰动。参与网络的方式多种多样&#xff0c;例如将 TIA 与验证器进行质押或在网络上构建应用程序。 用户还可以通过部署节点与区块链进行交互。本指南将解释如何设置和运行 C…

相亲交友APP系统|婚恋交友社交软件|语音聊天平台定制开发

在现代社会&#xff0c;婚恋交友已经成为了人们日常生活中的一项重要任务。为了方便用户进行相亲交友活动&#xff0c;各种相亲交友APP系统和婚恋交友社交软件应运而生。本文将介绍相亲交友APP系统、婚恋交友社交软件的开发以及语音聊天平台的定制开发的相关知识和指导。 一、…

LNMP搭建:Linux+Nginx+MySQL+PHP

关闭防火墙和核心防护&#xff0c;使用一台机器Node1搭建LNMP systemctl stop firewalld; setenforce 0 所需源码包&#xff1a;可以去官网下载 编译Nginx 创建/data&#xff0c;在/data/下放源码包 [rootNode1 ~]#:mkdir /data;cd /data 安装依赖包 [rootNode1 data]#:yum …

【STM32进阶笔记】GPIO端口

前段时间由于其他原因&#xff0c;专栏暂停更新了较长一段时间&#xff0c;现在恢复更新&#xff0c;争取继续为大家创造有价值的内容&#xff0c;期待大家的订阅关注&#xff0c;欢迎互相学习交流。 在STM32速成笔记系列专栏中其实已经对GPIO的一些必要知识进行了介绍&#xf…

华为数据驱动的企业数字化转型之路

华为数据驱动的企业数字化转型之路 数据驱动的数字化转型是企业未来发展的关键。通过构建完善的数据治理体系&#xff0c;包括差异化的数据管理、面向业务的信息架构、数据底座建设和自助数据服务&#xff0c;企业可以提升数据的利用效率和决策能力。本文将根据华为数据治理相…