当前位置: 首页 > article >正文

EG边缘计算网关连接纵横云3.0物联网平台(MQTT协议)

上文: EG边缘计算网关连接中移ONENET物联网平台(MQTT协议)

更多可见:成都纵横智控

需求概述

本章节主要实现一个流程:EG8000采集的数据,组装成JSON格式,并通过TCP上报应用平台;同时能够接收应用平台下发的控制命令,实现远程开关。要实现此流程,需要提前准备好以下材料:

要采集的PLC的IP端口以及点位表,例如:

PLC

S7-200 Smart

IP

192.168.0.34/102

地址

数据类型

属性

名称

I0.0

Boolean

只读

MotorState1

I0.1

Boolean

只读

MotorState2

V0.4

Boolean

读写

MotorControl1

V0.5

Boolean

读写

MotorControl2

VD100

Float

只读

voltage

VD200

Float

只读

current

VW300

Uint16

只读

frequency

VW302

Uint16

只读

frequencySetValue

MQTT通信相关参数及JSON数据格式要求,例如:

JSON格式:
{
	"sensorDatas":
	[
		{
			"flag":"MotorState1",
			"switcher":1
		},
		{
			"flag":"MotorState2",
			"switcher":1
		},
		{
			"flag":"MotorControl1",
			"switcher":1
		},
		{
			"flag":"MotorControl2",
			"switcher":1
		},
		{
			"flag":"voltage",
			"value":220.0
		},
		{
			"flag":"current",
			"value":10.2
		},
    {
			"flag":"frequency",
			"value":50
		},
    {
			"flag":"frequencySetValue",
			"value":50
		},
	]
}

需求分析

网关配置:

第一步:采集PLC数据

第二步:拼接Json

第三步:MQTT上报

第四步:下行MQTT订阅

第五步:解析下行Json写入PLC

平台配置:

第一步:添加设备

第二步:添加数据点

第三步:绑定标志

第四步:测试

需求实现

网关配置

第一步:采集PLC数据

此处为采集PLC数据,不在过多赘述,可参考其他案例。采集到PLC的流程如下:

此处为语雀内容卡片,点击链接查看:PLC Item · IOTRouter

第二步:拼接Json

此处报文将数据按照需求概述拼接成Json格式,需要注意的是平台限制每包数据上传间隔必须大于1S,这里使用缓存队列节点来实现数据有序发送:

💡平台3.0有数据接收长度限制,所以本案例通过函数节点对采集的数据做了拆分上传处理

第三步:MQTT上报
新增MQTT发布节点,连接信息如下:
IP域名:1883.dtuip.com
端口:1883
客户端ID:网关SN(序列号)
用户名:平台3.0登录账号
密码:平台3.0登录密码
发布主题:网关SN(序列号)

配置MQTT发布节点,用于将采集到的数据上传平台3.0:

第四步:下行MQTT订阅
新增MQTT订阅节点:
连接信息:使用发布节点配置的连接信息
订阅主题:网关SN/+

配置MQTT订阅节点,用于接收平台3.0下发的控制指令:

第五步:解析Json并写入到PLC

因为平台3.0的下发的报文格式不满足PLC的要求,所以,此处需要将收到的JSON格式进行格式转换。这里我们需要使用函数计算节点,通过编程将它进行处理转换,再给到PLC进行写的操作:

平台配置

第一步:添加设备

设备管理->添加设备->填入网关SN

第二步:添加数据点
    1. 设备管理找到刚才添加的设备,进入编辑设备

    1. 找到传感器添加数据点

    1. 根据本案例中的数据点添加,4个开关型变量,4个数值型变量,其他小数位以及单位根据自己的需求设定(添加完成后需要下滑到底部点击创建设备)

第三步:绑定标志
    1. 设备管理找到刚才添加的设备,点击设置连接

    1. 填入读写标识(需要和网关PLC Item节点的Name配置一致)

第四步:测试

注意

💡MQTT配置节点导出时,不会携带用户名和密码。因此导入时需要重新录入用户名和密码


http://www.kler.cn/a/304469.html

相关文章:

  • vulnhub靶场【WhowWantsToBeKing】之1
  • 记录仪方案_记录仪安卓主板定制_音视频记录仪PCBA定制开发
  • Promise链式调用
  • ChatGPT之父:奥尔特曼
  • 基于深度学习多图像融合的屏幕缺陷检测方案
  • 【Qt】显示类控件:QLabel、QLCDNumber、QProgressBar、QCalendarWidget
  • Notepad++插件:TextFX 去除重复行
  • 快速理解Redis
  • 【系统规划与管理师】【案例分析】【考点】【问题篇】第5章 IT服务部署实施
  • MiniCPM-V: A GPT-4V Level MLLM on Your Phone
  • Ansys HFSS的边界条件与激励端口
  • 【Linux入门】iptables的安装与配置应用实例
  • pg \d 在不同模式下有同名表时注意事项
  • 828华为云征文|华为云Flexus X实例docker部署Jitsi构建属于自己的音视频会议系统
  • 软件工程毕业设计开题汇总
  • 如何在 DigitalOcean Droplet 云服务器上部署 Next.js 应用
  • 技术周刊 | Vue3.5、Replit Agent、Cursor 使用技巧、React 19 中的新功能、8 月 Web 平台的新功能
  • 9.11 QT ( Day 4)
  • oracle数据库安装和配置详细讲解
  • 个人学习笔记6-2:动手学深度学习pytorch版-李沐
  • Qt使用UDP进行单波通信
  • 实习项目|苍穹外卖|day9
  • mmseqs2进行pdb蛋白质序列聚类分析
  • 在云服务器上安装 RabbitMQ:从零到一的最佳实践
  • 机械学习—零基础学习日志(Python做数据分析03)
  • JS函数 匿名函数(ES6箭头函数)弄得懂吗?