張世綜,徐世許,邊長安
ZHANG Shi-zong,XU Shi-xu,BIAN Chang’an
(青島大學自動化學院,青島 266071)
隨著經濟水平的提高以及工業生產力的迅速發展,人們對原材料、制成品的需求數量不斷增加的同時,對物料儲存的要求也越來越高,伴隨著條碼識別技術的發展及設備自動化水平的不斷提高,條碼技術成為信息數據自動識別、輸入的重要方法和手段,現已應用到了商業、工業、交通運輸業、物流、醫療衛生等國民經濟各行各業。該系統將條碼掃描識別技術、ACCESS數據庫、NJ控制器與小型自動化倉庫結合起來,使自動化立體倉庫,能夠按照指令自動實現貨物存取,而且能夠自動管理庫存貨物,實時對存取的貨物信息進行記錄和刪除,并且通過查詢歷史貨物進出流水信息對庫存信息全面的掌握,進行制定合理的進出庫計劃。有利于企業根據所掌握的現有庫存量等信息及時的對生產計劃、采購計劃等進行有效的調整,增強了企業在生產加工過程的靈活性,也有利于企業管理人員的決策分析。具有十分重要的社會和經濟效益。
系統的運動控制部分采用位置控制模式,當交流伺服系統處于位置控制模式時,能夠精準地控制伺服電動機的轉數,進而準確的實現執行部件的移動距離,即能夠對執行部件實現運動定位控制。該模式下由驅動器接收位置命令,并控制伺服電機轉動,運行至目標位置。伺服控制器可以通過判斷脈沖編碼器傳送回來的脈沖數與PLC傳送來的位置命令即總的脈沖信號數量判斷電機是否旋轉至規定位置,即以當前伺服作為驅動的機構已經運動到了指定的位置。另外控制器輸出脈沖的頻率越快,電機旋轉的速度也越快[1]。位置控制模式架構如圖1所示。

圖1 位置控制模式框架圖
直線插補是數控設備上常見的一種插補功能。數控系統中直線插補功能的主要任務是在給定行進速度的基礎上在直線的起點和終點中間計算出若干個點的坐標,兩點間的插補運動通過逼近直線中的點群來實現[2~4]。
系統采用直線插補的方式到達指定位置,既做到了穩定平滑也實現了精確控制。假設在平面上存在任意直線,其起點和終點分別表示為A(x0,y0)和B(x1,y1),則直線的數學表達式可表示為:y=kx。式中:

圖2為從A點到B點的直線插補示意圖。

圖2 直線插補示意圖
當k<1時,有vx>vy,則一動點D運動的方向存在兩種情況:
1)僅沿x方向運動;
2)除了沿x方向運動外,同時沿y方向運動vx>vy。當k>1時,有vx<vy,此時動點D的運動方向同樣也存在兩種情況:僅沿y方向運動;除了沿y方向運動外,同時沿x軸方向運動且vx<vy[6,7]。
條形碼技術是在計算機發展和應用過程中產生和發展起來的自動識別的技術。識別過程主要分為讀取、識別和傳送三個過程,讀取條形碼的裝置稱作掃碼器。本系統用到的條碼標簽示意圖如圖3所示,系統在一個周期內讀取多個條形碼完畢后將數據發送至串口。
貨物條形碼掃描系統主要由上位機、邁斯肯MICROHAWK ID-40掃碼器、歐姆龍NJ控制器、CXSupervisor組態軟件、數據庫程序等組成。系統結構圖如圖4所示。掃碼器和上位機通過RS232c進行通信,遵循串口通信協議。掃碼器固定在取送貨物的機械手上,結構示意圖如圖5所示。

圖3 標簽示意圖

圖4 掃碼系統結構圖

圖5 機械手結構示意圖
2.3.1 CX-Supervisor
CX-Supervisor是為歐姆龍系列PLC和運動控制器開發的組態軟件,掃碼系統采用CX-Supervisor編寫程序,CX-Supervisor可實現一鍵模擬,點擊鼠標即可實現對應用程序的模擬仿真;可實現遠程維護,不需要修改應用程序就可以在任何地方查看應用程序的運行狀態,只需要通過網頁瀏覽器就可以安全訪問安裝的應用并對狀態進行監視,這對于后期的維護提供了極大地方便;CXSupervisor3.2支持多種腳本語言,包括VBScript以及歐姆龍自己的語言,編寫者可以根據自己的需要自行選擇,易用性較強,縮短開發周期。CX-Supervisor常用功能如完整的項目視圖、點編輯器、圖形庫、警報、動畫、權限管理、數據庫操作以及遠程管理等功能[8]。對中小型系統的開發相比專業的編程軟件更加簡潔和便利,同時可以省去大量通訊程序的編寫,大大降低開發難度,做到隨調隨用。
2.3.2 系統條碼識別的實現
條形碼掃碼系統的數據管理部分由數據庫管理系統ACCESS2010和CX-Supervisor共同實現。通過修改掃碼器系統固件參數實現同時讀取多個條形碼的數據,在CX-Supervisor編寫程序發打開掃碼器鏡頭發送命令使掃碼器進入預讀碼狀態,貨物入庫過程中機械手夾報貨物托盤入庫,同時進行讀碼,每盒貨物的多個條碼讀取完成后數據自動上傳到掃碼器的緩沖區。然后將數據存在串口緩沖區,在下次讀碼前進行數據提取,關掉鏡頭、將串口進行初始化和清空緩沖區等操作,等待下一次讀取,重復執行該操作即可實現連續讀碼。
2.3.3 數據處理
將接收的數據在程序中進行解析,判斷出該物品的具體信息,如身份標識、種類、采購日期、失效日期等,然后將處理完的數據為下一步的操作做準備。數據處理與機械手的入庫動作通過條件腳本結合在一起,例如在運動控制器中程序rh_sh_pos_A_back1觸發時執行寫庫程序,如圖6所示。

