热度 3
2023-10-19 15:24
1043 次阅读|
0 个评论
一、 应用设备 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. importthreading 2. importtime 3. fromdoctestimportOutputChecker 4. fromosimportP_PID 5. fromtimeimportsleep 6. fromthreadingimportThread 7. fromtkinterimportW 8. frommyCtrlLibimport* 9. importsys 10. importserial 11. importpaho.mqtt.clientasmqtt 12. importjson 13. 14. 15. defon_connect(client,userdata,flags,rc): 16. print(f "Connectedwithresultcode{rc}" ) 17. 18. client=mqtt.Client() 19. client.on_connect=on_connect 20. client.connect( "192.168.1.168" ,1883,60) 21. 22. # 读取 PLC 数据 23. defread_plc_data(): 24. on_motor() 25. i=0 26. j=0 27. while True: 28. Weight=readFromName( 'Weight' )# 读取 PLC 重量值数据 29. Humidity=readFromName( 'Humidity' )# 读取 PLC 湿度值数据 30. Temperature=readFromName( 'Temperature' )# 读取 PLC 温度值数据 31. 32. # 读取光电开关状态, 0 表示两个光电开关没有被触发; 1 表示光电开关 1 被触发, 2 表示光电开关 2 被触发, 3 表示两个光电开关同时被触发 33. Switch=readFromName( 'Switch_1' ) 34. sleep(1) 35. Back_motor() 36. sleep(1) 37. Advance_motor() 38. 39. # 根据光电开关状态控制电机 40. if Switch==1: 41. i=i+1 42. 43. if 500: 44. j=1 45. else : 46. j=0 47. 48. # 构建 JSON 数据 49. data={ 50. 'Stepping_motor_speed' :300,# 电机转速 51. 'Temperature' :Temperature,# 温度值 52. 'Humidity' :Humidity,# 湿度值 53. 'Obj_weighth' :Weight,# 重量值 54. } 55. 56. json_data=json.dumps(data) 57. client.publish( 'IndustrialProductionLin' ,payload=json_data,qos=0,retain=True) 58. print(i) 59. 60. # 电机启动 61. defon_motor(): 62. writeToName( 'Motor' ,1) 63. pass 64. 65. # 电机正转 66. defAdvance_motor(): 67. writeToName( 'DIR' ,0) 68. pass 69. 70. # 电机反转 71. defBack_motor(): 72. writeToName( 'DIR' ,1) 73. pass 74. 75. # 电机停止 76. defstop_motor(): 77. writeToName( 'Motor' ,0) 78. pass 79. 80. 81. # 创建并启动线程 82. plc_thread=threading.Thread(target=read_plc_data) 83. 84. # 启动线程 85. plc_thread.start() 86. 87. # 主线程等待两个线程结束 88. plc_thread.join() 2. 效果 四、为何选择宏集工业树莓派和宏集HiveMQ方案? 1. 宏集工业树莓派 集成了较多的现场总线协议 ,配合对应的Python库,能通过一些简单配置就能够实现OT端数据的采集,例如该案例使用的MODBUS协议,通过PiCtory配置,就能够编写Python程序, 快速实现OT端的数据对接 ; 2. 宏集工业树莓派目前 最高配置达到了8GB RAM ,性能上等同于一台PC,能够完成一些较为复杂的运算和轻量化机器学习模型。 3. 宏集HiveMQ平台是 基于MQTT通信的物联网解决方案,支持快速配置MQTT Broker ,支持高负载、高并发、高扩展性。在实际应用中,能够确保数据的快速稳定传输,保证不会出现任何一条数据丢失。除此之外的话,它还支持企业级扩展,例如对接Kafka以及企业级信息安全管理等功能。 工业树莓派特价活动 宏集工业树莓派特价活动火爆进行中,欢迎扫描下方小程序码咨询选购~