通过UaExpert访问S7-1500的OPC UA服务器

2021/6/4 19:44:26 人评论 次浏览 分类:PLC应用  文章地址:http://yunrun.com.cn/tech/3807.html

屡次三番看过很多有关OPC UA的资料,感觉很抽象,不具体,看后即忘,懵懵懂懂,印象了了!昌晖仪表以西门子PLC为例,实操一遍通过UaExpert访问S7-1500 PLC的OPC UA服务器,总结成此笔记,分享给大家。

有关OPC UA的特点,及其对智能制造、物联网、工业4.0的价值和意义等,不再赘笔,我们集中于实操。


测试说明

OPC UA采用客户端/服务器架构,因此测试中需要一个服务器,一个客户端。

服务器:S7-1500:CPU 1515-2PN TIA: V15.1

客户端:UaExpert  V1.5.1 331

测试有非安全测试和安全测试两种,下文分节介绍:

1、非安全连接测试
非安全测试,设置最简单,我们先短平快得通讯上,感受一下!
①TIA中的相关设置
创建工程等常规操作不详述!TIA中的相关设置都在CPU的属性中!
Step 1: 激活OPC UA服务器
激活OPC UA服务器
因本CPU的X1口的IP为191.168.0.1,且我们将OPC UA的端口设为48400,因此后续我们会以此地址访问此OPC UA服务器。


Step 2: 勾选CPU需要的运行许可证,本试验需要的是medium许可证

medium许可证

Step 3: 在服务器的选项中,设置端口及其他设置。端口默认为4840,可保持默认!我们此处将其修改为48400。

端口默认为4840

Step 4:  OPC UA的常规中,可设置应用程序名称,此处保持默认

设置应用程序名称
至此,TIA中的基本设置已完成。


②TIA中的编程

需在TIA中创建几个变量,并编几句代码,以验证通讯。创建数据块DB_1,包含5个变量
创建数据块DB_1
并在Main中编写如下几行代码:

Main中编写代码
编译下载,使CPU运行起来,确保程序运行正常!
至此,PLC中的设置完成。

③UaExpert中的测试连接

Step 1: 打开UaExpert软件(电脑需跟PLC建立连接)
Step 2: 添加 OPCUA Server(可1处右键ADD,也可直接点2处的+号)

添加 OPCUA Server

Step 3: 添加Server的操作(1处双击,2处输入地址及端口号如图),点击OK…

添加Server的操作

Step 4: 连接

选中刚添加的Server,选中”None-None…”,选项,即无安全校验。因PLC中默认启用访客认证,因此可以在Anonymous处,进行无密码登录。点击OK…
无密码登录

Step 5: 接受服务器证书,Continue…

接受服务器证书

Step 6: OPC UA服务器已连接上,并显示在AddressSpace中。找到DB_1并将其拖放入右侧的Data Access View中。



Step 7: 通过置位复位几个Bool变量,即可看到几个Float变量按PLC中编程的规律变化。

置位复位几个Bool变量
至此,非安全连接通讯已完成。


2、安全连接测试

①TIA中的相关设置
使能全局安全设置
为了管理 OPCUA 服务器的证书必须启用TIA项目的全局安全设置。
Step 1: 项目树下安全设置中,为项目设置用户名和密码
项目设置用户名和密码

Step 2: 导航至"CPU 属性>防护与安全>证书管理器" 选项使能证书管理器

Step 3: 配置安全策略(把无安全设置去掉,则必须进行证书验证)
配置安全策略

②服务器和客户端证书的处理

Step 1: 创建服务器证书(Security的标签页中,点击服务器证书后面的按钮,新增…)
创建服务器证书
弹窗中设置必要的参数(一般默认即可),确定后,即可生成服务器证书。

生成服务器证书
UaExpert连接PLC时,会自动获取此证书,因此不用将此证书导出,并导入到UaExpert中。


Step 2: 客户端证书(需在UaExpert中导出UaClient证书,并导入到S7-1500的客户端信任列表里)。
OK后,UaExpert的Client证书存入PC硬盘。

TIA软件中,项目树下的安全设置中,将导出的Client证书导入受信证书一栏。


CPU属性下,禁止自动接受客户端证书;
在CPU属性下,分配可信客户端

在用户身份认证中,取消“启用访客认证”,在UaExpert中必须输入用户名和密码才能访问OPC UA 服务器。


在用户管理中,可新增用户并为其设置密码。此处需至少新增一个用户,并按规定为其设置密码!


项目编译下载后,在UaExpert中进行访问测试

以”opc.tcp://192.168.0.1:48400”地址添加服务器。展开服务器,因为在PLC侧没有选中“无安全设置”和“启用访客访问”,因此,在这儿就没有”None-None…”选项,登录的“Anonymous”也是不可选的,只能通过用户名和密码登录。

输入用户名和密码后,弹出认证确认窗口,信任并接受服务器证书后继续…


如果在CPU属性的Security中,Secure Channel选中“无安全设置”,用户身份认证勾选“启用访客认证“,则在UaExpert中添加Server后,连接显示画面如下图:


此时,可以选择加密或不加密策略。可以”Anonymous”也可以用“用户名密码“登录。


有时,带安全策略的登录,会连接不上,报错”BadCertificateTimeInvalid”!

报错”BadCertificateTimeInvalid"
这是因为PLC CPU的系统时间不对。认证证书的时间不符合要求。需在CPU中将系统时间修改为当前时间,或“转至在线“后,在TIA中的”在线与诊断“下的功能下,通过”设置时间“,将CPU时间更新!再次连接即可成功!


登录上以后,就可以如下图,监控并给变量赋值操作了!

监控并给变量赋值操作

以上为非安全和安全UaExpert访问S7-1500 PLC的OPC UA服务器实操过程的简单介绍!


尽管文章较长,然截图较多,操作步骤是简单的!通过这种沉浸式操作体验,及浏览操作软件的相关页面及条目,可对一些概念,如命名空间、Node、对象、证书、签名,安全认证等概念有较深的了解。工程软件的学习,是必须要动手的,必须结合硬件和软件界面,才能有切身体会,不然,仅凭看资料,看再多遍,也是隔靴搔痒。本文操作步骤参考官方指导文档,依序动手做了一遍,其收益是良多的!


另,S7-1500自固件V2.6以后,也支持OPC UA Client功能,Client功能的实现,涉及很多复杂的编程,本篇不做详述。本篇用UaExpert作为OPC UA Client!


纸上得来终觉浅,绝知此事要躬行......
作者:流浪者云轩

共有访客发表了评论 网友评论

  客户姓名:
邮箱或QQ:
验证码: 看不清楚?