近几年,在工控自动化领域,物联网必然是最热门的话题之一。
然而,对于很多PLC工程师来说,物联网似乎仍然是一个很遥远的概念。
今天,主要分享一下如何基于阿里云的物联网平台,实现PLC控制系统数据远程上云,这里以西门子1500PLC为例,其他品牌PLC开发思路是一样的。
02 Iot平台
1、Iot平台选择的是阿里云的物联网平台,阿里云物联网平台链接:https://www.aliyun.com/product/iot/iot_instc_public_cn
2、点击进入控制台,并登录阿里云账号
3、选择公共实例进入,如果没有开通,需要开通一下。
4、在设备管理 >> 产品 ,右侧点击创建产品,按照下图进行设置:
5、产品创建成功后,按照提示添加设备,点击前往添加按钮即可。
6、点击添加设备按钮,在弹出的窗体中,输入DeviceName,名字可以自己定义,这里设置为S7-1500。
7、设备添加完成后,点击设备详情,可以进入下列界面,我们可以看到相关的信息,会自动分配一个ProductKey,点击查看,可以看到详细信息,如下图所示:
8、详细信息包含ProductKey、DeviceName和DeviceSecret,阿里云称之为三元组,这三个信息要注意保密,可以点击一键复制,把这三个信息复制到记事本中,下一步会用到。
9、MQTT连接最终需要的是域名、用户名、密码之类的信息,所以我们需要将三元组转换成我们需要的信息,这里使用一个在线转换工具:https://www.nnhpiot.com/aliyunmqtt.html,输入相关信息,其中timestamp和clientId可以自己定义,然后点击Generate生成即可:
10、至此,一个阿里云的MQTT服务器设备就创建好了,我们需要进行测试,这里采用MQTT工具——MQTT.fx,打开MQTT.fx,将生成的相关信息输入进去,然后点击Connect:
11、刷新阿里云物联网平台,查看设备状态,设备状态由未激活变成了在线,说明MQTT连接成功:
12、添加一个Topic主题,平台默认已经有了一些Topic,所以可以使用现成的,也可以自己添加自定义Topic,如下图所示:
03 PLC采集
当我们准备好MQTT服务器之后,如果要实现数据远程上传,接下来就要实现PLC数据采集,针对西门子PLC,我们可以采用开源的通信库S7.NET。1、首先确定一下需要远程上传的数据 本案例采集8组温度传感器和流量传感器数据,因此创建了16个浮点型变量,如下所示: