羅守品,楊 濤
(西南科技大學(xué)信息工程學(xué)院,四川 綿陽 621000)
自動(dòng)導(dǎo)引小車(automated guided vehicle,AGV)是現(xiàn)代工業(yè)生產(chǎn)中重要的運(yùn)輸設(shè)備,其投入使用極大地提高了工廠的運(yùn)輸和生產(chǎn)效率,減少了人力成本,是數(shù)字化工廠中不可缺少的組成部分。同時(shí),現(xiàn)行的設(shè)備監(jiān)控方案多使用視屏監(jiān)控系統(tǒng),在中控室通過視屏影像集中監(jiān)控設(shè)備運(yùn)行狀況[1]。其優(yōu)點(diǎn)是通過可視化監(jiān)控手段,使監(jiān)控效果清晰明了[2]。但其不足之處在實(shí)際使用過程中也同樣十分突出。首先,視屏監(jiān)控只能通過設(shè)備的外現(xiàn)判斷設(shè)備是否工作正常,如堵塞停止、沖撞損害、短路燒毀等,當(dāng)設(shè)備表現(xiàn)出明顯故障時(shí),往往已經(jīng)造成較嚴(yán)重的生產(chǎn)事故,無法實(shí)時(shí)監(jiān)控設(shè)備的實(shí)際工作狀況和運(yùn)行狀態(tài)[3]。其次,視屏監(jiān)控對(duì)于遠(yuǎn)端監(jiān)控較為有利,但現(xiàn)場(chǎng)工作人員更希望設(shè)備本身能夠顯示其工作狀態(tài)及實(shí)時(shí)運(yùn)行任務(wù)等信息,以便直接判斷設(shè)備的工作狀況,從而有較為充裕的時(shí)間處理設(shè)備特殊狀況及調(diào)整相關(guān)生產(chǎn)運(yùn)行任務(wù),達(dá)到提高生產(chǎn)效率的目的。同時(shí),現(xiàn)有的大多數(shù)監(jiān)控系統(tǒng)大多獨(dú)立于整個(gè)設(shè)備系統(tǒng),數(shù)據(jù)獲取不便且監(jiān)控具有時(shí)間延時(shí),無法達(dá)到實(shí)時(shí)監(jiān)控的目的[4],很難實(shí)現(xiàn)監(jiān)控系統(tǒng)的信息共享和平臺(tái)的無縫連接,為后期系統(tǒng)平臺(tái)的升級(jí)和改造帶來諸多不便。
針對(duì)以上設(shè)備監(jiān)控的實(shí)際需求,本文提出并設(shè)計(jì)了一種基于Qt的AGV實(shí)時(shí)任務(wù)監(jiān)控系統(tǒng)。該系統(tǒng)選用15英寸(1英寸=25.4 mm)工控機(jī)作為終端顯示設(shè)備,使用Qt完成上位機(jī)的設(shè)計(jì)與編寫,構(gòu)建面向局域網(wǎng)的OPC系統(tǒng)框架[5]。利用AGV系統(tǒng)網(wǎng)絡(luò),實(shí)時(shí)同步訪問接收來自系統(tǒng)的調(diào)度任務(wù)信息和AGV的車身狀態(tài)數(shù)據(jù)信息。通過對(duì)數(shù)據(jù)進(jìn)行分析解碼后在終端實(shí)時(shí)顯示其工作狀況,并使用SQL Server 2008數(shù)據(jù)庫記錄設(shè)備運(yùn)行時(shí)的調(diào)度指令、故障狀況等數(shù)據(jù)信息。同時(shí),系統(tǒng)設(shè)計(jì)根據(jù)需求采用模塊化的設(shè)計(jì)方法,減少子系統(tǒng)間的系統(tǒng)耦合度,便于后期系統(tǒng)的維護(hù)與升級(jí)。
系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
為充分適應(yīng)一線生產(chǎn)對(duì)設(shè)備監(jiān)控的實(shí)際需求,該系統(tǒng)設(shè)計(jì)分為三層,分別為數(shù)據(jù)獲取層、通信傳輸層和應(yīng)用顯示層[6]。數(shù)據(jù)獲取層主要完成對(duì)AGV的調(diào)度任務(wù)信息和狀態(tài)數(shù)據(jù)信息的獲取。其中,調(diào)度任務(wù)信息在其有效時(shí)間段內(nèi)存儲(chǔ)于AGV調(diào)度系統(tǒng)SQL Server 2008數(shù)據(jù)庫的MianYangAGVWork數(shù)據(jù)表中,AGV車身狀態(tài)數(shù)據(jù)實(shí)時(shí)保存于AGV本地Access數(shù)據(jù)庫的EVY-DSC數(shù)據(jù)表中。通信傳輸層在數(shù)據(jù)獲取層工作完成后,同步將數(shù)據(jù)傳輸至終端設(shè)備,用于后續(xù)數(shù)據(jù)處理。同時(shí),系統(tǒng)通信使用AGV調(diào)度網(wǎng)絡(luò)進(jìn)行局域網(wǎng)傳輸通信,減少了額外通信設(shè)備的采購和安裝。應(yīng)用顯示層在接收到其需要的AGV各項(xiàng)數(shù)據(jù)信息后,對(duì)數(shù)據(jù)進(jìn)行分析處理,包括數(shù)據(jù)解碼、信息匹配等。
系統(tǒng)實(shí)際工作時(shí),所處環(huán)境為工廠一線生產(chǎn)區(qū)域,環(huán)境較為復(fù)雜。終端設(shè)備具有運(yùn)行穩(wěn)定、觸摸控制、低功耗、風(fēng)冷散熱等優(yōu)點(diǎn)。設(shè)備同時(shí)加裝WiFi模塊,可進(jìn)行局域網(wǎng)通信,搭載Window7系統(tǒng)作為監(jiān)控系統(tǒng)運(yùn)行環(huán)境。
不同于常規(guī)固定監(jiān)控終端,本設(shè)計(jì)中的終端設(shè)備安裝于AGV車身,小車移動(dòng)運(yùn)行和取卸貨物時(shí),不可避免地會(huì)產(chǎn)生持續(xù)震動(dòng),對(duì)電子設(shè)備的穩(wěn)定性及使用壽命造成極大的危害,極易造成設(shè)備器件松動(dòng)而導(dǎo)致短路損壞等情況。為解決設(shè)備安裝固定及AGV運(yùn)行過程中的震動(dòng)對(duì)終端設(shè)備造成的不良影響,設(shè)計(jì)了一套支架結(jié)構(gòu)及相應(yīng)的減震機(jī)構(gòu)。該機(jī)構(gòu)主要由固定絲桿、牛筋減震墊圈、支撐支架等組成,其結(jié)構(gòu)如圖2所示。 實(shí)際測(cè)試和使用表明,該機(jī)構(gòu)可完成對(duì)終端設(shè)備的固定安裝和有效減少AGV運(yùn)動(dòng)時(shí)的震動(dòng)影響。
圖2 支架結(jié)構(gòu)示意圖
終端設(shè)備運(yùn)行工作時(shí),需要提供12 V直流電源。但AGV運(yùn)動(dòng)時(shí)無法使用固定電源輸入。對(duì)此,考慮使用AGV車載電源經(jīng)穩(wěn)壓器,為工控機(jī)供電。但實(shí)地考察和運(yùn)行測(cè)試后發(fā)現(xiàn),AGV車載電源存在運(yùn)行電壓不穩(wěn)、充電電壓劇烈跳變、關(guān)斷頻繁等諸多問題。為解決電源不穩(wěn)定為設(shè)備帶來的潛在風(fēng)險(xiǎn),保障系統(tǒng)正常運(yùn)行,根據(jù)實(shí)際需求設(shè)計(jì)和制作了一款電源模塊,主要由濾波器、直流空氣開關(guān)、開關(guān)穩(wěn)壓電源組成。電源模塊結(jié)構(gòu)如圖3所示。實(shí)地運(yùn)行測(cè)試表明,所設(shè)計(jì)的電源模塊可有效解決AGV系統(tǒng)電源不穩(wěn)定問題,能為終端設(shè)備提供穩(wěn)定、可靠的電能。
圖3 電源模塊結(jié)構(gòu)示意圖
系統(tǒng)上位機(jī)使用Qt完成相關(guān)應(yīng)用開發(fā)。Qt是一種跨平臺(tái)C++圖形用戶界面程序開發(fā)軟件,使用組件編程,可實(shí)現(xiàn)應(yīng)用程序的快速開發(fā)和跨平臺(tái)使用。
系統(tǒng)開發(fā)過程中,綜合考慮系統(tǒng)功能實(shí)現(xiàn)和系統(tǒng)響應(yīng)速度優(yōu)化,針對(duì)不同系統(tǒng)功能采用不同類實(shí)現(xiàn),減少了子系統(tǒng)間的耦合度。對(duì)于實(shí)時(shí)性和重要性要求較低的監(jiān)控內(nèi)容,系統(tǒng)將自動(dòng)降低其刷新速率或處于待機(jī)狀態(tài),以減少系統(tǒng)運(yùn)行時(shí)的資源占用,提高系統(tǒng)響應(yīng)速度。此次系統(tǒng)開發(fā)設(shè)計(jì)中完成了對(duì)AGV調(diào)度任務(wù)數(shù)據(jù)信息和狀態(tài)數(shù)據(jù)信息的實(shí)時(shí)監(jiān)控,并于終端設(shè)備動(dòng)態(tài)顯示。在獲取相關(guān)數(shù)據(jù)后,將原始數(shù)據(jù)和系統(tǒng)解析后的數(shù)據(jù)信息保存于本地?cái)?shù)據(jù)庫形成歷史記錄,以便查詢[7],這也為日后可能的系統(tǒng)升級(jí)維護(hù)等提供數(shù)據(jù)支持。系統(tǒng)功能如圖4所示。
圖4 系統(tǒng)功能示意圖
系統(tǒng)上線運(yùn)行時(shí),共分為兩種運(yùn)行模式,分別為模擬測(cè)試及工作運(yùn)行模式。管理員登錄后,可根據(jù)需求手動(dòng)選擇。系統(tǒng)默認(rèn)為工作運(yùn)行模式[8]。使用模擬測(cè)試模式時(shí),系統(tǒng)將使用本地?cái)?shù)據(jù)庫預(yù)存數(shù)據(jù)作為試驗(yàn)數(shù)據(jù)來源,檢驗(yàn)系統(tǒng)相關(guān)功能和穩(wěn)定性,相關(guān)試驗(yàn)數(shù)據(jù)可由工作人員手動(dòng)設(shè)置。工作運(yùn)行模式時(shí),管理員登錄成功后系統(tǒng)將自動(dòng)進(jìn)行通信連接,使用AGV系統(tǒng)網(wǎng)絡(luò)自動(dòng)訪問相關(guān)數(shù)據(jù)表,獲取系統(tǒng)所需數(shù)據(jù)信息并進(jìn)行解碼和信息匹配。在完成數(shù)據(jù)處理后,在終端設(shè)備實(shí)時(shí)顯示AGV工作狀態(tài),實(shí)現(xiàn)系統(tǒng)監(jiān)控功能。
當(dāng)AGV發(fā)生堵塞停止、運(yùn)行沖撞等故障時(shí),系統(tǒng)將自動(dòng)記錄下相關(guān)故障狀態(tài)信息,包括故障車輛編碼、故障時(shí)間、故障類型等,為維護(hù)檢修提供數(shù)據(jù)參考。同時(shí),在獲取故障信息后,將自動(dòng)發(fā)送故障信息給予指定的工作人員,提醒檢修維護(hù)。現(xiàn)行提示方式為通過短信發(fā)送,信息內(nèi)容包括故障車輛編號(hào)、故障類型及故障車輛位置信息等。系統(tǒng)軟件設(shè)計(jì)流程如圖5所示。
圖5 系統(tǒng)軟件設(shè)計(jì)流程圖
在完成系統(tǒng)架構(gòu)設(shè)計(jì)時(shí),對(duì)實(shí)地考察AGV的運(yùn)行使用情況和相關(guān)監(jiān)控系統(tǒng)的設(shè)計(jì)思路進(jìn)行分析。為避免由于數(shù)據(jù)大量傳送及處理時(shí)占用系統(tǒng)資源而導(dǎo)致的系統(tǒng)卡頓情況,在系統(tǒng)架構(gòu)設(shè)計(jì)時(shí),對(duì)相關(guān)功能頁面進(jìn)行編碼,選用區(qū)分功能模塊更新的方式[9]。
系統(tǒng)正常運(yùn)行時(shí),實(shí)時(shí)刷新AGV的調(diào)度任務(wù)信息和故障信息,并進(jìn)行保存,且該線程一直處于運(yùn)行狀態(tài)。但對(duì)于AGV的車身狀態(tài)信息及位置信息等,特別是對(duì)于AGV的車身狀態(tài)信息,其數(shù)據(jù)解析量較大。若全系統(tǒng)同步工作,監(jiān)控系統(tǒng)將出現(xiàn)卡頓現(xiàn)象,降低監(jiān)控效果[10]。對(duì)于該部分系統(tǒng)功能,系統(tǒng)運(yùn)行時(shí)將默認(rèn)為待機(jī)狀態(tài),只有當(dāng)工作人員選擇該子系統(tǒng)功能頁面時(shí),才觸發(fā)對(duì)應(yīng)系統(tǒng)線程,系統(tǒng)開始運(yùn)行相關(guān)程序?qū)崿F(xiàn)監(jiān)控[11]。整個(gè)系統(tǒng)運(yùn)行過程中,故障監(jiān)控及報(bào)警具有最高優(yōu)先級(jí),同時(shí)系統(tǒng)刷新時(shí)間預(yù)設(shè)為500 ms。系統(tǒng)功能頁面編碼如圖6所示。
圖6 系統(tǒng)功能頁面編碼圖
系統(tǒng)上位機(jī)使用Qt編寫,其豐富的類功能庫和UI控件設(shè)計(jì)功能可實(shí)現(xiàn)上位機(jī)界面的快速開發(fā)和跨平臺(tái)運(yùn)行。實(shí)際運(yùn)行時(shí)上位機(jī)安裝于終端設(shè)備,隨AGV的移動(dòng)而移動(dòng),工作人員可直觀地查看AGV的各項(xiàng)狀態(tài)信息和任務(wù)信息等。同時(shí),登錄成功后進(jìn)入二級(jí)功能選擇界面,用戶可根據(jù)需求選擇相應(yīng)的系統(tǒng)功能。
具體系統(tǒng)功能如下。
①管理員登錄與注冊(cè)。該功能允許系統(tǒng)使用人員進(jìn)行系統(tǒng)登錄校驗(yàn),只有相關(guān)工作人員擁有系統(tǒng)權(quán)限,防止無關(guān)人員誤操作。
②系統(tǒng)設(shè)置。該功能允許用戶修改賬戶密碼、選擇系統(tǒng)運(yùn)行模式、設(shè)置系統(tǒng)訪問IP地址、訪問數(shù)據(jù)庫名等信息。
③調(diào)度任務(wù)信息顯示。該功能將實(shí)時(shí)顯示AGV的調(diào)度任務(wù)信息,如取卸貨站點(diǎn)、物料類型、工作類型、完成狀態(tài)、任務(wù)開始時(shí)間等。
④故障顯示及報(bào)警。該功能將記錄AGV運(yùn)行過程中出現(xiàn)的各類故障信息,并將故障類型、小車編號(hào)、車輛位置信息等發(fā)送給指定工作人員。
⑤實(shí)時(shí)地圖。該功能將獲取的AGV實(shí)時(shí)位置信息與AGV的實(shí)際工作地圖相匹配,從而實(shí)現(xiàn)位置的實(shí)時(shí)顯示。
⑥歷史記錄查詢。該功能允許管理員查看監(jiān)控系統(tǒng)運(yùn)行過程中記錄的各項(xiàng)任務(wù)調(diào)度、運(yùn)行狀態(tài)、故障狀態(tài)等信息。
在完成系統(tǒng)軟件編寫和相關(guān)的硬件安裝調(diào)試后,首先于試驗(yàn)環(huán)境完成對(duì)系統(tǒng)的模擬測(cè)試,并在AGV實(shí)際運(yùn)行的輔料庫,完成對(duì)系統(tǒng)的各項(xiàng)功能測(cè)試和上線運(yùn)行觀察。測(cè)試內(nèi)容主要包括各子系統(tǒng)刷新時(shí)間、系統(tǒng)管理員登錄和注冊(cè)、調(diào)度任務(wù)指令監(jiān)測(cè)、AGV車身狀態(tài)監(jiān)測(cè)等。各子系統(tǒng)刷新時(shí)間測(cè)試結(jié)果如表1所示。實(shí)地測(cè)試表明,各子系統(tǒng)均在500 ms時(shí)間內(nèi)完成對(duì)其監(jiān)控功能的實(shí)現(xiàn)和運(yùn)行,滿足設(shè)計(jì)需求。
表1 子系統(tǒng)刷新時(shí)間記錄
為檢驗(yàn)系統(tǒng)上線運(yùn)行后的實(shí)際工作情況,主要包括檢驗(yàn)系統(tǒng)硬件的穩(wěn)定性和可靠性、系統(tǒng)軟件的功能實(shí)現(xiàn)情況和運(yùn)行穩(wěn)定性,分別每隔一周實(shí)地進(jìn)行檢查,觀察整機(jī)系統(tǒng)運(yùn)行狀態(tài)和完成相關(guān)功能測(cè)試。經(jīng)過多次實(shí)地運(yùn)行觀測(cè),該系統(tǒng)穩(wěn)定、可靠,可完成對(duì)AGV各項(xiàng)狀態(tài)信息的實(shí)時(shí)監(jiān)控。
針對(duì)AGV實(shí)際運(yùn)行的具體情況和工作特點(diǎn),本文分析了現(xiàn)有視屏監(jiān)控方案的不足和相關(guān)工作人員的實(shí)際需求,設(shè)計(jì)了一款基于Qt的AGV實(shí)時(shí)任務(wù)監(jiān)控系統(tǒng)。該系統(tǒng)主要由系統(tǒng)硬件和監(jiān)控軟件組成。其中,系統(tǒng)硬件主要包括終端顯示設(shè)備、支架及減震結(jié)構(gòu)和系統(tǒng)電源。系統(tǒng)監(jiān)控軟件主要完成數(shù)據(jù)獲取、傳輸及解碼顯示三個(gè)部分,實(shí)現(xiàn)了對(duì)AGV的調(diào)度任務(wù)信息、狀態(tài)數(shù)據(jù)信息、故障信息,實(shí)時(shí)地圖位置信息等實(shí)時(shí)更新和動(dòng)態(tài)顯示。為現(xiàn)場(chǎng)工作人員提供AGV的各項(xiàng)實(shí)時(shí)數(shù)據(jù)信息,便于對(duì)AGV有效管理和運(yùn)用。試驗(yàn)測(cè)試和實(shí)地運(yùn)行表明,該系統(tǒng)可有效地完成對(duì)AGV的各項(xiàng)調(diào)度任務(wù)信息和狀態(tài)信息的實(shí)時(shí)監(jiān)控、記錄故障數(shù)據(jù)和發(fā)送故障信息、實(shí)時(shí)更新AGV的地圖位置信息等,與AGV原有系統(tǒng)實(shí)現(xiàn)了無縫連接,滿足設(shè)計(jì)要求,具有較高的工程應(yīng)用價(jià)值。