写在前面:

很多人在学习OPCUA的时候,有个非常苦恼的问题,就是没有OPCUA服务器的环境,这时候,有些人可能会想到通过类似于KepServer这样的软件来实现。那么,有没有一种方式,实现快速搭建OPCUA环境呢?答案是有的,今天继续给大家分享S7-PLCSIM Advanced,S7-PLCSIM Advanced是SIEMENS推出的一款高功能仿真器,它的显著特点是除了可以仿真一般的PLC逻辑控制程序外还可以仿真通信,功能是非常强大的,今天主要讲述如何基于S7-PLCSIM Advanced搭建OPCUA通信仿真环境。

01.PLCSIM-Advanced安装

对于该软件的获取,大家可以去西门子相关网站下载,也可以直接关注喜科堂上位机官方公众号-dotNet工控上位机,然后发送关键词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的优化访问,这一点非常方便。

上位机C#通过OPCUA和西门子PLC通信的更多相关文章

  1. 上位机开发之三菱Q系列PLC通信实践

    经常关注我们公众号或者公开课的学员(如果还没有关注的话,左上角点击一波关注)应该知道,我们会经常使用西门子PLC,其实对于其他品牌的PLC,我们都会讲到,包括三菱.欧姆龙.基恩士.松下及国产台达.信捷 ...

  2. 【精讲版】上位机C#/.NET与西门子PLC通信

    618来啦 亲们,腾讯课堂101机构打榜了,快来助力<新阁教育>,<免费赠送课程>! 1.手机QQ(微信请也来一遍)扫下方二维码↓,找到<新阁教育> 2.点击“支持 ...

  3. 基于S7协议实现与西门子PLC通信

    西门子PLC是目前工控行业市场占有额比较大的一款PLC,而且随着上位机的越来越普及, 有很多人开始考虑自己开发上位机实现与西门子PLC的通信,遇到的第一个问题就是数据通信. 其实西门子PLC提供的接口 ...

  4. 上位机开发之西门子PLC-S7通信实践

    写在前面: 就目前而言,在中国的工控市场上,西门子仍然占了很大的份额,因此对于上位机开发而言,经常会存在需要与西门子PLC进行通信的情况.然后对于西门子PLC来说,通信方式有很多,下面简单列举一下: ...

  5. C#读写三菱PLC和西门子PLC数据 使用TCP/IP 协议

    本文将使用一个Github开源的组件库技术来读写三菱PLC和西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能 ...

  6. C# 读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC

    本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 官方 ...

  7. python 读写西门子PLC 包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC

    本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 nu ...

  8. java android 读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC

    本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 gi ...

  9. C#读写西门子PLC数据

    C#读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC 本文将使用一个gitHub开源的组件技术来读写西门子plc数 ...

随机推荐

  1. Day_12【集合】扩展案例3_产生10个长度为10,不能重复,由数字0-9,小写字母和大写字母组成的字符串

    分析以下需求,并用代码实现 1.产生10个1-20之间的随机数要求随机数不能重复 2.产生10个长度为10的不能重复的字符串(里面只能出现大写字母.小写字母.0-9的数字),并遍历打印输出 代码 pa ...

  2. 数组的操作。1,JS数组去重。2,把数组中存在的某个值,全部找出来。3在JS数组指定位置插入元素。。。

    1,数组去重 let arr = [1,2,3,4,5,6,1,2,3,'a','b','a']; let temp = []; // 作为存储新数组使用 for(let i = 0; i < ...

  3. fork...join的用法

    如果希望在仿真的某一时刻同时启动多个任务,可以使用fork....join语句.例如,在仿真开始的 100 ns 后,希望同时启动发送和接收任务,而不是发送完毕后再进行接收,如下所示: initial ...

  4. EI检索

    第一步: 网址:http://www.elsevier.com/online-tools/engineering-village 第二步: 网址:http://www.engineeringvilla ...

  5. 8、HTTPS证书Actions无法导出问题

    前言 在点Actions时候出现Export Failed:The root certificate could not be located.最近有很多小伙伴在fiddler导出证书的时候,遇到无法 ...

  6. 基于MySQL 的 SQL 优化总结

    文章首发于我的个人博客,欢迎访问.https://blog.itzhouq.cn/mysql1 基于MySQL 的 SQL 优化总结 在数据库运维过程中,优化 SQL 是 DBA 团队的日常任务.例行 ...

  7. Win10系统如何分区

    前言:新买了redmibookpro 14打开此电脑后,查看到出厂时C盘分了146G其他的328G全部分到了D盘,对于平时分类比较明确的我来说这不能忍,所以开始磁盘分区. 一.右击此电脑->管理 ...

  8. 初识JAVA(学习记录)

    Java 1.1Java简介 Java是一种跨平台的,面向对象的程序设计语言.无论是电脑还是手机,到处都运行着JAVA开发的应用程序:JAVA程序可以在任何计算机.操作系统以及支持JAVA的硬件设备上 ...

  9. vs2015 cppunit配置及使用

    目录 第一步 第二步 第三步 编译生成lib库 使用 calculator类测试 代码部分 第一步 下载源代码 http://sourceforge.net/projects/cppunit/file ...

  10. DRF路由组件和渲染器组件

    参考博客:https://www.cnblogs.com/wupeiqi/articles/7805382.html