OPCUA 指令的顺序 下图显示了使用 OPC UA 指令读取或写入 PLC 变量时这些指令在用户程序中的调用顺序:①用于准备读取和写入操作的指令 ② 读取和写入指令 ③ 完成读取或写入操作后用于进行“清理”的指令如果随后立即调用“OPC_UA_Disconnect”,则可省略“OPC_UA_NodeReleaseHandleList”指令。读取和写入操作的调用顺序如果使用的是客户端接口以及与 OPC UA 服务器的已组态连接,则 STEP 7 (TIA Portal) 会自动提供这些指令的参数。 下一节中介绍了具体操作步骤使用客户端接口和已组态连接 要使用已组态 OPC UA 连接,请按以下步骤操作: 1.在 TIA Portal 中打开用户程序。 2. 通过拖放的方式将“OPC_UA_Connect”指令移入程序编辑器。 该指令将出现在TIA Portal 中的“指令 > 通信 > OPC UA”(Instructions >Communication > OPC UA) 下方。 3. 选择指令的调用选项。 示例使用多重实例。 STEP 7会在程序编辑器中显示指令。 函数块图 (FBD) 编程语言编辑器使用以下显示:梯形逻辑 (LAD)编程语言编辑器采用相似的方式显示指令。 4. 单击 FBD 或 LAD 编辑器中的工具箱符号。 该符号位于指令标题中。 如果使用STL 或 SCL 编辑器:点击实例名称第一个字符下方的小绿方块: 示例 (页277)使用“#OPC_UA_Connect_Instance”作为实例名称。 STEP 7 会在单独的对话框中显示特性。5.对于“客户端接口”(Client interface),选择要为指令使用的客户端接口。在本示例中,选择“ProductionLine”客户端接口。 STEP 7 现在通过 OPC_UA_Connect指令的参数与“ProductionLine”客户端接口互连。在 OPC UA 客户端示例 (页277)中,使用“ProductionLine”作为接口与 OPC UA 服务 器“ProductionLine”进行数据交换。 6.通过拖放的方式将“OPC_UA_NamespaceGetIndexList”指令移入程序编辑器。 该指令将出现在 TIA Portal中的“指令 > 通信 > OPC UA”(Instructions > Communication > OPCUA) 下方。 选择“多重实例”(Multi-instance) 调用选项。 如果编辑器尚未打开,请单击工具箱符号(LAD 和FBD)或实例名称下方的小绿框(STL 和 SCL)。 选择要使用的客户端接口(示例中为“ProductionLine”)。 STEP7 现在自动与“OPC_UA_NamespaceGetIndexList”指令的所有参数互连: 7.通过拖放的方式将“OPC_UA_NodeGetHandleList”指令移入程序编辑器。选择“多重实例”(Multi-instance) 调用选项。 如果编辑器尚未打开,请单击工具箱符号(LAD 和FBD)或实例名称下方的小绿框(STL 和 SCL)。选择要使用的客户端接口。在本示例中,使用“ProductionLine”客户端接口。 在“数据访问 >读取/写入列表”(Data access > Read/Writelist) 中,选择需使用的读写列表(本示例中为读取列表“Product”)。如果要将数据写入到 OPC UA 服务器,请在“数据访问 > 写入列表”(Dataaccess > Write list) 下选择要使用的写入列表(示例中为“ProductionStatus”写入列表)。 8.通过拖放的方式将“OPC_UA_ReadList”指令移入程序编辑器。 选择“多重实例”(Multi-instance) 调用选项。如果编辑器尚未打开,请单击工具箱符号(LAD 和 FBD)或实例名称下方的小绿框(STL 和 SCL)。选择要使用的客户端接口。示例使用“ProductionLine”客户端接口。 在“数据访问 > 读取列表”(Dataaccess > Read list) 中,选择需使用的读取列表(本示例中 为“Product”读取列表)。STEP 7现在自动与“OPC_UA_ReadList”指令的所有参数互连。 如果要将数据写入到 OPC UA服务器,请使用“OPC_UA_WriteList”指令,并在“数据访问 > 写入列表”(Data access >Write list) 下选择要发送到服务器的变量列表(示例中 为“ProductionStatus”写入列表)。 9.如果要将其它读取列表或写入列表用作用户程序中受程序控制的列表,请通过拖放操作将“OPC_UA_NodeReleaseHandleList”指令移入程序编辑器。 选择要使用的客户端接口。现在选择要发布的读取列表或写入列表。由于重新注册比较耗时,请仅释放很少使用的读 取或写入列表。使用“OPC_UA_NodeGetHandleList”指令重复执行第 7 步开始的步骤。10.通过拖放的方式将“OPC_UA_Disconnect”指令移入程序编辑器。 选择“多重实例”(Multi-instance)调用选项。 如果编辑器尚未打开,请单击工具箱符号(LAD 和 FBD)或实例名称下方的小绿框(STL 和 SCL)。选择要使用的客户端接口。在本示例中,使用“ProductionLine”客户端接口。 STEP 7现在自动与“OPC_UA_Disconnect”指令的所有参数互连。
订阅规则以下规则适用于订阅部分: • 根据不同的采样和发布时间间隔对订阅分组,并将被监视的元素(变量)分配到这些组 中。示例:创建一个发布时间间隔较长(如 5 秒)的订阅和一个发布时间间隔较短(如 0.1 秒)的订阅。 • 禁用不需要的订阅。原因:“已禁用”订阅模式可以降低资源消耗。 • 需注意相应 S7-1500 CPU 可监视的订阅项目的Zui大数量。 在相应 CPU的技术规范中,可以找到该信息。此信息基于 1 秒的采样/发布时间间隔。 有关更多信息,请参见常见问题解答。 • 针对 OPC UA客户端和 OPC UA 服务器,选择相同的采样和发布时间间隔。 • 避免将数组和结构作为订阅的元素(如果过程允许)。原因:数组/结构中有一个值发生变化,也需要传送整个结构,从而产生不必要的通信 负载。 •偶尔发生与所需的采样率不兼容的情况,S7-1500 CPU 的 OPC UA 服务器根据 OPC UA 规范使用“GoodOverload”错误代码进行确认,另请参见 TIA Portal 帮助。不同的 OPC UA 客户端以不同的方式处理不等于“0”的“Good”错误代码。请注意此行为,必要时根据上述措施降低 通信负载。 更多信息有关设置订阅服务器的信息,请参见“服务器的订阅设置 (页 200)”部分。面向用户程序的规则 OPC UA 的用户程序以下规则适用于用户程序: • 如果您的应用程序允许,并且通信负载过高,应该设置周期性 OB 的Zui小时间。 优势: –周期时间多数情况下是不变的 – 整个过程中 CPU 可以分配更多的时间处理通信任务 提示:使用指令“Runtime_Info”;模式21 或模式 25(参见 TIA Portal 帮助)分析 CPU 利用 率(例如通信)。 • 减少可以通过 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”可 隐式调用该服务,使服务器准备好进行优化访问(在 OPCUA 用法“注册的读写”中)。 在 TIA Portal 中调用详细的对象显示 要调用详细的对象显示,请执行以下步骤: 1.在门户视图中切换到“PLC 编程”(PLC Programming) 门户。 2. 选择“显示所有对象”(Show allobjects): 3. 在选择窗口中切换到“详细信息”(Details) 选项卡。 4. 在“DB 从 OPC UA 可访问”(DBaccessible from OPC UA) 列中,禁用各个对象的 OPC UA 可访 问性。OPC UA 通信的模板副本OPC UA 接口的模板副本 要多次使用的 OPC UA 服务器和 OPC UA 客户端的接口可存储在项目库或全局库中。项目库中的模板副本只能在项目中使用。在全局库中创建模板副本时,模板副本可用于不同的项目中。 支持 OPC UA 的 CPU 根据 OPC UA服务器的 3 种接口类型加以区分: • 标准 OPC UA 服务器接口 • 配套规范接口 • 命名空间引用 将 OPC UA接口添加到项目树的“OPC UA 通信”(OPC UA Communication) 下方时,每个接口类型都会获得自己的符号。模板副本会使用相同符号。 创建单个模板副本或包含多个接口的模板副本。