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

工业树莓派特价活动

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

相关推荐
深圳市尚想信息技术有限公司5 天前
替代进口SCA7606【智芯微】国产高精度电流传感器 工业新能源电网专用
新能源·传感器·工业控制·智能电网·智芯微·电流传感器·代替进口
糖果罐子♡6 天前
MQTT 入门指南(一)
物联网·mqtt·嵌入式·通信协议
linweidong7 天前
物联网MQTT协议与实践:从零到精通的硬核指南
物联网·mqtt·websocket·嵌入式·iot·tdengine·工业物联网
深圳市尚想信息技术有限公司18 天前
UL/CE双认证!光宝MOC3052-A双向可控硅输出光耦 智能家居/工业控制必备!
智能家居·工业控制·光宝·驱动光耦·输出光耦
根号三加载成功19 天前
物联网控制器:一台顶N台!路由器、PLC控制器、网关、工控机……
物联网·云计算·智能家居·工业自动化
月光技术杂谈20 天前
linux下MQTT订阅发布验证-mosquitto安装测试流程
linux·mqtt·订阅·mosquitto·发布·mosquitto_pub·mqtt-clients
极客小张21 天前
基于FreeRTOS的STM32工业级实时监控系统开发设计思路(多传感器融合+PyQt5远程控制)
stm32·嵌入式硬件·qt·机器学习·毕业设计·工业物联网·传感器
慕木兮人可1 个月前
关于阿里云-云消息队列MQTT的连接和使用,以及SpringBoot的集成使用
spring boot·物联网·mqtt·阿里云·云计算
远创智控研发五部1 个月前
EtherCAT至TCP/IP异构网络互联:施耐德M580 PLC对接倍福CX5140解决方案
数据采集·工业自动化·协议转换网关·网关模块·倍福plc
JIANGHONGZN1 个月前
汽车电池智造关键一环!DeviceNet转Modbus RTU网关的实战突围
工业控制·工业自动化·协议网关·modbus rtu·devicenet