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

工业树莓派特价活动

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

相关推荐
疆鸿智能研发小助手1 天前
工业网关在汽车冲压车间的应用:EtherNet/IP转EtherCAT集成实践
工业自动化·ethercat·ethernet ip·工业通讯·协议转换网关
疆鸿智能研发小助手1 天前
工业网络融合:DEVICENET转PROFINET网关在汽车总装车间的应用
工业自动化·profinet·协议转换网关·devicenet·机械手臂
余衫马2 天前
开发指南:使用 MQTTNet 库构建 .Net 物联网 MQTT 应用程序
物联网·mqtt·.net
taxunjishu3 天前
DeviceNet 转 EtherCAT:发那科焊接机器人与倍福 CX5140 在汽车焊装线的高速数据同步通讯配置案例
人工智能·区块链·工业物联网·工业自动化·总线协议
LaoZhangGong12313 天前
MQTT报文的数据结构
c语言·网络·数据结构·mqtt·w5500
CServer_0114 天前
AI+PLM如何重构特种/高端复杂装备行业的工艺管理?
人工智能·物联网·重构·自动化·制造·工业物联网
创思通信20 天前
4G模块 EC200通过MQTT协议连接到阿里云
数据库·物联网·mqtt·阿里云·at·ec200a
墨鸦_Cormorant21 天前
Spring Boot 集成 Eclipse Mosquitto
spring boot·后端·mqtt·eclipse·mq
工业通讯探索者25 天前
Profinet转CCLINK IE智能网关衔接三菱PLC与编码器数据传输
数据采集·三菱plc·以太网模块·工业自动化·总线协议
御控工业物联网1 个月前
机械设备制造行业物联网智能化升级改造方案
物联网·plc·工控·工业自动化·制造业·机械设备