写在前面:
很多人在学习 OPCUA 的时候, 有个非常苦恼的问题, 就是没有 OPCUA 服务器的环境, 这时候, 有些人可能会想到通过类似于 KepServer 这样的软件来实现. 那么, 有没有一种方式, 实现快速搭建 OPCUA 环境呢? 答案是有的, 今天继续给大家分享 S7-PLCSIM Advanced,S7-PLCSIM Advanced 是 SIEMENS 推出的一款高功能仿真器, 它的显著特点是除了可以仿真一般的 PLC 逻辑控制程序外还可以仿真通信, 功能是非常强大的, 今天主要讲述如何基于 S7-PLCSIM Advanced 搭建 OPCUA 通信仿真环境.
01.PLCSIM-Advanced 安装
图表 1 PLCSIM Advanced 软件
PLCSIM-Advanced 的安装也比较简单, 基本上是一路 NEXT 即可, 但是主要的是 PLCSIM-Advanced 会依赖 WinPcap 软件, 所以大家可以提前安装好 WinPcap, 即使不提前安装, 安装过程中也会提示你安装的.
安装完成后, 电脑中会额外多出一个虚拟网卡, 名称为 Siemens PLCSIM Virtual Ethernet Adapter, 如下图:
图表 2 网卡列表
02.PLCSIM-Advanced 使用
安装完成后, 桌面上会多出一个图标, 即 S7-PLCSIM Advanced V3.0, 如下图所示:
图表 3 PLCSIM Advanced 图标
该软件的使用可以按照下方的步骤执行和确定, 一定要记住以下需要注意的地方, 否则一个很小的问题, 可能会让你浪费半天的时间, 这样就得不偿失了.
(1) 软件要以管理员权限运行: 可以直接每次右击, 以管理员权限运行, 如果想一劳永逸, 可以点击图标, 右击属性, 在兼容性中, 将以管理员身份运行此程序的选项勾选.
图表 4 设置管理员权限运行
(2) 将本地网卡及虚拟网卡的 IP 地址获取设置为自动获取.
(3) 设置 PG/PC 接口:
通过控制面板, 打开设置 PG/PC 接口界面, 按照下图所示设置应用程序访问点:
图表 5 设置 PG/PC 接口
(4) 打开 PLCSIM-Advanced, 依次按照步骤进行设置:
图表 6 设置 PLCSIM-Advanced
(5) 使用博图创建一个简单项目, 一定要选择 1500PLC,PLCSIM-Advanced 只支持 1500PLC, 但是对学习通信来说, 没什么影响.
(6) 勾选允许 Put/Get 访问:
图表 7 设置允许 PUT GET 访问
(7) 点击项目, 右击属性, 将保护中的块编译时支持仿真选项勾选:
图表 8 设置块编译支持仿真
(8) 下载 PLC 程序时, 将 PG/PC 接口设置成 Siemens PLCSIM Virtual Ethernet Adapter.
图表 9 选择 PG/PC 接口
(9) 选择显示所有兼容的设备, 点击开始搜索, 搜索到之后, 点击下载即可.
图表 10 搜索设备下载
03.OPCUA 配置
上述过程和搭建 S7 通信环境完全一样, OPCUA 其实就是在 S7 的基础上, 需要先增加一些 DB 存储区, 然后在 DB 块中添加一些变量, 这里不需要去除优化访问, 如下图所示:
图表 11 新建 DB 块
增加完成之后, 双击 CPU, 在 OPCUA 选项中, 将激活 OPCUA 服务器勾选, 如下图示所示:
图表 12 激活 OPCUA 服务器
激活 OPCUA 服务器之后, 选择运行系统许可证选项, 选择一个 OPCUA 许可证:
图表 13 选择 OPCUA 许可证
以上操作完成之后, 将 PLC 程序重新下载, 下载步骤如上述一致.
04.UAExpert 通信测试
上述操作完成之后即完成了整个环境搭建的过程, 下面先使用官方的 UAExpert 进行测试.
图表 14 UAExpert 通信测试
05. 通信测试平台测试
接着, 我们使用新阁的通信测试平台软件进行通信测试, 设置服务器节点为 opc.tcp://192.168.1.20:4840(根据实际情况修改), 点击连接, 连接成功后, 点击变量管理, 即可看到 OPCUA 服务器中的所有节点, 通过选择 DataBlockGlobal 下的 KYJDB, 找到了我们刚刚配置的变量, 选择想要读取的变量, 然后读取即可.
图表 15 变量选择
图表 16 新阁通信测试平台
写在最后:
本文旨在结合 SIEMENS 推出的一款高功能仿真器 PLCSIM-Advanced 软件实现快速搭建 OPCUA 通信仿真环境, 对于从事上位机开发, 想要学习 OPCUA 通信, 手头又没有硬件的学员来说, 无疑是一大利好, 基于 OPCUA 与西门子 PLC 通信, 可以通过变量名称访问, 而不需要去除 DB 的优化访问, 这一点非常方便.
来源: https://www.cnblogs.com/xiketang/p/13031666.html