史世良,徐世許,石朝陽
(青島大學 自動化學院,青島 266071)
近年來,隨著我國經濟的不斷發(fā)展,工業(yè)自動化水平越來越高。由于工業(yè)技術的進步,生產物料的增加,人力成本的提升,如何科學系統(tǒng)有效地管理各種物料,如何實現(xiàn)工業(yè)自動化顯得尤為重要。本系統(tǒng)將條碼識別技術與先進的自動化設備相結合,極大的提高了工作效率,節(jié)約了成本。多工位條碼掃描系統(tǒng),以NJ501-1300運動控制器為核心,當上位機發(fā)送指令時,控制器能夠按指令自動的進行物料條碼掃描,經過讀碼、解碼過程后得到的實際物料信息與上位機設定信息進行判斷,如果滿足要求機械手將物料存入指定工位,從而達到科學系統(tǒng)的管理物料,實現(xiàn)自動化作業(yè),也提高了條碼識別與多工位智能化存儲水平。由于系統(tǒng)工位多,自身的存儲容量大、高工作效率、低事故率、高土地利用率等優(yōu)點,通過一套智能的、可視化的上位機監(jiān)管軟件進行監(jiān)管控制,通過掃碼器進行條碼識別,極大地提高了系統(tǒng)的應用范圍。同時使用Access數(shù)據(jù)庫實現(xiàn)了對物料信息的存儲和查詢功能,降低了人為因素的出錯率,提高了工作效率和物料存儲的智能化水平。
系統(tǒng)硬件選型取決于系統(tǒng)的功能、使用環(huán)境、成本等眾多因素。多工位條碼掃描系統(tǒng)的硬件組成主要有上位機、NJ501-1300運動控制器、掃碼器、伺服驅動器、伺服電機、傳感器以及各種通信電纜組成。當上位機發(fā)出命令時,運動控制器控制機械手托運裝有物料的托盤,每個托盤有四行五列放置物料的位置,每個托盤最多可放置20盒物料,當每一行的物料經過掃碼器時,此時掃碼器打開并掃描物料條碼信息,同時傳感器檢測每個位置的物料有無情況,并傳送至NJ501-1300運動控制器中。同時掃碼器讀取的條碼信息通過EtherNet/IP通信實時存儲在NJ501-1300運動控制器固定的變量名中,上位機通過讀取NJ501-1300運動控制器固定的變量名中的條碼信息進行數(shù)據(jù)截取和解碼判斷,解碼的信息可直接在上位機監(jiān)視畫面中顯示,同時解碼的實際信息與設定信息進行比較,若信息匹配則存入工位,若信息不匹配則退回原來位置進行補碼操作。同時,如果物料存入成功則部分物料信息可以存儲到Access數(shù)據(jù)庫中,方便后期的查詢和追溯,節(jié)約成本,提高效率,降低存入失誤率。系統(tǒng)硬件結構如圖1所示。
圖1 系統(tǒng)硬件結構
NJ501-1300運動控制器和上位機之間通過EtherNet/IP協(xié)議通信,上位機向NJ運動控制器發(fā)送運動指令,并實時接收來自NJ運動控制器的數(shù)據(jù);NJ501-1300運動控制器和伺服驅動器之間通過EtherCAT協(xié)議通信,NJ運動控制器向伺服驅動器發(fā)送指令,伺服驅動器驅動電機完成動作[1];NJ501-1300運動控制器和掃碼器之間通過EtherNet/IP通信協(xié)議進行數(shù)據(jù)傳輸,NJ運動控制器將掃碼器上傳的數(shù)據(jù)存儲在固定的變量名中,上位機實時讀取NJ運動控制器固定變量的值,并根據(jù)解碼原則進行解碼,解碼成功后將條碼信息存儲在數(shù)據(jù)庫中;傳感器通過I/O模塊與NJ運動控制器連接,實現(xiàn)物料有無的判斷。
CX-Supervisor向NJ運動控制器發(fā)送控制指令,NJ運動控制器執(zhí)行運動控制程序,完成機械手將物料托盤自動送到工位的過程。首先在上位機監(jiān)管軟件進行選型,然后在托盤中放入物料,經過條碼掃描后,將放入物料的托盤送到指定工位,從而完成自動存入工位動作。機械手在執(zhí)行物料存入工位的過程中要配合掃碼系統(tǒng)進行動態(tài)掃碼的運動控制程序。運動控制程序中,上位機程序通過“ScanCode”命令判斷系統(tǒng)需要進行條碼掃描后,向NJ運動控制器發(fā)送運動控制指令,此時機械手Y軸伸入到物料托盤指定位置,當機械手Y軸到達指定位置后,觸發(fā)“ScanCode_Move1_Position”命令,控制機械手夾抱軸運動夾抱物料托盤,當夾抱軸運動完畢后,“ScanCode_Move1_Done”值置“TRUE”。機械手將執(zhí)行Y軸收回的動作,與此同時,上位機讀取到“ScanCode_Move1_Done”值改變,上位機開始實時讀取NJ運動控制器中儲存條碼信息的變量的值。由于每個托盤能夠存放20盒物料,因此Y軸收回時要分成四段,每一段動作完成后都要向上位機發(fā)送動作完成指令,上位機根據(jù)設定程序,將設定信息與每盒物料的條碼信息進行匹配,如果匹配成功則將信息存儲在數(shù)據(jù)庫中,這樣就可以實現(xiàn)動態(tài)掃碼的功能。Y軸收回完畢后,NJ變量“rgw_pos_Y_back”值為TRUE,此時機械手向指定工位位置運動,在機械手向指定工位位置運動的過程中,為了提高工作效率、避免多軸分別運動產生的機械慣性對系統(tǒng)造成損傷,系統(tǒng)在多軸聯(lián)動時,機械手以直線插補的方式進行運動;到達指定工位位置后,首先要對該工位位置是否已經有物料托盤進行檢測,如果該工位位置為空,則進行物料托盤向工位的存放動作,存放的過程首先是Y軸伸入,同時帶動物料托盤向指定工位移動,機械手Y軸到達指定位置后,此時觸發(fā)“ScanCode_Move2_Position”命令,控制機械手夾抱軸運動,此時夾抱軸松開物料托盤,當夾抱軸運動完畢后,“ScanCode_Move2_Done”值置“TRUE”,機械手將執(zhí)行Y軸收回的動作,存入工位流程結束。系統(tǒng)為了避免機械振動造成的系統(tǒng)誤差、提高系統(tǒng)穩(wěn)定性和系統(tǒng)使用壽命,在Y軸伸入、收回以及夾抱過程中,使用振動抑制功能減小機械振動。系統(tǒng)的存入工位流程如圖2所示。
圖2 系統(tǒng)的存入工位流程
條碼識別技術在工業(yè)物料管理方面應用廣泛,條碼識別技術是一種自動識別技術,可以實現(xiàn)對物料條碼信息的有效識別和科學管理,在條碼識別的過程中主要分為數(shù)據(jù)讀取、數(shù)據(jù)識別、數(shù)據(jù)傳送三個部分[2]。相對于傳統(tǒng)的鍵盤輸入的方式,運用條碼識別技術能夠實現(xiàn)條碼的自動識別。掃碼器作為讀取條碼的裝置,在本系統(tǒng)中用到了五個Microscan ID-40掃碼器,系統(tǒng)在一個運動過程中可以同時讀取多個條碼,并且將數(shù)據(jù)上傳存儲在NJ固定的變量名中。物料條碼信息如圖3所示。
圖3 物料條碼信息
物料條碼信息包括物料名稱碼、物料重量碼以及生產日期碼,為了能夠同時讀取多個條碼的信息,則通過修改掃碼器固件參數(shù)來實現(xiàn),從而一次讀取出多個條碼信息[3]。上位機通過讀取的數(shù)據(jù)信息在程序中進行解碼,通過解碼操作在判斷出具體的物料信息。現(xiàn)以解碼失效日期為例,介紹解碼程序。由于條碼信息中有物料生產日期,但實際中物料的失效日期更為重要,因此需要通過生產日期結合物料保質期推算物料的失效日期。如“20190902”代表2019年9月2日該物料的生產日期,結合該物料保質期為一年,然后根據(jù)物料保質期計算該物料的具體失效日期為2020年9月2日。
系統(tǒng)使用CX-Supervisor進行上位機監(jiān)管軟件程序設計,上位機監(jiān)管軟件實現(xiàn)的主要功能是通過EtherNet/IP通信協(xié)議連接現(xiàn)場NJ501-1300運動控制器,通過操作監(jiān)管軟件進行自動掃碼送回工位的控制,并從NJ501-1300運動控制器中讀取條碼信息、物料有無等信息,同時能夠實時讀取機械手的坐標位置和各個傳感器的狀態(tài)信息,從而對機械手進行實時狀態(tài)監(jiān)視。通過ADO控件連接Access數(shù)據(jù)庫,并將讀取上來的條形碼信息、物料名稱、物料重量、生產日期等信息存儲至Access數(shù)據(jù)庫中,方便后期數(shù)據(jù)的查詢和追溯[4]。系統(tǒng)控制程序流程如圖4所示。
圖4 控制程序流程
在上位機監(jiān)管界面輸入物料名稱、存入數(shù)量、工位選擇之后,點擊“選型結束”按鈕,此時按照控制程序流程圖的算法將符合要求的工位顯示在“入庫信息表”中,點擊“開始存入工位”按鈕,上位機向NJ501-1300運動控制器發(fā)送實時指令,機械手即開始工作。為了提高系統(tǒng)的工作效率,系統(tǒng)采用動態(tài)掃碼,即在機械手Y軸收回的過程中就對條碼進行識別,并對物料上的條形碼進行讀碼、解碼的操作,并最終將數(shù)據(jù)存儲在數(shù)據(jù)庫中。由于系統(tǒng)要進行動態(tài)掃碼,因此也需要捕捉NJ運動控制器的運動狀態(tài),根據(jù)運動狀態(tài)進行信息讀取。系統(tǒng)設有五個掃碼器同時工作,一次對五個位置的物料條碼進行識別,因此共需要四次條碼識別。每次識別條碼的過程中,五個傳感器對每一行五個位置的物料進行物料有無的判斷,并通過I/O模塊上傳到NJ運動控制器中,傳感器判斷物料有無程序如圖5所示。
圖5 傳感器判斷物料有無程序
上位機向NJ運動控制器發(fā)送“ScanCode=true”以及“ScanTimes=4”指令,運動控制器將執(zhí)行掃碼運動程序,每執(zhí)行完一次,“ScanTimes”值減1,直到“ScanTimes”值為零,之后復位“ScanCode”,結束掃碼動作。當條碼識別結束之后,對掃碼信息進行判斷。解碼相對于掃碼過程較為簡單,只需要按照條碼定義進行譯碼即可。
在監(jiān)控窗口的上方可以通過上位機設定存入的物料名稱、存入數(shù)量和工位選擇,NJ501-1300運動控制器將物料的條碼信息和物料有無信息存儲在固定的變量名中,上位機通過定義點與NJ501-1300運動控制器的固定變量的值進行關聯(lián),實時讀取NJ501-1300運動控制器中固定變量的值,并根據(jù)解碼原則進行解碼,根據(jù)解出的實際物料名稱與上位機中設定的物料名稱進行匹配,同時還可以通過入庫信息表查看物料編碼、存入工位號、總重量、實際存入數(shù)量、生產日期、失效日期等信息,解碼成功后設置Adodc控件屬性連接計算機Access數(shù)據(jù)庫,同時將以上信息存入數(shù)據(jù)庫中,以備數(shù)據(jù)的查詢和調用[5]。同時,將各個軸的實際位置以及物料名稱、物料重量、生產日期顯示在上位機監(jiān)控窗口中,上位機監(jiān)控窗口如圖6所示。
圖6 上位機監(jiān)控窗口
解碼過程中如果出現(xiàn)不成功的情況,上位機程序會自動進行判斷,并發(fā)送wh_th=true命令使機械手將托盤退回原來位置,托盤退回原來位置后可對解碼失敗的物料進行手動補碼操作,補碼成功后可繼續(xù)將托盤送到指定工位。解碼不成功有兩種情況,第一種情況是上位機設定的物料名稱與實際存入的物料名稱不匹配,則黃色矩形框變?yōu)榧t色矩形框進行提示。第二種情況是讀上來的條碼長度和標準條碼長度不一致,表示其中有條碼漏讀或者讀錯,這種情況黃色矩形框變?yōu)榉奂t色矩形框進行提示。若出現(xiàn)以上兩種情況用戶則可以根據(jù)提示在相應出錯的物料位置進行補碼操作。相關程序代碼如下:
本文根據(jù)企業(yè)和用戶的實際需求,在以OMRON NJ501-1300控制器為核心,CX-Supervisor組態(tài)軟件下開發(fā)上位機程序,設計并開發(fā)了基于NJ控制器的多工位條形碼掃描系統(tǒng),包括機械手控制、條形碼識別、數(shù)據(jù)讀取和數(shù)據(jù)存儲等功能,另外該系統(tǒng)還運用了當下先進的伺服驅動器、伺服電機、掃碼器等設備,系統(tǒng)能夠穩(wěn)定的控制機械手進行物料自動掃碼并存入工位的操作。目前該系統(tǒng)已經被應用到實際產業(yè)線中,系統(tǒng)運行穩(wěn)定可靠,為企業(yè)減少了人力成本,提高了工作效率和物料存儲的自動化水平[6]。