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

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

一、应用设备

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以及企业级信息安全管理等功能。


工业树莓派特价活动

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

 

相关文章:

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

一、应用设备 OT端设备:步进电机,MODBUS TCP远程I/O模块,PLC设备 边缘侧设备:宏集工业树莓派; IT端设备:PC、安卓手机; IT端软件:宏集HiveMQ MQTT通信平台 二、原理 宏集工业树…...

大模型背景下软件工程的机遇与挑战

点击链接了解详情 本文作者:汪晟杰 导语:AISE(AI Software Engineering)有人说是软件工程 3.0,即基于大模型(LLM - Large Language Model)时代下的软件工程。那么究竟什么是 AISE,他的发展历程对…...

flink中使用GenericWriteAheadSink的优缺点

背景 GenericWriteAheadSink是flink中提供的实现几乎精确一次输出的数据汇抽象类,本文就来看一下使用GenericWriteAheadSink的优缺点 GenericWriteAheadSink的优缺点 先看一下GenericWriteAheadSink的原理图 优点: 几乎可以精确一次的输出&#xf…...

第五章Maven依赖的特性-进阶篇

文章目录 第一节 重新认识MavenMaven 的完整功能项目管理功能的具体体现 POM 的四个层次超级 POM父 POM有效 POM概念查看有效 POM 小结 属性的声明与引用help 插件的各个目标使用 help:evaluate 查看属性值通过 Maven 访问系统属性Java 系统属性一览使用 Maven 访问系统属性 访…...

【Javascript】数组练习(在排好序的数组⾥,按照⼤⼩顺序插⼊数据)

var array[1,4,5,7,9,17]; console.log(array);比如要插入一个数16 var array[1,4,5,7,9,17];var num16; var indexnull; var i; for(i0;i<array.length;i){if(array[i]<num){indexi;} } console.log(index);首先通过循环找出最后一个比自定义的num小的值&#xff0c;并…...

记低版本okhttp超时会导致死锁

一、问题起源 在处理一次生产环境cpu拉满问题时&#xff0c;把日志拉下来看发现很多http请求调用出错&#xff0c;项目使用的是okhttp 3.8.1版本。 二、问题描述 问题出在okhttp3.Dispatcher.finished(Dispatcher.java:201)代码如下&#xff1a; void finished(AsyncCall c…...

idea必装的插件 Spring Boot Helper 插件(创建 Spring Boot 项目)

Spring Spring让Java程序更加快速,简单和安全.Spring对于速度、简单性和⽣产⼒的关注使其成为 世界上最流⾏的Java框架。Spring官⽅提供了很多开源的项⽬,覆盖范围从Web开发到⼤数据,Spring发展到了今天,已经形成了⾃ ⼰的⽣态圈.我们在开发时,也倾向于使⽤Spring官⽅提供的技术…...

Scrum(敏捷开发)的前端定位

1. Scrum(敏捷开发)的开发流程 Scrum将整个开发过程分为多次迭代(称为Sprint,冲刺),一般为期2~4周,最常见的为2周。Scrum并非以一段时间集中完成一个过程,而是将所有过程中必须的每一部分集中在这段时间内完成。需求、设计、编码、测试、上线都必须在一个迭代中完成,每…...

uniapp缓存对象数组

需求&#xff1a;使用uniapp&#xff0c;模拟key&#xff08;表名&#xff09;增删改查对象数组&#xff0c;每个key可以单独操作&#xff0c;并模拟面对对象对应表&#xff0c;每个key对应的baseInstance 类似一个操作类&#xff0c;当然如果你场景比较简单&#xff0c;可以改…...

腾讯云优惠券免费领取入口整理分享

腾讯云作为国内领先的云服务提供商&#xff0c;为了回馈用户的支持和信任&#xff0c;经常推出各种优惠活动&#xff0c;并提供优惠券供用户使用。本文将整理和分享腾讯云优惠券的免费领取入口&#xff0c;帮助用户在购买腾讯云产品时享受更多的优惠和福利。 一、腾讯云优惠券介…...

功率放大器在PZT陶瓷薄膜压电传感器研究中的应用

