如何用工业树莓派和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以及企业级信息安全管理等功能。

工业树莓派特价活动

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

相关推荐
唐诺11 小时前
android MQTT使用示例
android·mqtt
宏集科技工业物联网1 天前
智领未来: 宏集物联网HMI驱动食品与包装行业迈向智能化新高度
物联网·工业物联网·数字化升级·工控屏·食品包装产线
skywalk81633 天前
esp32c3开发板通过micropython的mqtt库连MQTT物联网消息服务器
单片机·物联网·mqtt·esp32·micropython
scoone3 天前
利用MQTT和SSL/TLS实现数据加密
开发语言·mqtt
橘色的喵10 天前
工业通信协议对比:OPC-UA、Modbus、MQTT、HTTP
mqtt·网络协议·http·modbus·opc-ua·工业协议
51camera11 天前
立体工业相机提升工业自动化中的立体深度感知
机器视觉·工业相机·工业自动化·3d视觉技术·立体工业相机
宏集科技工业物联网12 天前
宏集Cogent DataHub: 高效实现风电场数据集中管理与自动化
自动化·数据处理·工业物联网·opc·风力发电
晶台光耦12 天前
高速光耦——推动工业生产自动化飞跃的关键力量
工业自动化·光耦·光耦应用·光耦选型
氦客12 天前
MQTT协议解析 : 物联网领域的最佳选择
物联网·mqtt·协议·解析·发布订阅模式·iot·broker
极客小张14 天前
基于STM32的智能充电桩:集成RTOS、MQTT与SQLite的先进管理系统设计思路
stm32·单片机·嵌入式硬件·mqtt·sqlite·毕业设计·智能充电桩