如何用工业树莓派和MQTT平台打通OT和IT?

news2024/12/24 20:26:44

一、应用设备

OT端设备:步进电机,MODBUS TCP远程I/O模块,PLC设备

边缘侧设备:宏集工业树莓派;

IT端设备:PC、安卓手机;

IT端软件:宏集HiveMQ MQTT通信平台

二、原理

宏集工业树莓派通过MODBUS协议分别采集步进电机、MODBUS TCP I/O模块、PLC设备数据,并在工业树莓派完成一些简单的数据处理。宏集HiveMQ将PC端配置为MQTT Broker;工业树莓派可通过MQTT协议将数据传输到PC端;在手机端,操作人员可通过自行编写的APP程序订阅PC端的数据主题。

三、实际测试

1.工业树莓派源码

  1. import threading  
  2. import time  
  3. from doctest import OutputChecker  
  4. from os import P_PID  
  5. from time import sleep  
  6. from threading import Thread  
  7. from tkinter import W  
  8. from myCtrlLib import *  
  9. import sys  
  10. import serial  
  11. import paho.mqtt.client as mqtt  
  12. import json  
  13.   
  14.   
  15. def on_connect(client, userdata, flags, rc):  
  16.     print(f"Connected with result code {rc}")  
  17.    
  18. client = mqtt.Client()  
  19. client.on_connect = on_connect  
  20. client.connect("192.168.1.168", 1883, 60)  
  21.   
  22. #读取PLC数据  
  23. def read_plc_data():  
  24.     on_motor()  
  25.     i = 0  
  26.     j = 0  
  27.     while True:  
  28.         Weight = readFromName('Weight')         #读取PLC重量值数据  
  29.         Humidity = readFromName('Humidity')     #读取PLC湿度值数据  
  30.         Temperature = readFromName('Temperature')       #读取PLC温度值数据  
  31.           
  32.         #读取光电开关状态,0表示两个光电开关没有被触发;1表示光电开关1被触发,2表示光电开关2被触发,3表示两个光电开关同时被触发  
  33.         Switch = readFromName('Switch_1')  
  34.         sleep(1)  
  35.         Back_motor()  
  36.         sleep(1)  
  37.         Advance_motor()  
  38.   
  39.         #根据光电开关状态控制电机  
  40.         if Switch == 1:  
  41.             i = i+1  
  42.   
  43.         if Weight > 500:  
  44.             j = 1  
  45.         else:  
  46.             j = 0  
  47.   
  48.         #构建JSON数据  
  49.         data = {  
  50.             'Stepping_motor_speed':300,     #电机转速  
  51.             'Temperature':Temperature,      #温度值  
  52.             'Humidity':Humidity,        #湿度值  
  53.             'Obj_weighth':Weight,            #重量值  
  54.         }  
  55.   
  56.         json_data = json.dumps(data)  
  57.         client.publish('IndustrialProductionLin', payload=json_data, qos=0, retain=True)  
  58.         print(i)  
  59.   
  60. #电机启动  
  61. def on_motor():  
  62.     writeToName('Motor',1)  
  63.     pass  
  64.   
  65. #电机正转  
  66. def Advance_motor():  
  67.     writeToName('DIR',0)  
  68.     pass  
  69.   
  70. #电机反转  
  71. def Back_motor():  
  72.     writeToName('DIR',1)  
  73.     pass  
  74.   
  75. #电机停止  
  76. def stop_motor():  
  77.     writeToName('Motor',0)  
  78.     pass  
  79.   
  80.   
  81. # 创建并启动线程  
  82. plc_thread = threading.Thread(target=read_plc_data)  
  83.   
  84. #启动线程  
  85. plc_thread.start()  
  86.   
  87. # 主线程等待两个线程结束  
  88. plc_thread.join()  

 2. 效果

 

四、为何选择宏集工业树莓派和宏集HiveMQ方案?

1. 宏集工业树莓派集成了较多的现场总线协议,配合对应的Python库,能通过一些简单配置就能够实现OT端数据的采集,例如该案例使用的MODBUS协议,通过PiCtory配置,就能够编写Python程序,快速实现OT端的数据对接

