之前通过OPCDA获取数据,由于OPCDA通过DCOM设置,对网络和服务器要求都比较复杂,公司计划使用OPCUA的方式连接服务器获取数据。
由于是第一次接触OPC开发,好多概念都不明白,弄了好几天才出结果。关于OPCUA的一些理解如下:
- 证书交换指的是消息通道的安全设置,与身份验证不是一码事。你可以指定使用证书加密的同时允许匿名访问,也可以要求使用用户名密码访问,但是却不做数据加密。建议使用用户名密码进行身份验证,同时使用证书进行签名。
- 服务器的证书不需要下载到客户端,只是在客户端做服务器证书验证时注意通过就好了。
- 客户端证书是自签名证书,需要添加到服务器的受信任的客户端中。
- 用户名和密码单独设置。
以KepWare为例记录一下相关设置:
1、创建自签名证书:
makecert.exe -r -pe -n "CN=lsy-desk" -sky exchange -sv lsydesk.pvk lsydesk.cer
pvk2pfx -pvk lsydesk.pvk -spc lsydesk.cer -pfx lsydesk.pfx -pi XXXXXX
文件名和密码可以自己改,makecert是按照visual studio 2019后自带的工具,如果没有该工具可以考虑用别的工具。
2、将lsydesk.cer复制到服务器上。
3、KEPWare服务器设置,安装kepware后,在服务器上的kepware系统托盘上点右键,选择OPC UA配置,服务器端点设置如下: