史世良,徐世許,石朝陽
(青島大學 自動化學院,青島 266071)
近年來,隨著我國經濟的不斷發展,工業自動化水平越來越高。由于工業技術的進步,生產物料的增加,人力成本的提升,如何科學系統有效地管理各種物料,如何實現工業自動化顯得尤為重要。本系統將條碼識別技術與先進的自動化設備相結合,極大的提高了工作效率,節約了成本。多工位條碼掃描系統,以NJ501-1300運動控制器為核心,當上位機發送指令時,控制器能夠按指令自動的進行物料條碼掃描,經過讀碼、解碼過程后得到的實際物料信息與上位機設定信息進行判斷,如果滿足要求機械手將物料存入指定工位,從而達到科學系統的管理物料,實現自動化作業,也提高了條碼識別與多工位智能化存儲水平。由于系統工位多,自身的存儲容量大、高工作效率、低事故率、高土地利用率等優點,通過一套智能的、可視化的上位機監管軟件進行監管控制,通過掃碼器進行條碼識別,極大地提高了系統的應用范圍。同時使用Access數據庫實現了對物料信息的存儲和查詢功能,降低了人為因素的出錯率,提高了工作效率和物料存儲的智能化水平。
系統硬件選型取決于系統的功能、使用環境、成本等眾多因素。多工位條碼掃描系統的硬件組成主要有上位機、NJ501-1300運動控制器、掃碼器、伺服驅動器、伺服電機、傳感器以及各種通信電纜組成。當上位機發出命令時,運動控制器控制機械手托運裝有物料的托盤,每個托盤有四行五列放置物料的位置,每個托盤最多可放置20盒物料,當每一行的物料經過掃碼器時,此時掃碼器打開并掃描物料條碼信息,同時傳感器檢測每個位置的物料有無情況,并傳送至NJ501-1300運動控制器中。同時掃碼器讀取的條碼信息通過EtherNet/IP通信實時存儲在NJ501-1300運動控制器固定的變量名中,上位機通過讀取NJ501-1300運動控制器固定的變量名中的條碼信息進行數據截取和解碼判斷,解碼的信息可直接在上位機監視畫面中顯示,同時解碼的實際信息與設定信息進行比較,若信息匹配則存入工位,若信息不匹配則退回原來位置進行補碼操作。同時,如果物料存入成功則部分物料信息可以存儲到Access數據庫中,方便后期的查詢和追溯,節約成本,提高效率,降低存入失誤率。系統硬件結構如圖1所示。

圖1 系統硬件結構
NJ501-1300運動控制器和上位機之間通過EtherNet/IP協議通信,上位機向NJ運動控制器發送運動指令,并實時接收來自NJ運動控制器的數據;NJ501-1300運動控制器和伺服驅動器之間通過EtherCAT協議通信,NJ運動控制器向伺服驅動器發送指令,伺服驅動器驅動電機完成動作[1];NJ501-1300運動控制器和掃碼器之間通過EtherNet/IP通信協議進行數據傳輸,NJ運動控制器將掃碼器上傳的數據存儲在固定的變量名中,上位機實時讀取NJ運動控制器固定變量的值,并根據解碼原則進行解碼,解碼成功后將條碼信息存儲在數據庫中;傳感器通過I/O模塊與NJ運動控制器連接,實現物料有無的判斷。
CX-Supervisor向NJ運動控制器發送控制指令,NJ運動控制器執行運動控制程序,完成機械手將物料托盤自動送到工位的過程。首先在上位機監管軟件進行選型,然后在托盤中放入物料,經過條碼掃描后,將放入物料的托盤送到指定工位,從而完成自動存入工位動作。機械手在執行物料存入工位的過程中要配合掃碼系統進行動態掃碼的運動控制程序。運動控制程序中,上位機程序通過“ScanCode”命令判斷系統需要進行條碼掃描后,向NJ運動控制器發送運動控制指令,此時機械手Y軸伸入到物料托盤指定位置,當機械手Y軸到達指定位置后,觸發“ScanCode_Move1_Position”命令,控制機械手夾抱軸運動夾抱物料托盤,當夾抱軸運動完畢后,“ScanCode_Move1_Done”值置“TRUE”。機械手將執行Y軸收回的動作,與此同時,上位機讀取到“ScanCode_Move1_Done”值改變,上位機開始實時讀取NJ運動控制器中儲存條碼信息的變量的值。由于每個托盤能夠存放20盒物料,因此Y軸收回時要分成四段,每一段動作完成后都要向上位機發送動作完成指令,上位機根據設定程序,將設定信息與每盒物料的條碼信息進行匹配,如果匹配成功則將信息存儲在數據庫中,這樣就可以實現動態掃碼的功能。Y軸收回完畢后,NJ變量“rgw_pos_Y_back”值為TRUE,此時機械手向指定工位位置運動,在機械手向指定工位位置運動的過程中,為了提高工作效率、避免多軸分別運動產生的機械慣性對系統造成損傷,系統在多軸聯動時,機械手以直線插補的方式進行運動;到達指定工位位置后,首先要對該工位位置是否已經有物料托盤進行檢測,如果該工位位置為空,則進行物料托盤向工位的存放動作,存放的過程首先是Y軸伸入,同時帶動物料托盤向指定工位移動,機械手Y軸到達指定位置后,此時觸發“ScanCode_Move2_Position”命令,控制機械手夾抱軸運動,此時夾抱軸松開物料托盤,當夾抱軸運動完畢后,“ScanCode_Move2_Done”值置“TRUE”,機械手將執行Y軸收回的動作,存入工位流程結束。系統為了避免機械振動造成的系統誤差、提高系統穩定性和系統使用壽命,在Y軸伸入、收回以及夾抱過程中,使用振動抑制功能減小機械振動。系統的存入工位流程如圖2所示。

圖2 系統的存入工位流程
條碼識別技術在工業物料管理方面應用廣泛,條碼識別技術是一種自動識別技術,可以實現對物料條碼信息的有效識別和科學管理,在條碼識別的過程中主要分為數據讀取、數據識別、數據傳送三個部分[2]。相對于傳統的鍵盤輸入的方式,運用條碼識別技術能夠實現條碼的自動識別。掃碼器作為讀取條碼的裝置,在本系統中用到了五個Microscan ID-40掃碼器,系統在一個運動過程中可以同時讀取多個條碼,并且將數據上傳存儲在NJ固定的變量名中。物料條碼信息如圖3所示。

圖3 物料條碼信息
物料條碼信息包括物料名稱碼、物料重量碼以及生產日期碼,為了能夠同時讀取多個條碼的信息,則通過修改掃碼器固件參數來實現,從而一次讀取出多個條碼信息[3]。上位機通過讀取的數據信息在程序中進行解碼,通過解碼操作在判斷出具體的物料信息。現以解碼失效日期為例,介紹解碼程序。由于條碼信息中有物料生產日期,但實際中物料的失效日期更為重要,因此需要通過生產日期結合物料保質期推算物料的失效日期。如“20190902”代表2019年9月2日該物料的生產日期,結合該物料保質期為一年,然后根據物料保質期計算該物料的具體失效日期為2020年9月2日。
系統使用CX-Supervisor進行上位機監管軟件程序設計,上位機監管軟件實現的主要功能是通過EtherNet/IP通信協議連接現場NJ501-1300運動控制器,通過操作監管軟件進行自動掃碼送回工位的控制,并從NJ501-1300運動控制器中讀取條碼信息、物料有無等信息,同時能夠實時讀取機械手的坐標位置和各個傳感器的狀態信息,從而對機械手進行實時狀態監視。通過ADO控件連接Access數據庫,并將讀取上來的條形碼信息、物料名稱、物料重量、生產日期等信息存儲至Access數據庫中,方便后期數據的查詢和追溯[4]。系統控制程序流程如圖4所示。

圖4 控制程序流程
在上位機監管界面輸入物料名稱、存入數量、工位選擇之后,點擊“選型結束”按鈕,此時按照控制程序流程圖的算法將符合要求的工位顯示在“入庫信息表”中,點擊“開始存入工位”按鈕,上位機向NJ501-1300運動控制器發送實時指令,機械手即開始工作。為了提高系統的工作效率,系統采用動態掃碼,即在機械手Y軸收回的過程中就對條碼進行識別,并對物料上的條形碼進行讀碼、解碼的操作,并最終將數據存儲在數據庫中。由于系統要進行動態掃碼,因此也需要捕捉NJ運動控制器的運動狀態,根據運動狀態進行信息讀取。系統設有五個掃碼器同時工作,一次對五個位置的物料條碼進行識別,因此共需要四次條碼識別。每次識別條碼的過程中,五個傳感器對每一行五個位置的物料進行物料有無的判斷,并通過I/O模塊上傳到NJ運動控制器中,傳感器判斷物料有無程序如圖5所示。

圖5 傳感器判斷物料有無程序
上位機向NJ運動控制器發送“ScanCode=true”以及“ScanTimes=4”指令,運動控制器將執行掃碼運動程序,每執行完一次,“ScanTimes”值減1,直到“ScanTimes”值為零,之后復位“ScanCode”,結束掃碼動作。當條碼識別結束之后,對掃碼信息進行判斷。解碼相對于掃碼過程較為簡單,只需要按照條碼定義進行譯碼即可。
在監控窗口的上方可以通過上位機設定存入的物料名稱、存入數量和工位選擇,NJ501-1300運動控制器將物料的條碼信息和物料有無信息存儲在固定的變量名中,上位機通過定義點與NJ501-1300運動控制器的固定變量的值進行關聯,實時讀取NJ501-1300運動控制器中固定變量的值,并根據解碼原則進行解碼,根據解出的實際物料名稱與上位機中設定的物料名稱進行匹配,同時還可以通過入庫信息表查看物料編碼、存入工位號、總重量、實際存入數量、生產日期、失效日期等信息,解碼成功后設置Adodc控件屬性連接計算機Access數據庫,同時將以上信息存入數據庫中,以備數據的查詢和調用[5]。同時,將各個軸的實際位置以及物料名稱、物料重量、生產日期顯示在上位機監控窗口中,上位機監控窗口如圖6所示。

圖6 上位機監控窗口
解碼過程中如果出現不成功的情況,上位機程序會自動進行判斷,并發送wh_th=true命令使機械手將托盤退回原來位置,托盤退回原來位置后可對解碼失敗的物料進行手動補碼操作,補碼成功后可繼續將托盤送到指定工位。解碼不成功有兩種情況,第一種情況是上位機設定的物料名稱與實際存入的物料名稱不匹配,則黃色矩形框變為紅色矩形框進行提示。第二種情況是讀上來的條碼長度和標準條碼長度不一致,表示其中有條碼漏讀或者讀錯,這種情況黃色矩形框變為粉紅色矩形框進行提示。若出現以上兩種情況用戶則可以根據提示在相應出錯的物料位置進行補碼操作。相關程序代碼如下:


本文根據企業和用戶的實際需求,在以OMRON NJ501-1300控制器為核心,CX-Supervisor組態軟件下開發上位機程序,設計并開發了基于NJ控制器的多工位條形碼掃描系統,包括機械手控制、條形碼識別、數據讀取和數據存儲等功能,另外該系統還運用了當下先進的伺服驅動器、伺服電機、掃碼器等設備,系統能夠穩定的控制機械手進行物料自動掃碼并存入工位的操作。目前該系統已經被應用到實際產業線中,系統運行穩定可靠,為企業減少了人力成本,提高了工作效率和物料存儲的自動化水平[6]。