[西门子] S7-1500联合阿里云物联网平台实现数据远传

[复制链接]
查看70288 | 回复0 | 2024-3-28 20:04:07 | 显示全部楼层 |阅读模式
01

前言

近几年,在工控自动化领域,物联网必然是最热门的话题之一。

然而,对于很多PLC工程师来说,物联网似乎仍然是一个很遥远的概念。

今天,主要分享一下如何基于阿里云的物联网平台,实现PLC控制系统数据远程上云,这里以西门子1500PLC为例,其他品牌PLC开发思路是一样的。

文章有点长,耐心看完,文末有惊喜。

02

Iot平台
1、Iot平台选择的是阿里云的物联网平台,阿里云物联网平台链接:https://www.aliyun.com/product/iot/iot_instc_public_cn
2、点击进入控制台,并登录阿里云账号


3、选择公共实例进入,如果没有开通,需要开通一下。

4、在设备管理 >> 产品 ,右侧点击创建产品,按照下图进行设置:



5、产品创建成功后,点击添加设备按钮,在弹出的窗体中,输入DeviceName,名字可以自己定义,这里设置为S7-1500。



6、设备添加完成后,点击设备详情,可以进入下列界面,我们可以看到相关的信息,会自动分配一个ProductKey,点击查看,可以看到详细信息,如下图所示:



7、查看MQTT连接参数,点击MQTT连接参数后的查看按钮,可以看到MQTT连接的相关参数。



8、至此,一个阿里云的MQTT服务器设备就创建好了,我们需要进行测试,这里采用MQTT工具——MQTT.fx,打开MQTT.fx,将生成的相关信息输入进去,然后点击Apply后,再点击Connect。



9、刷新阿里云物联网平台,查看设备状态,设备状态由未激活变成了在线,说明MQTT连接成功:



12、添加一个Topic主题,平台默认已经有了一些Topic,所以可以使用现成的,也可以自己添加自定义Topic,如下图所示:



03

PLC通信
当我们准备好MQTT服务器之后,如果要实现数据远程上传,接下来就要实现PLC数据采集,针对西门子PLC,我们可以采用开源的通信库S7.NET。1、首先确定一下需要远程上传的数据本案例采集8组温度传感器和流量传感器数据,因此创建了16个浮点型变量,如下所示:


2、PLC连接及MQTT连接

这里主要涉及到与PLC的连接以及与MQTT服务器的连接,其中PLC连接采用S7.Net,MQTT连接采用MqttNet。


3、实现PLC数据读取及解析及数据远传
        由于本案例数据是连续的64个字节,并且都是浮点型数据,因此直接读取之后转换成浮点数组,然后通过索引赋值即可。


04

上位机开发
1、上位机UI界面设计
        上位机部分的UI界面设计主要是根据功能来做的,包括功能菜单、导航菜单及设备状态、系统报警显示,以及实时监控界面。2、上位机监控实现
        运行上位机监控界面,可以看到上位机系统正确读取到PLC数据,并进行实时显示,同时上位机将数据远传到阿里云物联网平台,我们设置的上传周期为五秒。



05

写在后面
近几年, 随着越来越多的设备开始加入IIoT 网络(Industrial Internet of Things,工业物联网简称IIoT),IT与OT之间的界限将逐渐消失,直到成为一个或相同的系统为止。
最近发现,越来越多的电气工程师开始转型上位机开发,电气工程师转型上位机开发是一个必然趋势。

如果你也是对上位机感兴趣的电气工程师,今晚八点,来我直播间,咱们聊聊C#上位机与西门子PLC通信的应用场景。

如果害怕错过,点击阅读原文,收藏一下链接。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则