特殊功能 • 在未决报警转出或得到确认后,将不再经由 ConditionRefresh 方法进入 OCP UA 报警和条 件系统区域。于是,它们将对 OPC UA 报警和条件“不可见”,进而也无法由所连的 OPC UA 客户端获取。这会影响报警进行过程的统计评估以及其它类似方面。 • 为避免在报警数量围绕Zui大值上下波动时致使过载报警出现较高的报警频率,触发报警的 限值要高于取消报警的限值:此差值显示在“OverloadHysteresis”节点中。 示例:Zui大报警数量:200,OverloadHysteresis:3。 过载报警的数量在达到 200 时就开始触发,但只有在下降到 197 以下时才会取消。如果报 警数量再次增加,仍需超过 200 才会触发报警。OPC UA 服务器诊断 OPC UA 服务器在线诊断 S7-1500 CPU OPC UA 服务器可通过标准 OPC UA 客户端(如 UaExpert)进行在线诊断。 诊断信息分为以下几部分: • 服务器诊断 • 会话诊断: • 订阅诊断 举例来说,在服务器的地址空间中,以下节点提供诊断信息: • ServerDiagnosticsSummary:服务器诊断汇总 – CurrentSessionCount:活动会话数量 – SecurityRejectedSessionCount:因客户端与服务器之间的端点安全设置不匹配而被拒绝 的会话数 • SessionsDiagnosticsSummary:会话诊断汇总 – ActualSessionTimeout:设置会话在连接断开等情况下的持续时间。 • SubscriptionsDiagnosticsArray:为每个会话的每个订阅包含一个元素的数组。客户端与服务器间的连接诊断 要诊断客户端中程序运行期间的连接状态,请使用以下指令: OPC_UA_ConnectionGetStatus:读取连接状态。 在程序中运行 OPC UA 服务器诊断 在 STEP 7 (TIA Portal) V18 及以上版本中,可通过访问 S7-1500 CPU(固件版本 V3.0 及以上版 本)内 OPC UA 地址空间中的节点,评估程序待诊断的内容。 工作原理 在 CPU 的本地地址空间中,包含很多 CPU 的 OPC UA 服务器用于存储数据和状态的节点。通 过“OPC_UA_ReadList”指令,可访问相关信息并在用户程序中 进行评估。 示例:“ServerState”是 CPU 中的一个地址空间,其中包含有服务器的状态值或状态转换值(运 行、关闭、失败等等)。 该指令并不是一个客户端指令,而是一个读取本地 OPC UA 地址空间节点的指令。此时,需使 用特殊的规则和要求。 更多信息 有关调用“OPC_UA_Readlist”指令进行诊断的更多信息,请参见 TIA Portal 帮助中的“通过 OPC_UA_Readlist 诊断 OPC UA 服务器”主题。服务器状态转换诊断 关于服务器状态的信息 OPC UA 服务器的状态发生变化时,S7-1500 CPU 固件版本 V2.8 及以上版本会在诊断缓冲区 中创建一个条目。 诊断缓冲区显示新的状态。 同时显示状态变化的原因,例如下载到 CPU、POWER OFF - POWER ON 转换,来自伙伴(客户 端)的用户程序指令或服务请求。 要求 在 CPU 的 OPC UA 属性中,选择“OPC UA 服务器状态改变”(Change of OPC UA server status) 选项。 说明 选中此选项后,CPU 也会在启动后使设置为Zui低优先级的安全策略进入诊断缓冲区。 示例 如果 CPU 的 OPC UA 服务器因为下载过程而关闭,然后使用有效的新组态启动,则诊断缓冲 区显示新的服务器状态,例如“关闭 => 启动 => 运行”。 如果 OPC UA 服务器因为下载过程而关闭,并且服务器因为类型字典过大而无法启动,则诊断 缓冲区Zui后显示状态“已失败”(“关闭 => 启动 => 已失败”)。 服务器状态和状态转换DLOHG 5XRZQ 3RZHURQ ①、④ 如果 OPC UA 相关数据可能受到影响,则上电或加载到 RUN 状态。 ② OPC UA 服务器停用时加载硬件配置。服务器仍然关闭。 OPC UA 服务器激活且 OPC UA 数据错误时加载硬件配置(例如因结构过多导致类型字典变 得过大)。在这种情况下,服务器无法启动(参见 ③)。 ③ OPC UA 服务器因组态故障等问题无法启动。 图 10-56 服务器状态和状态转换服务器状态说明 下面介绍了 OPC UA 服务器可呈现的各个状态。 服务器状态 说明 关闭 初始状态 • 上电后 • OPC UA 服务器激活或停用时加载硬件配置后。 • 加载 OPC UA 相关数据后 启动 服务器中的 OPC UA 地址空间已初始化。 正在运行 OPC UA 服务器运行(OPC UA 服务器的正常生产状态)。 已失败 错误状态。OPC UA 服务器因组态故障等问题无法启动。会话状态转换诊断 关于会话状态的信息 OPC UA 会话的状态发生变化时,S7-1500 CPU 固件版本 V2.8 及以上版本会在诊断缓冲区中 创建一个条目。 诊断缓冲区显示新的状态。也将显示相应的会话 ID。 要求 已在 CPU 的 OPC UA 属性中选择“会话状态改变”(Change of session states) 选项(OPC UA > 服 务器 > 诊断)。 示例 连接建立时客户端传输的认证数据不正确(例如密码不正确)。“ActivationFailed”会话的新状 态以及相应的会话 ID 会进入诊断缓冲区。 订阅状态和状态转换检查安全事件 如果 CPU 诊断在 OPC UA 通信期间检测到安全事件,可使该事件进入诊断缓冲区。 要求 • 固件版本为 V2.8 及以上版本的 S7-1500 CPU • “检查安全事件”(Check for security events) 选项已激活(CPU 属性中的“OPC UA > 服务器 > 诊断”(OPC UA > Server > Diagnostics))。 诊断中检测到安全事件 S7-1500 CPU 对以下 OPC UA 相关的安全事件执行诊断: • 客户端证书无效(例如语法或语义错误、签名错误、当前日期不在有效期内) • 用户名/密码登录失败(数据已停用或不正确) • 客户端要使用特定的安全策略或特定的消息安全模式;服务器不支持该安全策略或请求的 安全模式。 • 客户端未按照规范(OPC UA 规范)建立连接(例如未预期的 SecureChannelID/SessionID/客户端 Nonce) 示例 如果试图破坏通信(例如通过会话拦截、中间人攻击等),服务器会通过分析检测到此情况。远程客户端请求失败 固件版本为 V2.8 及以上版本的 S7-1500 CPU 会在诊断缓冲区中为以下事件创建条目: • 不良客户端请求(不正确使用) • 出现服务错误 • 超出 OPC UA 服务器的 CPU 特定上限 错误客户端请求示例 例如,当客户端寻址一个不存在的节点(变量)或请求不存在的资源时,则会发生请求错误。 此时,导致错误的相应服务以及相应会话 ID 都会进入诊断缓冲区。 服务故障 如果服务自身发生故障,服务器会返回 ServiceFault。此时,状态代码(不良...)以及相应会 话 ID 都会进入诊断缓冲区。超出限值示例 如果服务请求超出 CPU 特定的限值,例如会话数、监视项数目、订阅数等,该诊断会进入诊 断缓冲区,与消息共同指示所超出的限值。 例外:如果汇总诊断时消息频繁出现,则引发该错误的限值不会进入诊断缓冲区。您会收到已 超出支持的组态限值的常规信息。 导致错误的服务的可能条目 根据使用的客户端应用程序,从客户的角度来看,可通过不同方式触发对服务器的请求,例 如,可通过具有图形用户界面的在线工具触发,也可以通过客户端程序中的指令触发。 OPC UA 采用面向服务的架构,遵循请求-响应范例,因此相应的客户端应用程序会将请求转换 为 OPC UA 中定义的服务请求。 这些服务的名称按照其用途来定义和分组,另请参见 opcfoundation.org。 如果未正确使用,则作为导致错误的服务,可在诊断缓冲区中准确找到这些服务的名称及相应 的会话 ID。订阅诊断 有关订阅的信息 订阅状态发生变化时,固件版本为 V2.8 及以上版本的 S7-1500 CPU 可在在诊断缓冲区中创建 一个条目。 诊断缓冲区会显示新状态;但以下状态除外:“KeepAlive”。 要求 在 CPU 的 OPC UA 属性中,已选择“订阅:状态改变”(Subscriptions: Change of status) 选项 (OPC UA > 服务器 > 诊断)。 示例 OPC UA 客户端已连接作为 OPC UA 服务器的 S7-1500 CPU,并在服务器中生成订阅。 在 CPU 的 OPC UA 属性中,已选择订阅对应的选项。 “Creating”和“Normal”状态以及相应的订阅 ID 会依次进入诊断缓冲区。 订阅状态和状态转换HHS$OLYH /DWH1RUPDO 7LPHG2XW&ORVHG &UHDWLQJ ① 订阅已生成,随后变为活动状态。 ② 由于进入诊断缓冲区的条目可能过多(具体视数据量而定),状态更改不会进入诊断缓冲区 中。 ③ 参见表中对“Late”的说明;例如,没有要从客户端发送的请求。 ④ 已达到Zui大 KeepAlive 值。 ⑤ 参见表中对“TimedOut”的说明。 ⑥ 已达到Zui大订阅使用期。 ⑦ 客户端已删除订阅。订阅状态和状态转换。订阅状态说明 OPC UA 服务器中的订阅可能有以下状态: 状态 含义 Creating 客户端已请求在服务器中订阅;服务器创建订阅。 Normal 在服务器中创建了订阅,且订阅处于活动状态。 Closed 客户端已删除订阅。 KeepAlive 受监视项的状态长时间未更改。这些状态转换不会进入诊断缓冲区。 Late 客户端已生成具有Zui小采样和发布间隔的订阅。受监视项的数量在这段时间内未传 送到客户端。 客户端不再传送要发送的请求(由于故障等原因)。 TimedOut 客户端已请求订阅。 仅当客户端的发送请求(发布请求)数量足够多时,服务器才会允许订阅(发送发 布响应)。 如果客户端停止发送订阅请求,订阅会在特定时间后进入“TimedOut”状态。 订阅:采样时间存在错误 对于固件版本为 V2.5 及以上版本的 SIMATIC S7-1500 CPU,如果在对项目进行采样时发生 CPU 过载,则在使用订阅时,OPC UA 服务器可传送状态代码“GoodOverload”。 对于固件版本为 V2.8 及以上版本的 SIMATIC S7-1500 CPU,OPC UA 服务器还会使该事件进入 诊断缓冲区。 要求 在 CPU 的 OPC UA 属性中,已选择“订阅:采样时间存在错误”(Subscription: Sampling time errors) 选项(OPC UA > 服务器 > 诊断)。 无错订阅 如果 OPC UA 订阅多个元素(比如变量),SIMATIC S7-1500 的 OPC UA 服务器必须以指定间 隔(采样间隔)检查元素的值是否更改。这种检查称为“采样”,需要一定的时间,具体时长取 决于项目数量和数据类型。采样完成并接收到发布请求后,服务器会向客户端发送元素。