特殊功能 •在未决报警转出或得到确认后,将不再经由 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-1500CPU(固件版本 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 ofOPC UA server status) 选项。 说明 选中此选项后,CPU也会在启动后使设置为Zui低优先级的安全策略进入诊断缓冲区。 示例 如果 CPU 的 OPC UA服务器因为下载过程而关闭,使用有效的新组态启动,则诊断缓冲 区显示新的服务器状态,例如“关闭 => 启动 =>运行”。 如果 OPC UA 服务器因为下载过程而关闭,并且服务器因为类型字典过大而无法启动,则诊断缓冲区Zui后显示状态“已失败”(“关闭 => 启动 => 已失败”)。 服务器状态和状态转换DLOHG5XRZQ 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 服务器因组态故障等问题无法启动。会话状态转换诊断 关于会话状态的信息 OPCUA 会话的状态发生变化时,S7-1500 CPU 固件版本 V2.8 及以上版本会在诊断缓冲区中 创建一个条目。诊断缓冲区显示新的状态。也将显示相应的会话 ID。 要求 已在 CPU 的 OPC UA 属性中选择“会话状态改变”(Changeof 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-1500CPU 对以下 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-1500CPU,并在服务器中生成订阅。 在 CPU 的 OPC UA 属性中,已选择订阅对应的选项。“Creating”和“Normal”状态以及相应的订阅 ID 会依次进入诊断缓冲区。 订阅状态和状态转换HHS$OLYH/DWH1RUPDO 7LPHG2XW&ORVHG &UHDWLQJ ① 订阅已生成,随后变为活动状态。 ②由于进入诊断缓冲区的条目可能过多(具体视数据量而定),状态更改不会进入诊断缓冲区 中。 ③参见表中对“Late”的说明;例如,没有要从客户端发送的请求。 ④ 已达到Zui大 KeepAlive 值。 ⑤参见表中对“TimedOut”的说明。 ⑥ 已达到Zui大订阅使用期。 ⑦ 客户端已删除订阅。订阅状态和状态转换。订阅状态说明 OPCUA 服务器中的订阅可能有以下状态: 状态 含义 Creating 客户端已请求在服务器中订阅;服务器创建订阅。 Normal在服务器中创建了订阅,且订阅处于活动状态。 Closed 客户端已删除订阅。 KeepAlive受监视项的状态长时间未更改。这些状态转换不会进入诊断缓冲区。 Late客户端已生成具有Zui小采样和发布间隔的订阅。受监视项的数量在这段时间内未传 送到客户端。 客户端不再传送要发送的请求(由于故障等原因)。TimedOut 客户端已请求订阅。 仅当客户端的发送请求(发布请求)数量足够多时,服务器才会允许订阅(发送发 布响应)。如果客户端停止发送订阅请求,订阅会在特定时间后进入“TimedOut”状态。 订阅:采样时间存在错误 对于固件版本为 V2.5及以上版本的 SIMATIC S7-1500 CPU,如果在对项目进行采样时发生 CPU 过载,则在使用订阅时,OPC UA服务器可传送状态代码“GoodOverload”。 对于固件版本为 V2.8 及以上版本的 SIMATIC S7-1500CPU,OPC UA 服务器还会使该事件进入 诊断缓冲区。 要求 在 CPU 的 OPC UA属性中,已选择“订阅:采样时间存在错误”(Subscription: Sampling time errors) 选项(OPC UA> 服务器 > 诊断)。 无错订阅 如果 OPC UA 订阅多个元素(比如变量),SIMATIC S7-1500 的OPC UA 服务器必须以指定间 隔(采样间隔)检查元素的值是否更改。这种检查称为“采样”,需要一定的时间,具体时长取决于项目数量和数据类型。采样完成并接收到发布请求后,服务器会向客户端发送元素。