唐一晟 陳俊凱 陳涌楠 周定鵬 劉佐濂



摘 要:文中設計了一套應用于物聯網的輕量級AGV小車的系統,主控使用STM32F103單片機,結合NFC芯片實現循跡以及路徑定位的功能,并將信息由SIM7600LTE芯片通過MQTT協議傳遞到服務器。同時設計了移動端APP,實現輕量級的AGV實時監控與調度管理系統。相對于傳統的MES系統,所提系統使用模塊化的設計理念,具有更友好的UI界面和更靈活的功能。
關鍵詞:物聯網;MQTT協議;AGV;云服務;STM32F103;APP
中圖分類號:TP391文獻標識碼:A文章編號:2095-1302(2020)07-00-03
0 引 言
隨著物流系統迅速發展,AGV(Automated Guided Vehicle)應用領域也在不斷擴展。AGV是一種自動導引車,一般都是在工廠車間內使用,需要搭配特定的制造企業生產過程執行管理系統 (Manufacture Execute System,MES)[1]。這套系統一般由專業公司針對大企業用戶成套銷售,對于普通用戶成本過于昂貴,定制難度大,實用性不高。
本文的目的是研究輕量級的AGV小車系統,使其能適用于更多的場景。為了在更多的場景下對AGV的調度,使用模塊化的設計理念,設計了一個服務端程序用于與下位機進行數據交互處理的架構,同時設計移動端APP用于用戶交互。
1 系統整體設計
設計的AGV物流小車整體系統框圖如圖1所示。
相較于傳統的AGV小車系統,本設計出發點在于如何改善相對于復雜與高成本的AGV系統的靈活性,擴大使用范圍。
AGV小車系統主要分為三部分:小車端,服務器端和用戶端。初次開啟小車端時,會進入自檢然后上報車輛信息到服務器端,通過LTE使用MQTT協議進行傳輸,服務器端接收然后更新vehicle數據庫,車輛和地圖信息再通過APP發送給用戶,小車在起點等候接收服務器信息反饋,然后開始工作。
當小車掃碼檢測到包裹條碼時,上報位置標簽信息和包裹信息,服務器端接收到后比對查詢數據庫,并計算返回最優路徑信息到小車端。小車接收到信息后進行下一步動作,服務器同步更新信息后反饋給用戶端。用戶端可以隨時通過APP查詢小車狀態,對小車進行控制操作,形成閉環監控。
2 硬件電路設計
2.1 硬件電路總體設計
圖2為AGV小車系統的硬件系統框架。AGV小車主控使用的是ST公司Cortex-M3內核的STM32F103ZET6,該芯片主頻72 MHz,有多個UART。系統通過主控實現紅外循跡和數據處理,通過串口,SPI等接口實現對NFC標簽的識別定位,并實時通過LTE通信技術與服務器進行信息交互。
2.2 NFC定位與交互
在實際的環境中,貨架多數是采用柵格的形式來規劃放置,因此只需在合適的路徑點上放上NFC芯片,就可以依靠NFC芯片實現準確的定位功能。
AGV小車的定位識別使用的技術是近場通信(Near Field Communication,NFC)[2]。NFC的識別過程不需要人為干預而且抗干擾能力強,可用于各種惡劣環境,適用于更多的場景。NFC比RFID更具有靈活性強的特點,操作方便只需要相應地點放置標簽,NFC同時支持讀寫模式,卡模式,點對點(P2P)模式,可以控制AGV對標簽進行讀寫操作。其也可在兩臺AGV小車之間進行通信,大大提升了各AGV之間的交互。用于定位的標簽因為是無源的所以不需要額外的電源,使得功耗和維護成本大大降低,具有高的可移植性[3-4]。
RFID定位標簽數據主要是當前標簽的相對坐標位置信息,該坐標可以根據不同情況使用需求進行設置。綜合考慮需求,本文選用NXP公司的PN532芯片。PN532是一個高度集成的非接觸讀寫芯片,它包含80C51微控制器內核,集成了13.56 MHz下的各種主動/被動式非接觸通信方法和協議(串行UART,I2C,SPI)。經使用測試,在速度和精度上能滿足要求。
2.3 LTE通信
為了提高AGV系統移植靈活性,使AGV的實用場景不止局限于傳統的車間工廠,因此對傳輸通信的靈活性要求很高,但是常規的AGV使用時候需要自己組網,組建和維護成本大大提升,可移植性不高,所以這里選用的通信技術是LTE(Long Term Evolution)。因為基站由移動運營商進行維護與建設,大大降低了使用與維護成本,可移植性得到了大大提高。截至2019年5月,中國建成了437萬個4G基站,已經可以滿足一般的使用場景的覆蓋使用,而且相較于傳統的GSM和WCDMA,它的傳輸速率更高。
AGV小車與服務器之間通信時使用MQTT協議。車輛發送給服務器時發送內容普通幀分為四部分:第一部分為車輛ID信息,一般為固定值,用戶也可自行修改;第二部分為途徑點識別的標簽ID信息;第三部分為當前車輛運輸的包裹信息,由起始時掃描二維碼或抵達終點更新;第四部分為AGV當前動作,將當前車輛情況信息打包發送至服務器,然后服務器將會根據算法計算反饋回AGV小車下一個行動。
此次使用LTE芯片是SIMCOM公司的SIM7600CE芯片,它可支持GSM, TD-SCDMA, CDMA, WCDMA,TDD-LTE和FDD-LTE等頻段,支持TCP/IP/IPV4/IPV6/MQTT等,可以根據實際情況靈活選擇通信協議和方式,支持LTE-CAT4,上行最大速率50 Mb/s,下行最大速率150 Mb/s,經過實物調試,可以滿足AGV于服務器之間的數據信息交互[5]。
3 服務器端及移動APP設計
3.1 基于MQTT協議的服務端與小車客戶端通信部分設計
MQTT消息隊列遙測傳輸(Message Queuing Telemetry Transport)是ISO 標準(ISO/IEC PRF 20922)[6]下基于發布/
訂閱范式的消息協議。它工作在TCP/IP協議族上,是為硬件性能低下的遠程設備以及網絡狀況糟糕的情況下而設計的發布/訂閱型消息協議[7]。
相較于傳統的HTTP查詢,MQTT具有以下的優勢[8]:
(1)MQTT使用發布/訂閱范式,可以提供雙向的鏈接。
(2)MQTT帶有QoS(Quality of Service)功能,對于容量有限的網絡可以提供高傳輸保證,共有三個QoS等級:保證盡力交付;保證消息至少傳送一次;保證每個消息僅被對方接收一次。
(3)MQTT帶有遺言(Last Will and Testament)和保留信息(Retained Messages)功能,前者使客戶端在異常離線之后服務端能及時接收到客戶端異常離線的信息,后者使上線后客戶端能及時接收到服務端發送的信息。
一種MQTT連接(QoS 0)的示例如圖3所示。
表1為分別使用兩種方式請求云服務器10次,并收到服務器返回字符串{“hello”:“world”}字符串的抓包統計數據,從統計結果可知,MQTT協議相較于HTTP GET方式在傳送數據包個數以及數據包長度上均有明顯優勢。
本次使用的MQTT Broker為EMQX,其提供有方便的Docker部署以及便利的儀表板可用作Broker的管理和信息的發送接收,通過編寫Dockerfile和Docker-composer封裝成容器之后,可以在其他服務器中簡單的配置好環境,配置環境如命令如下:
$ docker pull emqx/emqx:v3.1.0
$ docker run -d --name emqx31 -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:v3.1.0
當Broker收到消息后轉發給服務器后端進行處理,本例服務器端采用Eclipse Paho MQTT Python Client接收Broker轉發的信息。Eclipse Paho MQTT Python Client除了支持以非阻塞的模式運行以外,還提供了許多回調函數可供在不同情況下使用與處理回調信息[9]。
本文通過使用on_message回調函數,自動將MQTTClient接收到的信息存儲到變量msg中,再通過調用自行編寫的write_payload函數傳遞給主程序進行處理。
多線程架構如圖4所示。
為了提高服務器后端的工作效率,本文中分別對RESTful API和MQTTClient創建了一個進程,通過使用threading庫調度兩個線程協同運作。
3.2 基于RESTful API的服務器與APP通信部分設計
表現層狀態轉換(Representational State Transfer,REST)是Roy Thomas Fielding于2000年在他的博士論文[10]中提出來的一種萬維網軟件架構風格,目的是便于不同軟件/程序在網絡中互相傳遞信息。
RESTful API將服務器上存儲的數據抽象成為一個資源,并用URL作為其標識,使用通用的HTTP請求方法(GET,POST,PUT,DELETE)對其進行增改刪查的操作。相較于普通的API,RESTful API建模的過程與面向對象的建模過程類似,因此也比較契合Python的編程思想。
服務器后臺程序基于以上原理使用Python進行編寫。Python有非常方便的庫用于構建RESTful API和處理Json格式數據,同時也可以移植到其他系統。本文中APP使用wx.reguest向服務器請求數據后可以直接解析調用,十分方便。
APP分為總覽、車輛管理和包裹管理三部分。總覽部分可以看到一些基本的統計信息,車輛管理部分可以對小車進行下線和召回等的管理,包裹管理可以對包裹進行新增、修改、分配小車運送等的管理。APP界面如圖5所示。
4 結 語
本文設計了一套應用于物聯網技術AGV小車的系統,通過NFC技術實現標簽定位識別,小車通過LTE通信技術,使用靈活的MQTT協議與服務器之間建立通信交互,在服務器端進行數據處理整合,通過APP將信息反饋給用戶,形成閉環,相較于傳統的AGV系統降低了成本,提高了靈活性。
參考文獻
[1]張辰貝西,黃志球.自動導航車(AGV)發展綜述[J].中國制造業信息化,2010,39(1):53-59.
[2]盧少平.基于RFID的AGV定位與導引研究[D].濟南:山東大學,2011.
[3]唐浩強. 基于物聯網的智慧工廠實驗系統的設計與開發[D].南京:南京理工大學,2017.
[4]潘軍,王焜,繆欣呈.AGV智能制造平臺方案的設計與研究[J].物流技術與應用,2019,24(12):146-148.
[5]丘源,經本欽,李精華.基于ESP8266WiFi模塊和MQTT協議的物聯網傳感節點設計[J].物聯網技術,2019,9(6):24-26.
[6] International Organization for Standardization. ISO/IEC 20922:2016-Information technology-message queuing telemetry transport (MQTT)v3.1.1 [S]. Geneva:IX-ISO,2016.
[7]郭力,胡偉,張政成.試析MQTT協議在物聯網中的應用[J].電腦知識與技術,2019,15(28):31-32.
[8]成聞博.基于MQTT協議的物聯網消息推送系統構建[J].信息與電腦,2019(18):161-162.
[9] ARLEN Nipper. MQTT's role as an IoT message transport [J]. Control Engineering,2019,66(1):20-21.
[10] FIELDING Roy Thomas. Architectural styles and the design of network-based software architectures [D]. Irvine:University of California,2000.