西门子为全集成自动化(TIA)提供从现场层扩展到控制和操作层的全面硬件和软件组合。作为开放的通信标准,OPC UA 在整个 TIA 产品组合中扮演着重要的角色。
图1:产品概览
应用示例内容及软/硬件需求
此应用示例的内容
为了实现 OPC UA 客户端与 SIMATIC S7-1500 的服务器进行数据交换,这个应用示例将向您详细介绍 SIMATIC S7-1500 的 OPC UA 服务器的配置以及如何通过 OPC UA 客户端软件连接 S7-1500 服务器。
用于测试用途的 OPC UA 客户端
● Unified Automation 的 “UaExpert”。可免费使用的功能丰富的客户端: 下载 UaExpert 的链接 ( https://www.unified-automation.com/downloads/opc-ua-clients.html )
● OPC Foundation 的 “UA Sample Client” 。在 OPC Foundation 注册的用户可免费使用该客户端:下载 OPC Foundation 示例客户端的链接 ( https://opcfoundation.org )
S7-1500 配置 OPC UA 服务器的软/硬件需求
已获得操作 OPC UA 功能的运行系统许可证。
TIA Portal V14 以及S7-1500 V2.0以后开始支持OPC UA服务器功能,除 S7-1500 标准 CPU 之外,这一特性同样适用于 S7-1500F、S7-1500T、S7-1500C、S7-1500pro CPU、ET 200SP CPU、SIMATIC S7-1500 软件控制器和 PLCSIM Advanced。S7-1500 CPU 上所有集成的 PROFINET 接口,均可用于访问该 CPU 的 OPC UA 服务器。 不能借助 CP 或 CM 通过自动化系统的背板总线直接访问 CPU 的 OPC UA 服务器。下表列出了不同版本所支持的功能。
表1:OPC UA功能列表
S7-1500 的 OPC UA 服务器实验环境
在本应用实例中,使用以下产品配置 OPC UA 服务器。
图2:实验环境
软件:
TIA V15.1
UA Expert V1.5.1
硬件:
CPU 1511-1PN V2.6
配置 S7-1500 的 OPC UA 服务器
1、使能 OPC UA 服务器
S7-1500的 OPC UA 服务器默认是禁用的,下面介绍如何使能一个简单的 OPC UA 服务器
1.1、导航至 CPU 的属性常规界面选择 OPC UA 服务器常规选项激活 OPC UA 服务器,如下图。
图3. 使能OPC UA服务器
1.2、导航至 "CPU 属性>运行系统许可证> OPC UA" 选择选择所需许可证类型,如下图4。
运行 S7-1500 CPU 的 OPC UA 服务器需要使用许可证。所需的许可证类型取决于相应 CPU 的性能。将许可证类型分为以下几类:
● SIMATIC OPC UA S7-1500 小型(CPU 1511、CPU 1512、CPU 1513、ET 200SP CPU、CPU 1515SP PC 需要使用这种类型)
● SIMATIC OPC UA S7-1500 中型(适用于 CPU 1515、CPU 1516、软件控制器 CPU 1507、CPU 1516pro-2PN)
● SIMATIC OPC UA S7-1500 大型(CPU 1517、CPU 1518 需要使用这种类型)
图4. 运行许可证
1.3、导航至 "CPU 属性>OPC UA>常规" 选项设置 OPC UA 应用名称,也可以使用默认名称,如下图5。请注意,证书上需要输入应用程序名称(主题备用名称),并且更改应用程序名称后可能需要再次生成现有证书。
图5. 应用名称
1.4、导航至 "CPU 属性>OPC UA>服务器" 选项设置服务器会话数量限制以及采样发布的最短间隔,无特殊需求也可以使用默认设置,如下图6。
● 会话最大超时,在该字段中指定在不进行数据交换的情况下 OPC UA 服务器关闭会话之前的最大时长。 允许值在 1 到 600000 秒之间。
● 最大 OPC UA 会话数,在该字段中指定 OPC UA 服务器启动并同时操作的最大会话数。最大会话数取决于 CPU 的性能。每个会话都会占用资源。
● 最大注册节点数,在该字段中指定 OPC UA 服务器注册的最大节点数。最大注册节点数取决于 CPU 的容量,并会在组态字段内容时显示(将光标放在字段中)。每次注册都会占用资源。
● 最短采样时间间隔, 在“最短采样时间间隔”中,可设置 OPC UA 服务器记录 CPU 变量值并与以前值相比较检查是否发生变更的时间间隔。
● 最短发布时间间隔, 在“最短发布时间间隔”中,可设置变量值发生改变时服务器通过新值向客户端发送消息的时间间隔。
● 所监视元素的最大数量,在该字段中指定该 CPU 的 OPC UA 服务器可同时监视值更改的最大元素数量。 监视会占用资源,可监视元素的最大数量取决于所用的 CPU。
图6. 选项
1.5、编译硬件并下载就可以启用一个简单的 OPC UA 服务器,服务器在其标准配置中允许任意客户端进行连接,如下图7所示。如果需要管理客户端证书以及访问认证管理请继续进行下面配置。
图7. 非安全访问测试
2、使能全局安全设置
为了管理 OPC UA 服务器的证书必须启用TIA项目的全局安全设置。
2.1、导航至项目树下安全设置为项目设置用户名密码,如下图8。
图8. 安全设置
2.2、导航至 "CPU 属性>防护与安全>证书管理器" 选项使能证书管理器,如下图9。
图9. 证书管理器
3、配置安全策略
通过 OPC UA 服务器的安全策略来配置 OPC UA 客户端和服务器之间的加密和身份验证方式,如下图10,选择允许的安全策略。
图10. 安全策略
4、通过管理证书实现安全访问
为了实现只允许指定的 OPC UA 客户端与 OPC UA 服务器进行连接,需要做以下配置
4.1、创建服务器证书,根据需要选择自签署还是 CA 签署,如下图11。
对 PLC 中创建的变量分配它的读写权限,默认都可以访问,可以单独为变量分配读写权限,也可以整个 DB 块设置访问权限,如下图17。
图17.变量访问权限
7、项目编译下载后进行访问测试
通过 UA Expert 进行连接访问,选择安全策略及用户身份认证方式后进入证书验证界面,需要信任服务器证书并接受临时会话请求,如下图18。注意这里 UA Expert 通过 Trust Server Certificate 按钮即可完成 Server 证书的导入,如果是其它客户端没有此功能需要手动到 TIA 下的证书管理器中导出 CA 证书和设备证书并拷贝到客户端对应受信证书列表里即可。
图18.建立连接
建立连接成功后浏览PLC数据,并进行读写访问测试,如下图19。
图19.数据访问
8、OPC UA 服务器方法的创建
在 S7-1500 CPU(自固件版本 V2.5 起)的 OPC UA 服务器中,可以选择通过用户程序提供方法。 OPC UA 方法为不同通信节点之间的交互提供了有效机制,该机制提供作业确认和反馈值,因此用户无需再编程握手机制。 OPC UA 方法的工作原理
通常,OPC UA 方法的工作原理与运行系统中由外部 OPC UA 客户端调用的受专有技术保护函数块的原理类似。OPC UA 客户端仅"监视"已定义的输入和输出,函数块、方法或算法的内容对外部 OPC UA 客户端保持隐藏,OPC UA 客户端接收成功执行的反馈以及函数块(方法)返回的值,或者,如果执行不成功,则会收到错误消息。 服务器方法的实现
1. 使用 OPC_UA_ServerMethodPre 查询服务器方法调用该指令将执行以下任务:
– 通过该指令询问 CPU 的 OPC UA 服务器是否已通过 OPC UA 客户端调用服务器方法。
– 如果已调用方法,并且服务器方法具有输入参数,服务器方法现在会接收到输入参数。
2. 编辑服务器方法
在这部分服务器方法中,用户提供实际用户程序。如果服务器方法使用输入参数,则可使用这些参数。 仅当 OPC UA 客户端已调用服务器方法时,才可执行服务器方法的这一部分。成功执行方法后,如果方法具有输出参数,需要设置服务器方法的输出参数。
3. 使用 OPC_UA_ServerMethodPost 响应服务器方法
要完成服务器方法,应调用 “OPC_UA_ServerMethodPost” 指令。使用参数通知 “OPC_UA_ServerMethodPost” 指令是否已处理用户程序,如果用户程序已成功执行,则会通过相关参数通知 OPC UA 服务器。OPC UA 服务器随后会将服务器方法的输出参数发送到 OPC UA 客户端。
无论用户程序是由 “OPC_UA_ServerMethodPre” 和 “OPC_UA_ServerMethodPost” 指令处理还是在下一个周期继续执行,始终以成对的形式调用这两个指令。
如下图20所示给出了使用 OPC UA 服务器方法指令为用户程序中所执行的 OPC UA 客户端提供一个方法。需要注意的是服务器方法指令的多重实例必须命名为 “OPC_UA_ServerMethodPre_Instance” 和 “OPC_UA_ServerMethodPost_Instance”,否则不会在服务器上创建方法,还有就是需要声明 “UAMethod_InParameters” 和 “UAMethod_OutParameters” 两个变量分别连接到方法指令引脚上,否则方法指令会报错。