一、应用设备
OT端设备:步进电机,MODBUS TCP远程I/O模块,PLC设备
边缘侧设备:宏集工业树莓派;
IT端设备:PC、安卓手机;
IT端软件:宏集HiveMQ MQTT通信平台
二、原理
宏集工业树莓派通过MODBUS协议分别采集步进电机、MODBUS TCP IO 模块、PLC设备数据,并在工业树莓派完成一些简单的数据处理。宏集 HiveMQ 将 PC 端配置为 MQTT Broker;工业树莓派可通过MQTT协议将数据传输到PC端;在手机端,操作人员可通过自行编写的APP程序订阅PC端的数据主题。
三、实际测试
1、工业树莓派源码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | import threading import time from doctest import OutputChecker from os import P_PID from time import sleep from threading import Thread from tkinter import W from myCtrlLib import * import sys import serial import paho.mqtt.client as mqtt import json def on_connect(client, userdata, flags, rc): print (f "Connected with result code {rc}" ) client = mqtt.Client() client.on_connect = on_connect client.connect( "192.168.1.168" , 1883 , 60 ) #读取PLC数据 def read_plc_data(): on_motor() i = 0 j = 0 while True : Weight = readFromName( 'Weight' ) #读取PLC重量值数据 Humidity = readFromName( 'Humidity' ) #读取PLC湿度值数据 Temperature = readFromName( 'Temperature' ) #读取PLC温度值数据 #读取光电开关状态,0表示两个光电开关没有被触发;1表示光电开关1被触发,2表示光电开关2被触发,3表示两个光电开关同时被触发 Switch = readFromName( 'Switch_1' ) sleep( 1 ) Back_motor() sleep( 1 ) Advance_motor() #根据光电开关状态控制电机 if Switch = = 1 : i = i + 1 if Weight > 500 : j = 1 else : j = 0 #构建JSON数据 data = { 'Stepping_motor_speed' : 300 , #电机转速 'Temperature' :Temperature, #温度值 'Humidity' :Humidity, #湿度值 'Obj_weighth' :Weight, #重量值 } json_data = json.dumps(data) client.publish( 'IndustrialProductionLin' , payload = json_data, qos = 0 , retain = True ) print (i) #电机启动 def on_motor(): writeToName( 'Motor' , 1 ) pass #电机正转 def Advance_motor(): writeToName( 'DIR' , 0 ) pass #电机反转 def Back_motor(): writeToName( 'DIR' , 1 ) pass #电机停止 def stop_motor(): writeToName( 'Motor' , 0 ) pass # 创建并启动线程 plc_thread = threading.Thread(target = read_plc_data) #启动线程 plc_thread.start() # 主线程等待两个线程结束 plc_thread.join() |
2、效果
四、为何选择宏集工业树莓派和宏集 HiveMQ 方案?
1、宏集工业树莓派集成了较多的现场总线协议,配合对应的Python库,能通过一些简单配置就能够实现OT端数据的采集,例如该案例使用的MODBUS协议,通过PiCtory配置,就能够编写Python程序,快速实现OT端的数据对接;
2、宏集工业树莓派目前最高配置达到了8GB RAM,性能上等同于一台PC,能够完成一些较为复杂的运算和轻量化机器学习模型。
3、宏集HiveMQ平台是基于MQTT通信的物联网解决方案,支持快速配置MQTT Broker,支持高负载、高并发、高扩展性。在实际应用中,能够确保数据的快速稳定传输,保证不会出现任何一条数据丢失。除此之外的话,它还支持企业级扩展,例如对接Kafka以及企业级信息安全管理等功能。
发表评论