小伙伴们,大家好,我又回来,非常有幸很快就接到了欧姆龙PLC,这款是NX102-1200,这块拥有OPCUA功能,最多可以带到5台客户端。我们要实现的过程是在上篇论文结尾讲到的,这边就再给大家讲解一下过程,如下图:
在这边PLC是OPCUA服务器,因为它自带服务器功能,就简化OPC服务到设备的过程,这块就相当于一体了,今天我们要做两个测试:
①欧姆龙PLC和仿真软件的OPCUA通讯;
②欧姆龙PLC和上位控制台的OPCUA通讯;
在开始测试前我们先打开欧姆龙的OPCUA服务,步骤如下:
①使用欧姆龙的OPCUA服务;
②导入客户端证书(这个是为了安全性),允许匿名登录,传送到PLC;
③创建全局变量,将全局变量的网络公开设为公开,如下图;
④连接PLC,,下载到PLC中,去检测PLC的OPCUA服务器状态,一定要正在运行才行。
可以看到我的OPCUA服务器已经打开,还没连接设备,接下来我们去完成我们要完成的两个测试。
测试1:和OPCUA客户端模拟软件连接
我这边选择的是Softing OPC Client软件,大家可以网上去找找下载,只要是OPCUA客户端模拟软件都是可以的。
通讯步骤:
①将PLC的OPCUA服务器证书导入进去,如下图;
②双击创建server,将连接到PLC的终点写入进去,并写入用户名密码,连接,成功之后会出来以下画面。
连接成功在PLC的OPCUA监控里面也可以监测到:这时的连接的客户端数会更新为1。
③读写测试
我们就读取dataInt、dataArray、led数据,写入start、stop、dataReal。
读取成功!!!
测试2:和上位机控制台连接
我们还是和之前的OPC通讯一样,做个简单的控制台,来实现和PLC的OPCUA通讯,并读取和写入变量,这个步骤如下:
①去管理NUGET程序包里下载OPCFoundation.NetStandard.Opc.Ua包;
②在OPCUA客户端中通讯利用的是Session,所以我们必须创建Session,以匿名登录为例,程序如下:
③读写
同步读取
同步写入
这边给大家解释一下NodeId是什么?NodeId是能读取到的数据的标记,这个怎么写呢,我们可以参考模拟软件上的NodeId就可以了,举个例子
行,相信大家应该已经能够明白了。我上面写的程序是读取dataInt、dataReal的数据,并写入dataArray和start的数据,现在给它运行一下,看看能不能实现读取写入功能。
测试结果:
可见我们的测试非常成功!!!
OK,今天给大家分享的OPCUA通讯知识就到这里,我也是只给大家一点提示,更多的知识还需大家深入去研究,这边也给大家扩展一下,我们其实除了刚刚的那个dll外,还有个更简单的dll,就是OpcUahelper,大家有兴趣的可以去使用看看,会比今天分享的简单很多,但今天分享的更接近原理,大家如果了解了今天所讲的去看OpcUahelper的代码会比较方便,好了,我们下次见吧,小伙伴们。