提示和建议 (S7-1200, S7-1500, S7-1500T) 订阅规则 (S7-1200, S7-1500, S7-1500T) 以下规则适用于订阅部分: • 根据不同的采样和发布时间间隔对订阅分组,并将被监视的元素(变量)分配到这些组 中。 示例:创建一个发布时间间隔较长(如 5 秒)的订阅和一个发布时间间隔较短(如 0.1 秒)的订阅。 • 禁用不需要的订阅。 原因:“已禁用”订阅模式可以降低资源消耗。 • 为进一步优化资源利用率,请缩短客户端的订阅超时。订阅超时不能直接修复,此时间 由服务器确认的订阅设置“PublishingInterval”和“LifetimeCount”决定。 背景:客户端创建了订阅并且会话终止时,订阅仍保留在服务器中并占用存储器资源。 OPC UA 服务器仅在因订阅超时而结束订阅周期时释放所需资源。 • 需注意相应 S7-1500 CPU 可监视的订阅项目的Zui大数量。 在相应 CPU 的技术规范中,可以找到该信息。此信息基于 1 秒的采样/发布时间间隔。 更多信息,请参见。 • 针对 OPC UA 客户端和 OPC UA 服务器,选择相同的采样和发布时间间隔。 • 避免将数组和结构作为订阅的元素(如果过程允许)。 原因:即使数组/结构中有一个值发生变化,也需要传送整个结构,从而产生不必要的通 信负载。 • 偶尔发生与所需的采样率不兼容的情况,S7-1500 CPU 的 OPC UA 服务器根据 OPC UA 规 范使用“GoodOverload”错误代码进行确认,另请参见 TIA Portal 帮助。不同的 OPC UA 客 户端以不同的方式处理不等于“0”的“Good”错误代码。请注意此行为,必要时根据上述措 施降低通信负载。
如果要将数据写入 OPC UA 服务器中,则可在“数据访问 > 读取/写入列表”(Data access > Read/ Writelist) 中选择需使用的写入列表(在本示例中,为写入列表“ProductionStatus”)。 8. 使用拖放操作,将“OPC_UA_ReadList”指令移动到程序编辑器中。 – 选择“多重实例”(Multi-instance) 调用选项。 – 如果编辑器尚未打开,请单击工具箱符号(LAD 和 FBD)或实例名称下方的小绿框 (STL 和 SCL)。 – 选择要使用的客户端接口。示例使用“ProductionLine”客户端接口。 – 在“数据访问 > 读取列表”(Data access > Read list) 中,选择需使用的读取列表(在本 示例中,为读取列表“Product”)。 STEP 7 现在自动与“OPC_UA_ReadList”指令的所有参数互连。 如果要将数据写入 OPC UA 服务器中,则可使用“OPC_UA_Write”指令,并在“数据访问 > 写入列表”(Data access > Writelist) 中选择待发送到服务器的变量列表(在示例中,为写入列表 “ProductionStatus”)。 9. 如果要在用户程序中使用不同的读取列表或写入列表作为程序控制列表,则可使用拖放操作, 将“OPC_UA_NodeReleaseHandleList”指令移动到程序编辑器中。 – 选择要使用的客户端接口。 – 现在选择要发布的读取列表或写入列表。由于重新注册非常耗时,仅释放极少使用的 读取或写入列表。 – 然后使用“UA_NodeGetHandleList”指令重复执行第 7 步开始的步骤。 10.使用拖放操作,将“OPC_UA_Disconnect”指令移动到程序编辑器中。 – 选择“多重实例”(Multi-instance) 调用选项。 – 如果编辑器尚未打开,请单击工具箱符号(LAD 和 FBD)或实例名称下方的小绿框 (STL 和 SCL)。 – 选择要使用的客户端接口。在本示例中,使用“ProductionLine”客户端接口。 STEP 7 现在自动与“OPC_UA_Disconnect”指令的所有参数互连。 支持的指令 对于下列指令,如果使用的是客户端接口以及与 OPC UA 服务器的已组态连接,则 STEP 7 会 自动提供参数。 • OPC_UA_Connect • OPC_UA_NamespaceGetIndexList • OPC_UA_NodeGetHandleList • OPC_UA_MethodGetHandleList • OPC_UA_MethodReleaseHandleList • OPC_UA_ReadList • OPC_UA_WriteList• OPC_UA_MethodCall • OPC_UA_NodeReleaseHandleList • OPC_UA_Disconnect
面向用户程序的规则 (S7-1200, S7-1500, S7-1500T) OPC UA 的用户程序 以下规则适用于用户程序: • 如果应用程序允许,并且通信负载过高,应该设置周期性 OB 的Zui小时间。 优势: – 循环时间多数情况下是不变的 – 整个过程中 CPU 可以分配更多的时间处理通信任务 提示:要分析 CPU 利用率(例如通信),请使用指令“RT_INFO:读取运行系统统计数 据”;模式 21 或模式 25(参见 TIA Portal 帮助)。 • 减少可以通过 OPC UA/HMI 访问的变量或数据块的数量。默认情况下,创建变量/DB/IDB 时,来自 OPC UA/HMI 的所有变量都可以访问。在运行状态下加载时,此措施可以改进 性能。 提示:通过在 TIA Portal 中使用详细对象显示,可以轻松将非 OPC-UA 相关数据块标记为 “无法从 OPC UA 访问”(not accessible from OPC UA)。 • 只有通过 OPC UA 方法才能实现一致的数据传输,不受简单数据类型的限制。如果使用 其他 OPC UA 功能(订阅、读写),必须确保应用中的数据一致性。 • OPC UA 提供“RegisterNodes”服务对相同的变量进行重复读写。服务器可使用该服务准备 对变量的优化访问。作为 OPC UA 客户端的 S7-1500 的指令 “OPC_UA_NodeGetHandleList”可隐式调用该服务,使服务器准备好进行优化访问(在 OPC UA 用法“注册的读写”中)。 在 TIA Portal 中调用详细的对象显示 要调用详细的对象显示,请执行以下步骤: 1. 在门户视图中切换到“PLC 编程”(PLC Programming) 门户。 2. 选择“显示所有对象”(Show all objects):3. 在选择窗口中切换到“详细信息”(Details) 选项卡。 4. 在“DB 从 OPC UA 可访问”(DB accessible from OPC UA) 列中,禁用各个对象的 OPC UA 可访问 性。 OPC UA 通信的模板副本 (S7-1200, S7-1500, S7-1500T) OPC UA 接口的模板副本 要多次使用的 OPC UA 服务器和 OPC UA 客户端的接口可存储在项目库或全局库中。项目库 中的模板副本只能在项目中使用。在全局库中创建模板副本时,模板副本可用于不同的项目 中。 支持 OPC UA 的 CPU 根据 OPC UA 服务器的 3 种接口类型加以区分: • 标准 OPC UA 服务器接口 • 配套规范接口 • 命名空间引用 将 OPC UA 接口添加到项目树的“OPC UA 通信”(OPC UA Communication) 下方时,每个接口 类型都会获得自己的符号。模板副本会使用相同符号。 创建单个模板副本或包含多个接口的模板副本。 基于选择创建多个模板副本 选择一个或多个元素并使用它们来创建各个模板副本 1. 在“库”(Libraries) 任务卡中打开库。 2. 选择所需的元素。 3. 使用拖放操作,将这些元素移到“模板副本”(Master copies) 文件夹或“模板副本”(Master copies) 的任意子文件夹中。基于选择创建模板副本 选择多个元素并创建包含所有选中元素的单个模板副本。 1. 将要创建为模板副本的元素复制到剪贴板中。 2. 右键单击“模板副本”(Master copies) 文件夹或库中的任意一个子文件夹。 3. 在快捷菜单中,选择“作为单个模板副本粘贴”(Paste as a single master copy) 命令。 如果多个接口从 OPC UA 服务器或 OPC UA 客户端添加到模板副本,库中的标签和符号也会 相应地更改。 会显示带“+”的符号,而不是简单的符号。 参见 创建用户自定义服务器接口 (页 1895) 通过 NAT 路由器连接 OPC UA 客户端与服务器 (S7-1200, S7-1500, S7-1500T) 如果通过 NAT 路由器连接客户端和服务器,则连接失败时将返回错误消息 “BadCommunicationError”或“BadNotConnected”。 背景:在 NAT 系统中,由路由器对 IPv4 数据包进程操控。因此,数据包的源 IP(“源 NAT”) 或目标 IP(“目标 NAT”)将替换为路由器中所组态的 IP 地址(具体取决于目标端口)。该 过程对客户端和服务器不可见。即,系统不会告知这些设备以上过程。 问题:由于服务器返回的端点描述(即,EndpointUrl)位于“GetEndpointsResponse”的用户 数据中,NAT 路由器也无法替换该地址信息。CPU 固件版本 V2.6 无法通过 NAT 路由器连接 OPC UA 客户端与服务器。 CPU 固件版本 V2.8 及以上版本的补救措施 使用连接信息的“ServerUri”属性(“OPC_UA_Connect”指令中的“SessionConnectInfo”参 数)。 输入完整的 ServerEndpointUrl,其中 NAT 路由器的 IP 地址为“ServerUri”。之后,使用此 ServerEndpointUrl 代替 GetEndpointsResponse 中返回的 EndpointUrl 建立连接。 如果将此属性为空,则表示该特性将与 CPU 固件版本 V2.6 相同。 如果在 OPC UA 连接设置(创建客户端接口)中使用该连接参数分配,则需在参数分配后打 开客户端接口 DB (*_Configuration[DBx]) 并更改“ServerUri”参数中的字符串。OPC UA 组态 编译后,此条目保留不变。