随着科技的进步和工业发展的需求&#xff0c;对于压力测量和控制的需求日益增加。压力传感器作为一种关键的传感器器件&#xff0c;在机械、自动化、医疗、航空等多个领域都有广泛应用。PZT陶瓷薄膜压电传感器由于其响应速度快、精度高、稳定性好等优点&#xff0c;成为了许多应…...

Anaconda创建新的虚拟环境及Jupyter Notebok中、PyCharm中环境的使用

Anaconda创建新的虚拟环境 在windows开始菜单中【徽标键】&#xff0c;查找Anaconda文件夹并打开【Anaconda Prompt】 查看已有虚拟环境 conda env list1.创建 conda create --name mytest python3.7 # 创建一个名称为mytest&#xff0c;python版本为3.7的虚拟环境输入【…...

[QT] 如果你怎么试HTTP下载文件得到的QNetworkReply的readAll()都是空数据(长度为0),请看这里

1&#xff0c;首先你对比看看QT官方给出的例子 Download Data from URL - Qt Wiki 2&#xff0c;再看看是不是要设置重定向&#xff0c;如果要&#xff0c;要设置一下 QNetworkRequest request(imageUrl); request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, …...

使用docker部署flask接口服务 一

文章目录 一&#xff1a;说明二&#xff1a;dockerfile 参数说明1. 一般常用的 参数&#xff0c;以及它的含义2. 我自己的 dockerfile 三&#xff1a;示例操作1. Gunicorn Gevent启动服务的好处2. 用Gunicorn Gevent的好处&#xff1a;3. Gunicorn Gevent的 使用示例4. 创建…...

超实用的跟圈和一键转发好友朋友圈功能

一键转发朋友圈/跟圈 想转发别人的朋友圈内容&#xff0c;通常需要手动复制粘贴&#xff0c;一个个复制保存实在是太麻烦耗费时间。 有时候咱也不可能随时都看朋友圈嘛&#xff0c;那又想及时转发朋友的圈的&#xff0c;有什么办法可以轻松实现呢&#xff1f; 操作步骤 单击…...

口袋参谋:如何一键获取竞品数据?这招实用!

​在淘宝天猫上开店&#xff0c;市场竞争日益激烈&#xff0c;想要做好店铺&#xff0c;我们就不得不去分析竞品的数据了。 很多卖家开店后&#xff0c;一上来就直接卡在类目前10&#xff0c;折腾了一两个月才发现自己对标错了对象&#xff0c;最终竹篮打水一场空。 所以&…...

python 生成html文件并端口展示

1.生成相关的html文件 import json import os import calc import requests import numpy as npwith open(picture, r,encodingutf-8) as f:lines f.readlines() html <html>\n<html lang"zh">\n<head>\n<meta charset"UTF-8">…...

二进制部署 Kubernetes(master和node)

二进制搭建 Kubernetes v1.20 k8s集群master01&#xff1a;20.0.0.101 kube-apiserver kube-controller-manager kube-scheduler etcd k8s集群master02&#xff1a;20.0.0.106 k8s集群node01&#xff1a;20.0.0.102 kubelet kube-proxy docker k8s集群node02&#xff1a;20.0…...

【计算机网络】IP协议的相关特性

IP协议&#xff1a;互联网的核心组件 在当今高度数字化的世界中&#xff0c;互联网已成为人们生活、工作不可或缺的一部分。而在这个庞大的网络中&#xff0c;IP协议&#xff08;Internet Protocol&#xff09;作为核心的通信协议&#xff0c;发挥着至关重要的作用。本文将详细…...

如何在Potplayer中使用公网访问群晖WebDav?

文章目录 1 使用环境要求&#xff1a;2 配置webdav3 测试局域网使用potplayer访问webdav4 内网穿透&#xff0c;映射至公网5 使用固定地址在potplayer访问webdav ​ 国内流媒体平台的内容让人一言难尽&#xff0c;就算是购买了国外的优秀作品&#xff0c;也总是在关键剧情上删删…...

SpringBoot编程式事务实战:为什么我放弃了@Transactional注解

