西门子PLC OPC配置及开发
目录
1、安装博途TIA V15.1以及SIMATIC NET V14 SP1
2、通过在线寻找连接PLC
3、在软件上配置OPC SERVER
4、在PC上配置OPC SERVER
5、对博途软件上的PC STATION进行在线组态
6、qt从5.11开始集成了opcua模块,但必须自己编译
7、配置KepServer
8、配置Qt为OpcUA客户端连接KepServer
9、裸SOCKET配置
本文主要记录的PLC+OPC开发配置,包括以下几个部分:
①在软件上添加一个PLC模块,并且与PLC实体进行连通测试;
②在软件上添加一个OPC模块;
③在本地PC上添加OPC服务器;
④连通软件上的OPC模块和本地PC的;
1、安装博途TIA V15.1以及SIMATIC NET V14 SP1
安装这个两个软件的主要问题都在于注册表,TIA的安装是过程中不断的重启,而SIMATIC NET的安装是失败退出,他们的原因都是相同的,就是注册表中的重启键,删除了就好了。
2、通过在线寻找连接PLC
创建成功之后点击“项目视图”打开
将PLC通过网线连接到路由器上,与本机PC在同一个局域网上,点击菜单“在线”-“可访问设备”,进入设备搜索模式
找到之后选中,点显示,即可在左侧菜单中看到
选中此在线设备,点击“在线”-“将设备作为新站上传”,上传成功即可在我们的项目中看到新上传的设备信息,里面还包含了数据,这些数据是之前写入进去的,我们在这里重点不是研究编程,因此在此就不重新编写这些数据了。
到这里我们软件与实体PLC(192.168.0.1)连接就成功了。
注意:有一个问题在于,我们的PLC与我们的本机电脑(192.168.2.178)不在同一个网段。现在连接相当于是我们用一个虚拟的IP(192.168.0.241)将他们连接在一起的。这样不是不可以,但是我们接下来要配置OPC SERVER在本机的时候,他会识别到本机的真实IP(192.168.2.178),而不能识别到这个虚拟IP(192.168.0.241)。我们在软件上配置OPC SERVER时,填的地址如果为192.168.2.178,则与PLC的192.168.0.1不是同一个网段,如果填的是192.168.0.241,则与实体OPC SERVER的地址192.168.2.178不一致,导致寻找不到,因此我们必须给PLC一个相同网段的IP,摈弃用虚拟IP与PLC相连。
对PLC右键属性,修改其IP地址和子网掩码,必须与本机真实的IP一致。
注意掩码也要一致,非常关键。
修改之后下发到实体。
然后对PLC右键转为在线,发现可以正常连线,至此PLC配置才真正完成。
注意2:假设IP地址都已经设好了,有一天发现断了,连不上,转到在线时显示PLC未响应,那么此时可能是IP地址发生了冲突。
因为你这个IP是设固定的,当你断电期间,有别的设备使用了这个IP,你这个PLC就没办法使用这个IP了,电脑跟PLC无法通过这个IP地址进行通信,他又不会自己指定另外的IP。此时要通过修改软件上的IP然后下发给PLC,是无法进行下发的,因为连接不上。此时只有将PLC直接连接到电脑的网口上,在软件修改了IP之后,直接下发,搜索可用设备,然后直接下发给设备就可以了。都完成之后,再将PLC重新接入交换机,而电脑也是如此,这个时候电脑的软件设定和PLC都是相同的IP,这样就可以转到在线了。
3、在软件上配置OPC SERVER
添加新设备:
选定一个槽,选一个IE,版本不能太高,因为我们的NET版本较低,太高的版本会对不上。
选一个OPC SERVER同样版本不能高了,最多14。
博途软件端的OPC SERVER就暂时配置到这里。
4、在PC上配置OPC SERVER
打开Station Configuration Editor。点击ADD,先添加一个IE。
再添加一个OPC SERVER。
5、对博途软件上的PC STATION进行在线组态
还未设置IE的IP,我们先设置IE的IP再来组态。
转至在线。
转在线成功。
将PC station和PLC连起来。
组态其中的数据
下载到设备。
以为这样就结束了,naive。配置opc中各种折磨...这个转至在线可以了,为什么Station configuration editor中的连接标志没有出现?
先将转为离线,编译,下载到设备(全部),在转为在线,就可以看到连接标志了。
注:最终用西门子opc server组件没有调通,用诊断工具看一直显示连接未使用,后来改用KepServer比较顺利调通了,易用性上面相差非常多。KepServer如何使用在后面记录数据通信时再讲。
6、qt从5.11开始集成了opcua模块,但必须自己编译
参考这边文章进行编译:
https://blog.csdn.net/vivisoul/article/details/99733034
①使用Qt5.12版本,下载地址:
http://download.qt.io/archive/qt/5.12/5.12.0/
下载exe版本就可以了,他的编译器配置可以在项目中配置。
注意:要先安装vs2017,这样再装qt的时候可以自动识别编译器,不需要再自己手动配置。
②打开qt中的vs2017编译器64位,进行qtopcua编译
③进行vs编译器环境设置(动态)
打开这个命令行时,有提醒需要call vcvarsall.bat进行环境变量设置。这个走了很多弯路,不知道要在本窗口直接设置直接使用。
说明:本机win7 x64,我们的编译器要用msvc2017_64。
设置成功。
④开始编译
接下来开始编译,会退到最初的位置。
// 第一句就是设置环境变量的
"c:\Program Files (x86)\Microsoft Visual Studio\2017\WDExpress\VC\Auxiliary\Build\vcvarsx86_amd64.bat"
git clone https://code.qt.io/qt/qtopcua.git
cd qtopcua
git checkout 5.12
mkdir build
cd build
qmake ..
nmake
nmake install
7、配置KepServer
①下载KepServer,打开直接添加通道,添加设备
注意这些名称不要用中文不然等下QT识别不到(可能跟编码有关)
②添加标记,一个标记就是PLC上面的一个地址
我没办法看到是否连接上,就添加完标记再测试是否连接成功吧。
右键添加标记
从博图上找到想添加的变量,按照他的书写方法写进去。
在客户端上进行修改,查看PLC是否同步修改。
从客户端进行修改他
已发生变化,说明修改成功,KepServer搭建已经成功。
③设置可以匿名登录
6.7版本可以设置,6.7以下版本,没看到在哪里设置,有的电脑安装之后,qt会连不上,所以最好还是按照6.7版本。
先安装6.7,如果安装后运行正常,重启再观察是否能正常启动服务,不能的话则卸载掉再装6.4。步骤:
卸载6.7->清空残留文件夹->重启系统->安装6.4->验证是否能正常启动服务->重启电脑再次验证能否正常启动服务->安装完成。
8、配置Qt为OpcUA客户端连接KepServer
根据上面的QT编译OPC模块操作之后,OPC就不是什么问题了,但是在连接Server的时候还是出了一点问题,这里记录一下。
①下载了最新的Qt5.13.1,并进行OPC插件编译,注意编译插件时git版本要切换为5.13.1版本。
②从github下载qtopcua项目,直接在github搜索qtopcua,第一个项目就是,注意下载5.13.1版本。
③下载解压之后,直接打开examples项目,注意不要将其单独拷贝出来,此项目还依赖文件夹中其他代码。
④直接运行该项目,可以跑起来。会找不到证书的错误:
qt.opcua.security: No client certificate found at "E:/hit-qt/OpcTest/qtopcua-5.13.1/build-examples-Desktop_Qt_5_13_1_MSVC2017_64bit-Debug/opcua/opcuaviewer/debug/pki/own/certs/opcuaviewer.der" . Application identity will be invalid.
先不用管它。
⑤尝试搜索opc server服务器,未果。
⑥由于端口未知,所以搜索服务器肯定是找不到的,这里要做两个事情:一是查找究竟服务器端口是哪个;一个是因为没有证书,如何配证书。
⑦查看服务器端口
找到端口。
⑧配置证书
从上一步骤打开的软件,点击受信任的客户端,下载证书,放到刚才运行qt报错的位置,还是搜索不到服务器。
直接在这里双击,取消掉加密:
⑨重新启动server
⑩重新启动之后再用qt客户端连接成功
9、裸SOCKET配置
西门子PLC OPC配置及开发相关推荐
- s7 200 java_java android 读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC...
本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 gi ...
- 一种低成本的西门子PLC网关实现采集S7系列西门子PLC数据
西门子PLC网关BL102是一款性价比高.价格低.稳定性好.功能强大的PLC网关,用来采集西门子PLC各种型号的协议网关,可以采集S7-200,S7-200Smart,S7-300,S7-400, S ...
- C#使用S7.net连接西门子S1200PLC,C#直接连接西门子PLC
距离上一篇C#使用KepService连接已经好久了,这次把S7.net的更新上来.在此鸣谢一下(李,罗,任.) 附上github链接:https://github.com/S7NetPlus/s7n ...
- snap7通过NetToPLCsim工具接入模拟西门子PLC S7-1200步骤简介
概述 本文主要是设备通过S7协议接入西门子PLC S7-XXXX系列的开发使用文档,主要包括西门子PLC组态工具博途V15,PLC模拟工具S7-PLCSIM,IP地址映射工具NetToPLCsim等使 ...
- 西门子plc如何用c语言编程软件下载,s7一200编程软件下载安装
s7-200编程软件是专为西门子s7-200系列可编程控制器而设计开发的一款工业化编程工具,该工具基于Windows系统而开发,功能强大,既可用于开发用户程序,又可实时监控用户程序的执行状态,是西门子 ...
- KEBA 控制器通过 NT50 连接西门子 PLC
产品介绍: NT50-DP-EN 网关,可以支持 PROFIBUS-DP 和 PROFINET 之间的转换. 支持三种转换方式: 1.PROFIBUS 从站转 PROFINET 从站 2.PROFIB ...
- 工业通讯 | KEBA 控制器通过 NT50 连接西门子 PLC
产品介绍: NT50-DP-EN 网关,可以支持 PROFIBUS-DP 和 PROFINET 之间的转换. 支持三种转换方式: 1.PROFIBUS 从站转 PROFINET 从站 2.PROFIB ...
- KEBA控制器通过PROFINET连接西门子PLC
摘要 方案介绍: KEBA控制器支持PROFIBUS协议,需要连接西门子S71200/1500等系列支持PROFINET通讯的PLC.本文通过赫优讯NT50系列网关,实现西门子S71200 PLC(P ...
- EtherNet IP转PROFINET网关连接西门子PLC
1.罗克韦尔(AB) PLC 1769-L32E以太网通讯(EtherNet/IP)与西门子S7-1200 PLC(PROFINET)进行连接.今天与大家分享一篇EtherNet/IP转PROFINE ...
最新文章
- python安装教程32位-python为什么要装32位的
- Ghost后只有一个C盘解决方法(转)
- JDBC基础知识复习
- Devops (1)
- 今晚直播 | AAAI 2018论文解读:零资源机器翻译的最新进展
- sscanf函数用法详解
- Delphi中的时间操作技术(1)
- CentOS6.0 yum php mcrypt 扩展安装问题
- 为啥linux分区是nvme0n1,NAS 篇五:尝试达成最终目标: 黑裙+万兆网卡+Nvme 存储空间的实现与测试...
- 联邦快递“误运”华为包裹遭调查 联邦快递:全力配合
- C++ MathGL 二维数据绘图
- C++设计模式——Composite 组合模式
- Ubuntu 安装 中文输入法(Google 拼音)
- 初步了解Java内部类
- CSS 自定义滚动条样式
- 华为鸿蒙2.0安装包,华为鸿蒙2.0系统安装包
- 游戏必备组件有哪些_抖音直播互动游戏有哪些?直播间热场互动必备的5个小游戏...
- 【科普】数字货币的基石--区块链
- WTS:基于Web的Terminal控制台
- kinect游戏linux,两台kinect同时运行
热门文章
- 解读 | 赛迪“区块链赋能实体经济推进计划”
- 易买网更多新闻代码_新闻 | 0515演员李沇熹结婚等更多资讯
- 浏览器不能打开网站问题
- Axure RP快捷键指令汇总
- git入门手册(绝对简单易懂)
- 2021-06-28制作扁平插画
- 全媒体运营 之 受众分析
- 出现java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher
- 单相半波可控整流电路实验报告matlab,单向半波可控整流电流MATLAB仿真实验报告...
- 仪表放大器的PCB布局-运放