解决方案:C#通过OPC UA+MQTT将设备数据采集至云端-自动化工程师的数字化之路

优采云 发布时间: 2022-11-20 17:14

  解决方案:C#通过OPC UA+MQTT将设备数据采集至云端-自动化工程师的数字化之路

  写在前面:

  在之前的爆款文章中:

  其中,有这样一句话:所有面向未来的自动化供应商都在加快拥抱软件的步伐。面对数字化转型的现在和未来,工程师们也应该如此。为此,在本刊文章中,特刊出几个相关实例:

  随着物联网时代的到来,相信大家对OPC UA和MQTT并不陌生。作为工业巨头,西门子也第一时间为自家的PLC提供了相应的MQTT库:

  今天我们就来说说如何使用C#通过OPC UA和MQTT采集数据到云端~

  文末有彩蛋~本文内容包括:1.整体网络架构2.服务层3.数据层4.应用层

  01PART 整体网络架构

  很多时候,我们的需求是这样的:现场有N个不同的设备或系统,每个设备或系统的协议都不一样。我们希望可以用一种通用的、简单的方法将这些数据传输到云端,实现远程访问。

  这样的需求其实是物联网最典型的应用之一,所以使用OPCUA+MQTT或许是一个不错的选择。整体框架设计如下:

  图1 整体网络架构

  为了实现整体功能,这里的设备层采用Modbus Slave,基于Modbus TCP协议进行仿真测试,增加5个变量,分为压力1-压力5,对应地址slave,数据类型是浮点数。运行Modbus Slave仿真结果如下:

  图2 ModbusTCP服务器

  02PART服务层

  至于服务层,主要是OPCUA服务器的开发和应用。这里我们有两个选择。一种是使用第三方OPC软件,如Kepware、Knight、Matrikon。不过,还有一种方式就是自己开发,难度相对较大。

  这里我使用了一个自己开发的软件——CMS组态集成软件。通过简单配置,10秒内实现ModbusTCP客户端数据通信。结果如下:

  图3 ModbusTCPClient通讯测试

  不过这部分只是实现了ModbusTCP客户端的功能。如果要实现OPCUA服务器的功能,需要激活OPCUA服务器,在服务器节点下添加一个OPCUA服务器。添加完成后,保存并再次运行。结果如下:

  

" />

  图 4 打开 OPCUAServer

  为了测试OPCUA服务器是否开启成功,需要进行测试。可以使用官方软件UAExpert软件进行测试:

  图5 OPCUAClient通信测试

  03PART数据层

  (1) 在实现数据层功能之前,需要先创建一个MQTT服务器。这里使用了一个基于.NET CORE的MQTT服务器程序,部署在阿里云服务器中运行(这里注意开放1883端口),运行效果如下:

  图表 6 MQTT 服务器

  (2) MQTT服务器创建完成后,重新打开一个CMS配置软件,测试OPCUAClient的功能。上一节的UAExpert是OPCUA官方的客户端软件,仅供测试使用。这里使用的CMS组态软件是OPCUAClient,是我们自己开发的客户端程序。配置完成后运行结果如下:

  图 7 OPCUAClient

  (3)在CMS配置服务器节点,右键添加一个MQTTClient,根据MQTT服务器配置IP、用户、密码、主题、更新时间等相关信息,如下:

  图 8 MQTT 客户端配置

  (4) 配置完成后,点击开始按钮。整体运行后,可以看到MQTT连接成功,并且会按照设置的周期,将最新的数据发布到指定的主题中。效果如下:

  图9 启动MQTT客户端

  (5) 打开MQTT服务器,也可以看到数据在不断的发布。这里为了观察结果方便,压力1的数据模拟为每秒增加1。MQTT服务器收到的数据如下:

  图10 MQTT服务器数据接收

  04PART 应用层

  通过以上相关部署,即可实现整个OPCUA+MQTT。在实际应用中,只需要打开一个MQTT客户端,连接到指定的MQTT服务器,订阅相应的topic即可获取设备层的实时数据。这里使用一个常用的MQTT客户端软件,即MQTT.fx:

  

" />

  图11 MQTT.fx通信测试

  写在最后:

  本文旨在结合目前主流的OPCUA统一架构和MQTT通信协议,实现一种将数据上传到云端的方式。对于自动化行业的工程师来说,可以拓展大家的思路。未来更多的是IT和OT结合的趋势。因此,每一位工控技术人员都必须时刻保持危机意识,不断学习,不断进取,才能更好地面对未来产业的高速发展。

  由于篇幅有限,很多细节可能无法用文字描述清楚,所以我们准备了自动化行业的物联网公开课。名额有限,先到先得。

  结尾

  小编1分钟前说

  创作不易,如果觉得不错,欢迎来听直播课!

  (扫描下图中的代码添加微信~↓↓↓)

  免责声明:本公众号所载文章均为原创或根据网络搜索编辑,文章版权归原作者所有。由于大量转载,无法找到真实出处,如出处错误,或文章中使用的图片、素材、下载链接中收录

的软件和资料,如有侵权,敬请谅解联系我们协商或删除,谢谢!

  过去的推荐

  我们是一群智能制造技术爱好者,我们乐于分享,我们积极向上,我们可能有点家,但我们很有爱心,期待您的加入

  -- 智能制造之家

  多重利益

  1、如果您有智能制造相关的资讯需求,可以在留言区留言哦~

  2.进入知识星球的智造之家,提升自我认知,认识更多朋友,掌握更多资源,掌握更多技能~

  解决方案:新闻采集软件功能特点

  

" />

  用户可以自定义每类信息的来源和分类,可以下载图片和各种文件,如PDF、Flash等。需要支持命令行和纯服务格式,可以配合Windows任务规划器定时提取目标网站。需要支持记录HASHCODE等唯一索引 为了避免重复存储相同的信息,需要支持智能替换功能,可以去除所有嵌入在内容中不相关的部分,比如广告。需要支持自动提取合并多页文章内容。网站程序或桌面程序之间没有耦合。需要支持数据库表结构的完全定制。充分利用现有系统,需要支持多栏目信息采集。同样的配置可以用于一对多的处理。需要提供基于Web的在线内容编辑,可以使用。方便灵活的内容调整和预览需要保证信息的完整性和准确性,绝不会出现乱码。需要提供基于XSLT的模板和Paco自定义格式的模板,提供灵活、方便、标准的模板,方便运营商设计自己的界面需要支持各种主流数据库,如MSSQL、Access、 MySQL、Oracle、DB2、Sybase 等。需要提供基于Web的在线内容编辑,可以使用。方便灵活的内容调整和预览需要保证信息的完整性和准确性,绝不会出现乱码。需要提供基于XSLT的模板和Paco自定义格式的模板,提供灵活、方便、标准的模板,方便运营商设计自己的界面需要支持各种主流数据库,如MSSQL、Access、 MySQL、Oracle、DB2、Sybase 等。需要提供基于Web的在线内容编辑,可以使用。方便灵活的内容调整和预览需要保证信息的完整性和准确性,绝不会出现乱码。需要提供基于XSLT的模板和Paco自定义格式的模板,提供灵活、方便、标准的模板,方便运营商设计自己的界面需要支持各种主流数据库,如MSSQL、Access、 MySQL、Oracle、DB2、Sybase 等。

  

" />

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线