郭全民,李 東,王 健
(西安工業(yè)大學(xué)電子信息工程學(xué)院,西安710021)
LabVIEW訪問Oracle數(shù)據(jù)庫在MES中的應(yīng)用
郭全民,李東,王健
(西安工業(yè)大學(xué)電子信息工程學(xué)院,西安710021)
通過放大變換測試系統(tǒng),研究如何將產(chǎn)品測試信息上傳到數(shù)據(jù)庫中,實(shí)現(xiàn)產(chǎn)品信息的查閱及測試指令的下達(dá)。通過結(jié)合使用LabVIEW[1]和現(xiàn)場制造執(zhí)行系統(tǒng)(MES)實(shí)現(xiàn)的對(duì)被測產(chǎn)品的數(shù)據(jù)采集和數(shù)據(jù)上傳,并將測試數(shù)據(jù)保存到Oracle數(shù)據(jù)庫中。通過使用LabVIEW中的Database工具包,了解如何使用簡單的SQL語言實(shí)現(xiàn)對(duì)Oracle數(shù)據(jù)庫中數(shù)據(jù)的操作及與Oracle數(shù)據(jù)庫的連接。通過局域網(wǎng)實(shí)現(xiàn)對(duì)Oracle數(shù)據(jù)庫中被測產(chǎn)品指令的下達(dá)以及被測數(shù)據(jù)的插入、更新、刪除等操作,從而實(shí)現(xiàn)對(duì)被測產(chǎn)品的遠(yuǎn)程監(jiān)控[2]。最終使用LabVIEW軟件編寫操作界面實(shí)現(xiàn)對(duì)被測系統(tǒng)的控制。
虛擬儀器;制造執(zhí)行系統(tǒng);Oracle數(shù)據(jù)庫;數(shù)據(jù)采集;測試系統(tǒng)
放大變換測試系統(tǒng)測試平臺(tái)是為國內(nèi)某研究院研制的用于對(duì)放大變換部件電路電流信息進(jìn)行測試的平臺(tái),由工控機(jī)、顯示器、硬件放大變換測試箱、電流源和被測產(chǎn)品組成。在對(duì)被測產(chǎn)品進(jìn)行測試時(shí)需要下達(dá)測試任務(wù),操作人員根據(jù)任務(wù)指標(biāo)對(duì)被測產(chǎn)品進(jìn)行測試,并將被測產(chǎn)品的信息和任務(wù)狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)測,如何實(shí)現(xiàn)對(duì)被測產(chǎn)品信息的采集和任務(wù)狀態(tài)監(jiān)測將是研究的重點(diǎn)[3]。
為了實(shí)現(xiàn)從傳統(tǒng)制造方式向敏捷化和柔性化制造方式的轉(zhuǎn)換,建成覆蓋生產(chǎn)管理主價(jià)值鏈、信息共享、管理高效的精益數(shù)字化平臺(tái),我們選用Lab-VIEW訪問Oracle數(shù)據(jù)庫的方式,這種方式使得測試設(shè)備能夠與制造執(zhí)行系統(tǒng)集成,實(shí)現(xiàn)自動(dòng)接收測試任務(wù)。測試設(shè)備能夠?qū)⒃O(shè)備的運(yùn)行狀態(tài)和產(chǎn)品的測試結(jié)果數(shù)據(jù)上傳到指定數(shù)據(jù)庫中。實(shí)現(xiàn)對(duì)被測產(chǎn)品信息的遠(yuǎn)程控制,通過Oracle可以及時(shí)下達(dá)產(chǎn)品測試信息和接收測試數(shù)據(jù)及狀態(tài),進(jìn)一步提高產(chǎn)品的測試效率及監(jiān)控效率。
2.1Database工具包
NI LabVIEW數(shù)據(jù)庫連接(Database Connectivity)工具包提供了一套簡單易用的工具,使用戶能快速連接本地或遠(yuǎn)程數(shù)據(jù)庫,并且無需進(jìn)行結(jié)構(gòu)化查詢語言(SQL)編程就可以執(zhí)行諸多常用的數(shù)據(jù)庫操作。該工具包可方便連接各種常用數(shù)據(jù)庫,如Microsoft Access、SQL Server和Oracle[4]。如需高級(jí)數(shù)據(jù)庫的功能和靈活性,LabVIEW數(shù)據(jù)庫連接工具包還可以提供所有SQL功能。
Database工具包被安裝在LabVIEW后面板:函數(shù)→互連接口→database中,在完成上述準(zhǔn)備工作后,就可以方便快捷地進(jìn)行數(shù)據(jù)庫設(shè)計(jì)了。大致分為以下幾步:建立和連接數(shù)據(jù)庫、數(shù)據(jù)庫信息的讀取、插入信息到數(shù)據(jù)庫和斷開數(shù)據(jù)庫連接。下面給出插入和查找信息的詳細(xì)步驟[5]:
第一步:建立數(shù)據(jù)庫連接。在database中選擇“DB Tools Open Connection.VI”創(chuàng)建數(shù)據(jù)庫,user ID和password連接之前創(chuàng)建Oracle數(shù)據(jù)庫時(shí)使用的用戶名和密碼,Connection information確定數(shù)據(jù)源配置的提供者和確定數(shù)據(jù)源。
第二步:數(shù)據(jù)庫信息讀取。在database中選擇“DB Tool Select Data.VI”和“Database Variant To Data.VI”讀取數(shù)據(jù)庫信息,table和columns連接數(shù)據(jù)讀取的表格和表格中對(duì)應(yīng)的列信息,將“DB Tool Select Data.VI”中的data連接到“Database Variant To Data.VI”中的database variant,將數(shù)據(jù)庫中不同存儲(chǔ)類型的數(shù)據(jù)通過type轉(zhuǎn)換為指定格式的數(shù)據(jù)輸出。
第三步:插入信息到數(shù)據(jù)庫。在database中選擇“DB Tools Create Paramterized Query.VI”確定要插入信息所在的表格和相應(yīng)的SQL語句,確定要插入信息;“DB Tools Set Parameter Value.VI”確定輸入信息的具體數(shù)據(jù);“DB Tools Execute Query.VI”執(zhí)行之前設(shè)定好的數(shù)據(jù),插入到相應(yīng)的表格中;“DB Tools Free Object.VI”執(zhí)行完插入語句后釋放空間,不然會(huì)一直占用內(nèi)存,等待執(zhí)行插入語句,降低運(yùn)行速度。
第四步:斷開數(shù)據(jù)庫連接。在database中選擇“DB Tools Close Connection.VI”斷開數(shù)據(jù)庫連接。
2.2Database應(yīng)用實(shí)例
本應(yīng)用實(shí)例是向上面所建立的Oracle數(shù)據(jù)表添加、查找、顯示記錄。數(shù)據(jù)源名為MYDB,數(shù)據(jù)表名為“V_CHKTASK”、列名為“Return_Data”,與數(shù)據(jù)源連接的字符串“Provider=OraOLEDB.Oracle.1;Data Source=orcl.”,用戶名和用戶密碼為“tdcuser”“cape”,通過“Database Variant To Data.VI”將databas中的變量轉(zhuǎn)換為LabVIEW中字符串?dāng)?shù)組類型,具體的操作字符串及顯示結(jié)果如圖1所示。
圖1 讀取數(shù)據(jù)庫信息
通過打開數(shù)據(jù)庫連接的VI定義了數(shù)據(jù)源連接字符串“Provide=OraOLED-B.Oracle.1;Data Source=orcl”,用戶名和用戶密碼為“tdcuser”、“cape”,通過“DB Tools Create Paramterized Query.VI”定義了參數(shù)的類型為一維字符串?dāng)?shù)組,每個(gè)數(shù)組包含一個(gè)簇信息,簇中包括任務(wù)序號(hào)或者任務(wù)狀態(tài)數(shù)組的參數(shù)名信息、數(shù)組的數(shù)據(jù)類型及其參數(shù)輸入輸出的作用方式等,通過SQL query端指定一個(gè)參數(shù)化SQL查詢或存儲(chǔ)過程的名稱,在參數(shù)數(shù)組中元素必須和SQL query端描述的參數(shù)數(shù)量相對(duì)應(yīng)。在parameters out端返回一個(gè)數(shù)組參數(shù)的簇信息。具體的操作字符串及顯示結(jié)果如圖2所示。
在database中選擇“DB Tools Insert Data.VI”、“DB Tools Update Data.VI”、“DB Tools Delete Data.VI”替換“DB Tool Select Data.VI”即可實(shí)現(xiàn)相應(yīng)數(shù)據(jù)在數(shù)據(jù)庫中的插入列、更新和刪除。
2.1制造執(zhí)行系統(tǒng)(MES)簡介
MES(Manufact uring Execution System)即制造執(zhí)行系統(tǒng),俗稱生產(chǎn)執(zhí)行系統(tǒng)[6]。通過將上層的企業(yè)信息計(jì)劃系統(tǒng)與底層的過程控制系統(tǒng)相結(jié)合構(gòu)建出一個(gè)企業(yè)核心,其主要用途一是將業(yè)務(wù)指令下達(dá)給生產(chǎn)現(xiàn)場,二是將生產(chǎn)現(xiàn)場生成的信息進(jìn)行收集并上傳給上層處理。MES不僅僅是針對(duì)生產(chǎn)現(xiàn)場的系統(tǒng),而且作為過渡層連接了現(xiàn)場層和經(jīng)營層,進(jìn)行信息傳遞。MES作為一個(gè)企業(yè)的重要信息系統(tǒng),在企業(yè)信息計(jì)劃系統(tǒng)和過程控制系統(tǒng)中實(shí)時(shí)傳遞測試的理論數(shù)據(jù)和實(shí)際數(shù)據(jù),并將數(shù)據(jù)進(jìn)行比較[4]。
圖2 插入信息到數(shù)據(jù)庫
2.2MES在放大變換測試系統(tǒng)中的流程圖
產(chǎn)品測試作為整個(gè)現(xiàn)場裝配過程中的一個(gè)環(huán)節(jié)。為滿足對(duì)裝配過程的控制盒測試數(shù)據(jù)的自動(dòng)采集的要求,測試設(shè)備能夠與現(xiàn)場制造執(zhí)行管理系統(tǒng)、設(shè)備資產(chǎn)管理系統(tǒng)集成,實(shí)現(xiàn)測試任務(wù)、設(shè)備運(yùn)行狀態(tài)、測試結(jié)果等信息的交互。其流程圖如圖3所示。
圖3 產(chǎn)品裝配測試設(shè)備數(shù)據(jù)采集流程
2.3MES在放大變換測試系統(tǒng)中的應(yīng)用
使用LabVIEW在本地建立數(shù)據(jù)庫連接配置文件,當(dāng)數(shù)據(jù)庫連接屬性發(fā)生變化時(shí)能夠靈活進(jìn)行數(shù)據(jù)庫聯(lián)接的動(dòng)態(tài)調(diào)整,方便對(duì)數(shù)據(jù)庫數(shù)據(jù)進(jìn)行查閱。如圖4所示。
圖4 數(shù)據(jù)庫連接配置界面前面板
通過“讀寫Oracle連接配置”文件VI,將Oracle數(shù)據(jù)庫連接配置分為讀取配置和寫入配置。當(dāng)選擇讀取配置時(shí)自動(dòng)連接到默認(rèn)的配置文件,當(dāng)數(shù)據(jù)庫的連接屬性發(fā)生變化時(shí)選擇寫入配置,手動(dòng)輸入配置信息,連接到相應(yīng)的數(shù)據(jù)庫中,并實(shí)現(xiàn)遠(yuǎn)程調(diào)用的寫入,其后面板程序如圖5所示。
當(dāng)運(yùn)行程序時(shí),程序調(diào)用讀寫Oracle數(shù)據(jù)庫連接配置文件VI,選擇讀取配置,將事先在*.ini格式文件中提前配置好的文件信息(專用設(shè)備編號(hào)、數(shù)據(jù)庫服務(wù)器端口、數(shù)據(jù)庫SID、用戶名、密碼)讀取顯示在前面板相應(yīng)的位置,當(dāng)用戶點(diǎn)擊保存按鈕時(shí)再次調(diào)用讀寫Oracle數(shù)據(jù)庫連接配置文件VI將前面板顯示信息寫入到指定的*.ini文件中,此時(shí)選用的是寫入模式。在用戶點(diǎn)擊保存按鈕前,用戶可以手動(dòng)更改前面板上顯示的信息。在放大變換測試系統(tǒng)中將任務(wù)狀態(tài)用不同的數(shù)字替代,如“10”定義為已計(jì)劃并下達(dá);“20”定義為測試中;“30”定義為已完成;“40”定義為已上傳。運(yùn)行測試任務(wù)信息表子VI,在默認(rèn)狀態(tài)下,系統(tǒng)自動(dòng)讀取數(shù)據(jù)庫中任務(wù)狀態(tài)為“10”的任務(wù)信息。當(dāng)在測試任務(wù)ID中選擇顯示出的任務(wù)ID并按下啟動(dòng)測試任務(wù)按鈕后,數(shù)據(jù)庫中將把這個(gè)任務(wù)ID的任務(wù)狀態(tài)從“10”變?yōu)椤?0”,在任務(wù)篩選中選擇“測試中”,會(huì)顯示出此前任務(wù)狀態(tài)從“10”變?yōu)椤?0”的任務(wù)ID的任務(wù)信息。當(dāng)被測產(chǎn)品測試結(jié)束后,系統(tǒng)將任務(wù)狀態(tài)由“20”變?yōu)椤?0”,在任務(wù)篩選中選擇“已完成”,任務(wù)狀態(tài)為”30”的任務(wù)信息便會(huì)顯示出來。測試任務(wù)信息表如圖6所示;數(shù)據(jù)庫中測試信息如圖7所示。
圖6 測試任務(wù)信息表
圖7 PLSQL Developer
在LabVIEW中通過Database工具包連接到Oracle數(shù)據(jù)庫,通過簡單的SQL語言即可實(shí)現(xiàn)對(duì)數(shù)據(jù)表格的創(chuàng)建、數(shù)據(jù)的查詢和插入,記錄測試中的數(shù)據(jù)即快速又方便。對(duì)于不太熟悉SQL語言的設(shè)計(jì)者,只需要簡單了解Database工具包中各個(gè)子VI的功能與鏈接方法,即可完成數(shù)據(jù)庫的存儲(chǔ)。在軟件開發(fā)過程中大大縮短了軟件開發(fā)設(shè)計(jì)的周期,節(jié)約了開發(fā)成本。在MES中使用Oracle數(shù)據(jù)庫通過連接局域網(wǎng)即可實(shí)現(xiàn)數(shù)據(jù)在客戶端和服務(wù)器間的上傳與下載,以便于對(duì)整個(gè)測試系統(tǒng)的管理。
[1]Pan Deng,Zhang Yucui,Bu Taiming,et al.Design and realization of lamp life test instrument[J].Journal of Harbin Institute of Technology,2012(6):124-128.
[2]袁振文.LabVIEW中遠(yuǎn)程數(shù)據(jù)庫訪問技術(shù)[J].微計(jì)算機(jī)信息,2004,20(12):51-52.YuanZhenwen.LabVIEW in remote database access technology[J].Micro computer information.2014,20(12):51-52.
[3]Study of Remote Monitoring and Maintenance Guiding Technique Based on LabVIEW for Machining Centers[J].Journal of DongHua University,2005(5):29-33.
[4]雷振山,魏麗,趙晨光,等.LabVIEW高級(jí)編程與虛擬儀器工程應(yīng)用[M].北京:中國鐵道出版社.2009.4.LeiZhenshan,WeiLi,ZhaoChenguang.LabVIEW highlevel programming and virtual instrument engineering applications[M].BeiJing:Chinarailwaypublishing house.2009.4.
[5]李文輝.制造執(zhí)行系統(tǒng)(MES)的應(yīng)用與發(fā)展[J].蘭州理工大學(xué)學(xué)報(bào),2006(2):50-54.LiWenhui.The application and development of manufacturing execution system(MES)[J].Journal of lanzhou university of technology,2006(2):50-54.
Application of LabVIEW Access Oracle Database in MES
Guo Quanmin,Li Dong,Wang Jian
(School of Electronic Information Engineering,Xi'an Technological University,Xi'an 710021,China)
By enlarging transform test system,this paper studies how to upload product test information to the database to access to the information of products and give a testing instruction.Combining with LabVIEW and manufacturing execution system(MES),the data of collection and uploading dynamically are realized and saved in the Oracle database.By means of the Database in the LabVIEW,a simple SQL language is used for operating the Oracle data in the Database and connecting the Oracle Database.Through the local area network(LAN),the instructions of the tested products in Oracle database and the operations such as date insertion,data update and data deleting are conducted to realize the remote controlling of the products tested.Finally,the operation interface is written to control the tested system by LabVIEW software.
LabVIEW;MES;Oracle database;DAQ;Test System
10.3969/j.issn.1002-2279.2016.01.008
TP274
A
1002-2279(2016)01-0028-04
郭全民(1974-),男,陜西省渭南市人,副教授,主研方向:計(jì)算機(jī)測控技術(shù)、圖像處理及機(jī)器視覺、智能傳感與信息融合等。
2015-03-11