美食網(wǎng)站制作模板網(wǎng)站流量排名查詢工具
一、應用設備
OT端設備:步進電機,MODBUS TCP遠程I/O模塊,PLC設備
邊緣側(cè)設備:宏集工業(yè)樹莓派;
IT端設備:PC、安卓手機;
IT端軟件:宏集HiveMQ MQTT通信平臺
二、原理
宏集工業(yè)樹莓派通過MODBUS協(xié)議分別采集步進電機、MODBUS TCP I/O模塊、PLC設備數(shù)據(jù),并在工業(yè)樹莓派完成一些簡單的數(shù)據(jù)處理。宏集HiveMQ將PC端配置為MQTT Broker;工業(yè)樹莓派可通過MQTT協(xié)議將數(shù)據(jù)傳輸?shù)絇C端;在手機端,操作人員可通過自行編寫的APP程序訂閱PC端的數(shù)據(jù)主題。
三、實際測試
1.工業(yè)樹莓派源碼
- 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數(shù)據(jù)??
- def?read_plc_data():??
- ????on_motor()??
- ????i?=?0??
- ????j?=?0??
- ????while?True:??
- ????????Weight?=?readFromName('Weight')?????????#讀取PLC重量值數(shù)據(jù)??
- ????????Humidity?=?readFromName('Humidity')?????#讀取PLC濕度值數(shù)據(jù)??
- ????????Temperature?=?readFromName('Temperature')???????#讀取PLC溫度值數(shù)據(jù)??
- ??????????
- ????????#讀取光電開關(guān)狀態(tài),0表示兩個光電開關(guān)沒有被觸發(fā);1表示光電開關(guān)1被觸發(fā),2表示光電開關(guān)2被觸發(fā),3表示兩個光電開關(guān)同時被觸發(fā)??
- ????????Switch?=?readFromName('Switch_1')??
- ????????sleep(1)??
- ????????Back_motor()??
- ????????sleep(1)??
- ????????Advance_motor()??
- ??
- ????????#根據(jù)光電開關(guān)狀態(tài)控制電機??
- ????????if?Switch?==?1:??
- ????????????i?=?i+1??
- ??
- ????????if?Weight?>?500:??
- ????????????j?=?1??
- ????????else:??
- ????????????j?=?0??
- ??
- ????????#構(gòu)建JSON數(shù)據(jù)??
- ????????data?=?{??
- ????????????'Stepping_motor_speed':300,?????#電機轉(zhuǎn)速??
- ????????????'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??
- ??
- #電機正轉(zhuǎn)??
- def?Advance_motor():??
- ????writeToName('DIR',0)??
- ????pass??
- ??
- #電機反轉(zhuǎn)??
- def?Back_motor():??
- ????writeToName('DIR',1)??
- ????pass??
- ??
- #電機停止??
- def?stop_motor():??
- ????writeToName('Motor',0)??
- ????pass??
- ??
- ??
- #?創(chuàng)建并啟動線程??
- plc_thread?=?threading.Thread(target=read_plc_data)??
- ??
- #啟動線程??
- plc_thread.start()??
- ??
- #?主線程等待兩個線程結(jié)束??
- plc_thread.join()??
?2. 效果
?
四、為何選擇宏集工業(yè)樹莓派和宏集HiveMQ方案?
1. 宏集工業(yè)樹莓派集成了較多的現(xiàn)場總線協(xié)議,配合對應的Python庫,能通過一些簡單配置就能夠?qū)崿F(xiàn)OT端數(shù)據(jù)的采集,例如該案例使用的MODBUS協(xié)議,通過PiCtory配置,就能夠編寫Python程序,快速實現(xiàn)OT端的數(shù)據(jù)對接;
2. 宏集工業(yè)樹莓派目前最高配置達到了8GB RAM,性能上等同于一臺PC,能夠完成一些較為復雜的運算和輕量化機器學習模型。
3. 宏集HiveMQ平臺是基于MQTT通信的物聯(lián)網(wǎng)解決方案,支持快速配置MQTT Broker,支持高負載、高并發(fā)、高擴展性。在實際應用中,能夠確保數(shù)據(jù)的快速穩(wěn)定傳輸,保證不會出現(xiàn)任何一條數(shù)據(jù)丟失。除此之外的話,它還支持企業(yè)級擴展,例如對接Kafka以及企業(yè)級信息安全管理等功能。
工業(yè)樹莓派特價活動
宏集工業(yè)樹莓派特價活動火爆進行中,歡迎掃描下方小程序碼咨詢選購~
?