如何用工业树莓派和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. def on_connect(client, userdata, flags, rc):

  14. print(f"Connected with result code {rc}")

  15. client = mqtt.Client()

  16. client.on_connect = on_connect

  17. client.connect("192.168.1.168", 1883, 60)

  18. #读取PLC数据

  19. def read_plc_data():

  20. on_motor()

  21. i = 0

  22. j = 0

  23. while True:

  24. Weight = readFromName('Weight') #读取PLC重量值数据

  25. Humidity = readFromName('Humidity') #读取PLC湿度值数据

  26. Temperature = readFromName('Temperature') #读取PLC温度值数据

  27. #读取光电开关状态,0表示两个光电开关没有被触发;1表示光电开关1被触发,2表示光电开关2被触发,3表示两个光电开关同时被触发

  28. Switch = readFromName('Switch_1')

  29. sleep(1)

  30. Back_motor()

  31. sleep(1)

  32. Advance_motor()

  33. #根据光电开关状态控制电机

  34. if Switch == 1:

  35. i = i+1

  36. if Weight > 500:

  37. j = 1

  38. else :

  39. j = 0

  40. #构建JSON数据

  41. data = {

  42. 'Stepping_motor_speed':300, #电机转速

  43. 'Temperature':Temperature, #温度值

  44. 'Humidity':Humidity, #湿度值

  45. 'Obj_weighth':Weight, #重量值

  46. }

  47. json_data = json.dumps(data)

  48. client.publish('IndustrialProductionLin', payload=json_data, qos=0, retain=True)

  49. print(i)

  50. #电机启动

  51. def on_motor():

  52. writeToName('Motor',1)

  53. pass

  54. #电机正转

  55. def Advance_motor():

  56. writeToName('DIR',0)

  57. pass

  58. #电机反转

  59. def Back_motor():

  60. writeToName('DIR',1)

  61. pass

  62. #电机停止

  63. def stop_motor():

  64. writeToName('Motor',0)

  65. pass

  66. 创建并启动线程

  67. plc_thread = threading.Thread(target=read_plc_data)

  68. #启动线程

  69. plc_thread.start()

  70. 主线程等待两个线程结束

  71. plc_thread.join()

  72. 效果

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

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

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

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

工业树莓派特价活动

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

相关推荐
ss7890119 小时前
S7-1200的隐藏技能:解锁工艺功能背后的工程哲学
工业自动化·西门子·s7-1200·选型指南
成都纵横智控科技官方账号1 天前
2026 工业 5G 网关趋势:RedCap 为什么是性价比分水岭
5g·工业物联网·边缘计算网关
sibo_yzm1 天前
谁动了底层的工艺参数?Kepware+OPM-820 双剑合璧实现数据权限管控
mqtt·iot·modbus tcp·opc·kepware·上海泗博
samble4 天前
从零搭建工业控制系统(二十二):线程安全与并发控制
c#·wpf·并发·mvvm·线程安全·工业控制
samble4 天前
从零搭建工业控制系统(二十一):状态管理系统——中心状态对象设计
c#·wpf·mvvm·状态管理·工业控制
jonyleek5 天前
工业物联网边缘计算架构设计:从数据采集到本地决策
人工智能·物联网·边缘计算·工业物联网·边缘网关·jvs物联网平台·iot架构
物联网IoT小易5 天前
MQTT消息为什么会重复、丢失或延迟?QoS、离线消息与重连机制详解
物联网·mqtt·消息队列·边缘计算·mqtt协议·物联网平台
SL-staff6 天前
工业物联网中网关子设备数据通信盲区的排查与解决方法
大数据·物联网·工业物联网·数据映射·网关配置·规则联动·通信盲区
StevenSurpass6 天前
智能工厂场景:FastPrintAgent 分布式打印中间件落地应用方案
分布式·mqtt·http·中间件·打印·fastreport
捷米特网关模块通讯7 天前
开关量无线传输模块无需PLC简化地下室排水控制系统架构
远程监控·工业自动化·智能网关·无线数传模块·无线网桥