圖6 寫庫觸發程序圖
2.3.4 數據庫操作實現
ADO控件(ActiveX Data Objects,ActiveX數據對象)是Microsoft提出的應用程序接口,可以使用ADO控件在CX-Supervisor與Access數據庫之間建立關聯,通過ADO控件將讀取解析完的數據對數據庫進行讀寫操作,同時通過ADO控件可進行查詢功能的設計[9]。
3.1.1 串口設置程序
在編寫掃碼器讀碼程序前需要先對串口進行配置,以保證上位機和掃碼器可以正常通信。串口1配置程序如下:
MSComm1.CommPort=1 ‘設置串口為端口1
MSComm1.Settings=“115200,N,8,1”‘設置波特率,
MSComm1.InputMode=0 ‘數據通過 Input 屬性以文本形式取回
MSComm1.InputLen=0
MSComm1.InBufferCount=0 '清空接收緩沖區
MSComm1.outBufferCount=0
MSComm1.RThreshold=1 '緩沖區中接收到一個字符,就產生一次OnComm事件
MSComm1.PortOpen=True
程序中對端口、波特率、奇偶校驗開始位、停止位等進行設置,同時對串口接收緩沖區進行清空,為下一次接收數據做準備,串口2和串口3的配置與串口1相同,串口配置是應用掃碼器的必要條件[10]。
3.1.2 掃碼器讀碼程序
在串口準備完畢后,打開掃碼器,進入預讀碼狀態。程序實現如下:

程序中在運動控制器的對貨物進行運動掃碼狀態下,分別對三個串口發送16進制命令打開掃碼器鏡頭。
3.1.3 數據接收、處理程序
掃碼器掃到條形碼后會將數據存儲到緩沖區等待取出,編寫程序取出數據并進行數據的匹配。部分程序如下:


取出數據后向掃碼器發送16進制命令關閉鏡頭同時關閉串口,下次使用時再次打開串口、發送命令。數據匹配完成后程序上會給出貨物對應的詳細信息,如圖7所示。

圖7 掃碼信息圖
ADO Data控件是通過Microsoft ActiveX數據對象(ADO)來建立起符合OLE DB規范數據源連接的數據綁定控件。在VB6.0的環境下使用ADO控件對數據庫中的數據表進行操作,具體操作步驟如下。
3.2.1 連接數據庫
在CX-Supervisor編輯界面點擊工具欄上的配置Active X工具欄,勾選“Microsoft ADO Data Control,version6.0”對ADO控件進行調用,然后在界面上放置ADO控件,雙擊控件選擇要連接的數據源,如圖8所示,生成連接字符串完成數據庫的連接[8]。

圖8 連接數據庫
3.2.2 對數據庫進行數據操作
在CX-Supervisor中對ACCESS數據庫操作不需要編寫特定的連接語句,可做到隨調隨用,省去了傳統編程下對數據庫操作時編寫繁瑣的連接語句。貨物進庫時對數據庫進行寫庫操作,部分程序如下:

貨物出庫時機械手將取到的貨物托盤送至窗口,同時數據庫刪除相應的記錄[11]。程序實現如下:

3.2.3 查詢歷史記錄
系統在實現存取操作時將貨物信息記錄到數據庫中保存在ACCESS數據表中,設計查詢界面可對當前的庫存信息和流水信息就行查詢和導出Excel表格,方便用戶進行查看。
1)查詢程序設計部分代碼如下:


2)導出到Excel部分程序部分代碼如下:

系統中查詢歷史出入記錄主要借助ADO控件和Datagrid控件,用Adodc中的RecordSource屬性或者Recordset對象從數據源中根據需要的數據,選擇打開的記錄集。用Recordset對象中的屬性對記錄集中的記錄查詢功能。將Datagrid與ADO控件進行綁定即可將數據直觀的顯示在程序界面中。本系統能夠實現根據日期、貨物種類、貨物名稱或貨號對數據進行查詢、導出到Excel等功能[12]。查詢導出界面如圖9所示。

圖9 查詢導出界面
本文通過運動控制器配合機械手運動可做到精確存取,加入掃碼器配合機械手使入庫操作和出庫操作做到信息自動統計,無需人工干預,真正做到自動存取、自動記錄,相比傳統存儲過程省去了大量的人力物力,提高了存儲效率。利用CX-Supervisor設計用戶操作界面不僅可以減少編程人員的工作量,也令運動控制過程和用戶界面更好的結合在一塊,使系統更加穩定,方便調試。本文設計的系統實現自動掃碼出入庫,后期將沿著更加智能的方向進行設計和研究。