为保持内容的垂直度,继上篇西门子PLC做OPC UA 服务器后,又测了一下贝加莱 PLC 做OPC UA服务器。服务器选用贝加莱 X20系列PLC X20CP1585,客户端使用UaExpert软件。
实操部分拟后续录个视频,本文着笔于思路和心得,非实操指导文档。但测试过程中,以前一些没弄懂的问题,逐步豁然,望对大家有用处。
知识无品牌之分,本文为个人学习笔记,参考了网络文章及贝加莱官方培训资料!
基本设置
OPC UA工作基于服务器-客户端架构。一般PLC作服务器,可实现与SCADA、MES和ERP系统之间的垂直通信以及PLC到PLC的独立于供应商的通信(如贝加莱 PLC 与西门子PLC之间的通讯)等。PLC也可做客户端。
集成OPC UA服务器的PLC,一般需手动激活OPC UA服务器功能。在贝加莱AS软件中,需激活OPC-UA System,
路径:Physical View -> CPU(右键)->Cinfiguration…
图1:OPC-UA System及相关设置
1。 从默认"off"设成“on”,激活PLC的OPC UA 功能。
2。 OPC UA服务器的默认端口号是4840,可根据需要更改。客户端连接服务器时的URL地址一般如图2所示:
图2:连接PLC,或软件仿真时的URL:
3。 Conversation: Security Policies
定义客户端与服务器之间数据传输的加密策略和信息模式。可理解为对传输数据进行加密、签名、认证等一系列技术。
当此项选择为No Security时,信息为非加密传输,在此策略下,信息传输是不安全的,易被监听或截获。
4。 Authentication : Security Policies
定义登录数据(Login Data)的加密策略,如用户名和密码等敏感信息。
当上述3的安全策略设置为No Security时,黑客就容易截获未加密的信息。如果4也选择No security策略,那么黑客就能从截获的信息中,直接获取到未加密的用户名和密码等登陆信息。如果4选择了加密策略,则即便黑客截获了传输的信息,也无法解密用户名和密码。
如3选择NoSecurity,其危险程度相当于授人以鱼
如4选择NoSecurity,其危险程度相当于授人以渔
5。 选择允许客户端登录服务器的方式。是否允许匿名登录,或必须以服务器端定义的用户名和密码登录。(见下一段:服务器端Role和User的定义)
6。 Software Cerfiticates: 定义是否需要服务器和客户端之间的证书认证,及认证要求。
后续几个条目设置Pub/Sub的周期和限值等,测试中保持默认即可。
综上, OPC UA定义了多重安全策略,以保证通讯的安全。
服务器端Role和User的定义
在OPC UA服务器端,需定义具有不同授权的Role,及对应各种Role的User。 Role相当于职位,如总经理,总监,经理等。User为各个职位上的人,如赵总经理、钱总监、孙经理、李经理等。
路径:ConfigurationView->CPU-> AccessAndSecurity->User Role System
图3:Role和User的设置
右图创建了三个User,为每个User分派一个Role。相当于给每个员工分派一个职位。也可以为每个User设置一个密码。
图1中第5条,当设置需要Username登录时,则客户端需要输入相应的用户名和密码才能登录。
图4:客户端的用户登录
至此,建立了Role和User,但并没有具体定义各个role的权限。其授权指对相关数据对象(变量)或方法的操作权限。
PLC变量创建及管理
在服务器侧需要创建相关变量,并编写一段代码,如通过一个布尔变量触发累加的程序,用于测试,不详表。
须在OPC UA服务器上使能允许客户端访问的变量,在AS中通过添加OPC UA Default View File实现。
路径:ConfigurationView ->Connectivity->OPC UA下添加
图5:OPC UA Default View及其属性也
在Default View的属性页,添加各个Role后,即可设置各个Role的权限。
各个变量根据需要进行使能。客户端只能访问到在Default View中使能的变量和方法。
可分别设置各变量的属性,如上下限值、单位、针对不同Role的权限等。
至此,即可从UaExpert客户端进行服务器的连接测试。
证书
若图1中第6条,Software Certificates后选择了SSL Configuration,则必须添加服务器或客户端的证书。SSL Configuration配置服务器和客户端的证书。当不启用Software Certificates时,客户端信任服务器的默认证书。
证书的管理及相关操作:ConfigurationView ->CPU->Access And Security 下!
图6:证书
1。 在OwnCertificates下添加新定义的服务器证书。
2。 在ThirdParty Certificates下导入从UaExpert导出的客户端证书。(从UaExpert导出证书步骤略…)。
3。 在TransportLayer Security下添加并设置SSL Configuration
SSL Configuration中客户端证书可选择on或off,其配置页见图7。
图7:SSL Configuration中的证书配置
SSL Configuration配置好后,在OPC-UA System 下的Software Certificates下,即有SSL Configuration选项,以定义启用或不启用证书认证。
如果证书认证不成功,即便图1,Conversation下的Security Policy 选择No Security, 也是无法建立连接的(重新启动一下服务器,就会有多么痛的领悟!)。
三种安全措施,加密归加密、登录归登录、证书归证书,各司其职!
图8:客户端登录 在客户端连接服务器时,需要选择数据传输的安全策略,并按要求输入用户名和密码登录。证书工作于后台。
后记
OPC UA服务器侧的设置相对简单,激活OPC UA服务器功能、选择安全策略、创建角色和用户,把变量在服务器上激活,对证书进行管理等,没有涉及到针对OPC UA通讯的编程。若客户端需要执行服务器上的方法,需在服务器上编程,创建方法,复杂些。当PLC做OPC UA 客户端时,会涉及到更复杂些的编程。