SpringBoot编程式事务实战&#xff1a;为什么我放弃了Transactional注解 在SpringBoot开发中&#xff0c;事务管理一直是保证数据一致性的核心环节。大多数开发者习惯使用Transactional注解来简化事务配置&#xff0c;直到我在一个高并发订单系统中遭遇了事务失效的噩梦——凌晨…...

3步解决华硕笔记本性能管理难题:G-Helper硬件控制全解析

3步解决华硕笔记本性能管理难题&#xff1a;G-Helper硬件控制全解析 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, …...

无需Root!Termux+Samba三步搭建手机NAS,跨平台文件共享无忧

1. 为什么你需要手机NAS&#xff1f; 每次用微信传文件都要忍受压缩画质&#xff1f;电脑和手机互传文件还得找数据线&#xff1f;家里多台设备共享电影资源只能靠U盘来回倒腾&#xff1f;这些问题我都遇到过&#xff0c;直到发现用旧手机搭建NAS这个神器方案。最让我惊喜的是…...

Asian Beauty Z-Image Turbo 微信小程序前端开发:实时图像生成与分享

Asian Beauty Z-Image Turbo 微信小程序前端开发&#xff1a;实时图像生成与分享 最近在捣鼓一些有意思的AI应用&#xff0c;发现把大模型的能力搬到移动端&#xff0c;特别是像微信小程序这样的轻量级平台上&#xff0c;能玩出很多新花样。今天想和大家聊聊&#xff0c;怎么给…...

Rust的#[derive(Clone)]中的拷贝深

Rust语言中的#[derive(Clone)]是一个强大的派生宏&#xff0c;它允许开发者快速为自定义类型实现Clone trait&#xff0c;从而支持值的显式拷贝。在Rust中&#xff0c;拷贝分为浅拷贝和深拷贝&#xff0c;而#[derive(Clone)]默认生成的实现通常是浅拷贝。在某些场景下&#xff…...

深度学习项目训练环境端到端:从数据准备→训练→验证→剪枝→微调→部署一体化支持

深度学习项目训练环境端到端&#xff1a;从数据准备→训练→验证→剪枝→微调→部署一体化支持 1. 环境准备与快速上手 深度学习项目开发最让人头疼的就是环境配置问题。不同的框架版本、CUDA版本、Python版本之间的兼容性常常让人抓狂。这个镜像环境就是为了解决这个问题而生…...

Sambert语音合成镜像实战:快速搭建智能客服语音播报系统

Sambert语音合成镜像实战&#xff1a;快速搭建智能客服语音播报系统 1. 业务场景与需求分析 在智能客服系统中&#xff0c;语音播报功能直接影响用户体验。传统解决方案通常面临三个核心痛点&#xff1a; 音质机械感强&#xff1a;拼接式语音合成缺乏自然流畅度情感表达单一…...

从调试到量产:手把手教你玩转热成像机芯的UART串口(含常用AT指令集)

从调试到量产&#xff1a;手把手教你玩转热成像机芯的UART串口&#xff08;含常用AT指令集&#xff09; 在工业检测、安防监控和医疗诊断领域&#xff0c;热成像技术的精准度往往取决于硬件与软件的协同效率。而UART串口作为热成像机芯的"神经末梢"&#xff0c;承担着…...

前端面试题智能评估:nli-distilroberta-base判断答案相关性

前端面试题智能评估&#xff1a;nli-distilroberta-base判断答案相关性 1. 面试评估的痛点与解决方案 前端技术面试中&#xff0c;开放性问题占据了重要位置。面试官常常需要花费大量时间阅读候选人的文字回答&#xff0c;判断其是否涵盖了关键知识点。这个过程不仅耗时&…...

AI原生研发必须通过的第4道门:SITS2026定义的“伦理可审计性”标准(含6类强制留痕字段+审计失败率下降41%实测数据)

第一章&#xff1a;SITS2026专家&#xff1a;AI原生研发的伦理考量 2026奇点智能技术大会(https://ml-summit.org) AI原生研发正从工具增强迈向系统级自主演化&#xff0c;其伦理边界不再仅由人类开发者单向设定&#xff0c;而需在模型训练、推理服务、反馈闭环等全生命周期中…...