2. 宏集工业树莓派目前最高配置达到了8GB RAM,性能上等同于一台PC,能够完成一些较为复杂的运算和轻量化机器学习模型。

3. 宏集HiveMQ平台是基于MQTT通信的物联网解决方案,支持快速配置MQTT Broker,支持高负载、高并发、高扩展性。在实际应用中,能够确保数据的快速稳定传输,保证不会出现任何一条数据丢失。除此之外的话,它还支持企业级扩展,例如对接Kafka以及企业级信息安全管理等功能。


工业树莓派特价活动

宏集工业树莓派特价活动火爆进行中,欢迎扫描下方小程序码咨询选购~

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1110017.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Autodesk_Revit2022安装图文教程_Revit2022建筑信息模型BIM软件图文教程

下载地址:https://pan.92zl.cn/ 1、先下载文件,不同版本的安装注册方式是不一样的步骤。 2、运行安装文件。 3、安装过程请等待 4、和常用软件一样安装,注意安装路径即可 5、直到出现安装完成界面 6、接下来打开Crack文件夹的Autodesk Licen…

Redis之UV统计

HyperLogLog 首先我们搞懂两个概念: UV:全称Unique Visitor,也叫独立访客量,是指通过互联网访问、浏览这个网页的自然人。1天内同一个用户多次访问该网站,只记录1次。PV:全称Page View,也叫页…

C++类与对象 (上)

C类与对象 (上) 1.面向过程和面向对象初步认识2.类的引入3.类的定义4.类的访问限定符及封装4.1权限限定符4.2封装 5.类的作用域6.类的实例化7.类的对象大小的计算7.1如何计算类的大小7.2类对象的储存方式 8.类成员函数的this指针8.1this指针的引出8.2thi…

C语言动态内存管理———超级全!快来看!

C语言动态内存管理———超级全!快来看! 文章目录 C语言动态内存管理———超级全!快来看!一、为什么要用动态内存二、动态内存函数1.malloc和free①malloc②.free③举例a.内存的空间b.栗子 2.calloc3.realloc 三、动态内存分配常…

遇到工厂索赔你是一竿子处理方式吗?

最近听到一个博主说关于客户索赔的事情,说是自己以前的处理方式要么就是将事情推给工厂,以工厂的态度为原则,工厂赔付给我们,然后我们就同意赔付给客户。如果工厂敷衍我们,那么我们就敷衍客户,这样最起码能…

蓝桥杯每日一题2023.10.19

题目描述 完全二叉树的权值 - 蓝桥云课 (lanqiao.cn) 题目分析 我们以每一个节点的坐标来将这一深度的权值之和相加从而算出权值和 要清楚每一个深度的其实节点和末尾节点,使用双指针将这个深度节点的权值和计算出来,记录所 需要的深度即可 #includ…

QT基础 柱状图

目录 1.QBarSeries 2.QHorizontalBarSeries 3.QPercentBarSeries 4.QHorizontalPercentBarSeries 5.QStackedBarSeries 6.QHorizontalStackedBarSeries 从上图得知柱状的基类是QAbstractBarSeries,派生出来分别是柱状图的水平和垂直类,只是类型…

1688拍立淘接口,按图搜索商品接口,图片识别接口,图片上传搜索接口,图片搜索API接口,以图搜货接口

1688拍立淘接口的作用是让用户通过上传图片或输入图片链接的方式,调用1688的图片搜索引擎,返回与该图片相关的所有1688商品。 使用该接口需要先获取一个key和secret,然后参考API文档里的接入方式和示例,查看测试工具是否有需要的…

h5的扫一扫功能 (非微信浏览器环境下)

必须在 https 域名下才生效 <template><div><van-field label"服务商编码" right-icon"scan" placeholder"扫描二维码获取" click-right-icon"getCameras" /> <div class"scan" :style"{disp…

互动超2800万!小红书涌现大批“听劝人”,关键词数据发掘内容玩法

听说一身反骨的年轻人&#xff0c;最近开始听劝了&#xff1f;不知道你有没有注意到&#xff0c;小红书上被“旅游听劝、穿搭听劝、改妆听劝”等各种“听劝”刷屏&#xff0c;诸多品牌纷纷入局&#xff0c;迂回种草。 一、预估互动量超2800万&#xff0c;小红书“听劝体”爆火 …

大数据高级面试题

大数据高级面试题 Kafka的producer如何实现幂等性? Producer 幂等性 Producer 的幂等性指的是当发送同一条消息时&#xff0c;数据在 Server 端只会被持久化一次&#xff0c;数据不丟不重&#xff0c;但是这里的幂等性是有条件的&#xff1a; 只能保证 Producer 在单个会话内…

最新最全大数据专业毕业设计选题精华汇总-持续更新中

文章目录 0 前言1 大数据毕设选题推荐2 开题指导3 最后 0 前言 大家好&#xff01;大四的同学们&#xff0c;毕业设计的时间即将到来&#xff0c;你们准备好了吗&#xff1f;为了帮助大家更好地开始毕设&#xff0c;我作为学长给大家整理了最新的计算机大数据专业的毕设选题。…

内网穿透的应用-通过内网穿透技术实现PLSQL远程访问Oracle数据库

文章目录 前言1. 安装postgreSQL2. 本地连接postgreSQL3. Windows 安装 cpolar4. 配置postgreSQL公网地址5. 公网postgreSQL访问6. 固定连接公网地址7. postgreSQL固定地址连接测试 前言 PostgreSQL是一个功能非常强大的关系型数据库管理系统&#xff08;RDBMS&#xff09;,下…

企业如何有效搭建呼叫中心系统?

通讯是企业运营的重要组成部分&#xff0c;尤其是大型企业&#xff0c;必须采取有效的通讯方式&#xff0c;以便于与客户保持良好的沟通。为了满足这个需求&#xff0c;许多企业已经开始搭建自己的呼叫中心系统。 呼叫中心是什么&#xff1f; 呼叫中心系统是一种用于处理大量电…

OnlyOffice集成Springboot以及web端

上次我们已经搭建好了onlyoffice的服务&#xff0c;不知道如何搭建的伙伴可以看看上篇文章。 以下是springboot和前端web简单集成的页面&#xff0c;亲测jdk8和jdk17都适用。 结构 前端页面 index.html <!DOCTYPE html> <html lang"en" xmlns:th"h…

虹科Pico技术交流会上海站启程 | 2+2课程新模式,入门汽车波形免拆诊断

虹科与Tech Gear免拆诊断学院即将于9月在上海举办汽车示波器交流会&#xff0c;本次交流会报名人满即开班&#xff0c;旨在为汽车示波器的基础入门和初阶选手提供学习机会。 本次交流会将在Tech Gear免拆诊断学院的车间进行。课程的安排灵活多样&#xff0c;包括理论课程和实践…

自定义内核模块读取进程的线性地址

打印指定进程的线性地址段 利用procfs查看进程的线性地址自定义内核模块读取进程的线性地址编译并加载内核模块 利用procfs查看进程的线性地址 自定义内核模块读取进程的线性地址 #include <linux/module.h> #include <linux/init.h> #include <linux/kernel.h…

双线性插值详解

双线性插值的原理网上资料非常多,本文重点介绍双线性插值实现的两种方式: 角对齐(coner_align = True) 和 边对齐(coner_align = False)。两种不能的方式下去实现双线性插值,目标图像中的每个像素点,它是如何计算取值的,本文会通过原理结合代码的方式将实现细节讲清楚。 1…

提高倾斜摄影三维模型顶层合并构建效率的技术方法初探

提高倾斜摄影三维模型顶层合并构建效率的技术方法初探 高效提高倾斜摄影三维模型顶层构建的技术方法有许多&#xff0c;本文将介绍几种常见的方法&#xff0c;并分析它们的优势和适用场景。这些方法包括数据处理与预处理、并行计算与分布式处理、智能化算法与模型优化等。 一、…

使用端口映射实现Spring Boot服务端接口的公网访问与调试

文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…