張國金,鄒寧波
(中國建材國際工程集團有限公司,蚌埠 233018)
基于MySQL的玻璃廠工藝數據歸檔方法
張國金,鄒寧波
(中國建材國際工程集團有限公司,蚌埠 233018)
玻璃生產中有許多歸檔數據需要記錄,傳統記錄方式有很多不足。該文介紹了基于MySQL的玻璃廠工藝數據歸檔方法,結合玻璃廠實際生產需求,創建了歸檔數據表,開發了數據庫與應用程序接口,并基于MySQL建立了玻璃廠歸檔數據網絡。
MySQL數據庫; 歸檔數據; 結構化查詢語言; 開放數據庫互連; 玻璃冷端
在平板玻璃生產中,有很多工藝數據需要實時或者分時的記錄下來,主要目的是為將來的生產提供一個可查詢的記錄。如熱端窯爐中溫度、壓力數據,冷端中的玻璃切割和堆垛數據等等。這種記錄方法目前存在的主要是靠計算機去自動歸檔記錄,此功能一般情況是在一些通用組態監控軟件上進行開發的。而該文將探討運用另外一種方法,直接利用MySQL數據庫開發的一種玻璃廠生產工藝數據歸檔記錄的方法,它的優點在于不依賴于任何組態軟件,而又能集成到任何組態軟件中。該文通過冷端的切割數據為實例敘述如何通過MySQL數據庫進行歸檔,研究如何通過C++語言編寫與數據庫之間的接口程序,并基于MySQL建立平板玻璃廠的數據歸檔計算機網絡結構。
以往在利用計算機進行數據自動記錄歸檔的方法通常是基于組態軟件進行開發。例如,通常使用的西門子WINCC監控軟件或者IFIX監控軟件都會提供一些歸檔記錄功能給用戶使用,利用這些自帶的歸檔記錄功能基本能夠滿足生產上的需要。但是這些軟件的缺點在于平臺之間不能互相通用,并且它們的功能有限,所以通用性和擴展性是這些組態軟件的先天缺陷。
MySQL是瑞典MySQLAB公司開發的一種網絡化的關系型數據庫管理系統(Relational Database Management System,RDBMS)。MySQL數據庫支持結構化查詢語言(Structured Query Language,SQL),使用C/C++語言編寫,在多種編譯器上進行了測試。因此,它的移植性特別好,能夠支持多種不同的操作系統,擁有多種編程語言接口,具有運行速度快、使用復雜度低、價格低、連接性和安全性高等優點,被廣泛應用于各種中小型網站的數據庫服務器上。該文將基于MySQL數據庫系統通過具體實例來闡述如何在玻璃廠中進行數據記錄歸檔。
在平板玻璃從原料到成品的生產過程中,為了方便將來對歷史數據進行查詢,所以存在眾多的數據需要記錄歸檔。例如在原料車間各種原料的配比情況需要歸檔,在熱端如各種熱工設備的壓力、流量、溫度等工藝參數需要歸檔,在冷端如玻璃切割尺寸、等級、成品數量、廢品數量等信息需要歸檔。
3.1 歸檔數據表的建立
在數據庫glass中建立歸檔表file。根據玻璃廠常用歸檔數據情況,將玻璃編號設置為表file的主鍵,無符號整形,并設置為自增。將橫切尺寸、玻璃等級、縱切尺寸1、縱切尺寸2、縱切尺寸3、縱切尺寸4設置為無符號整形,將縱切組合形式設置為char型,將time設置為Timestamp型。Timestamp類型值的范圍為從1970年到2037年,精度為1 s,以數字的形式顯示。使用它可以自動的用當前的日期和時間標記對數據表的操作。該文將以平板玻璃冷端切割數據為例,敘述如何對MySQL數據庫進行數據歸檔,冷端玻璃切割數據的常見形式及類型如表1所示。

表1 玻璃廠歸檔數據表參數及類型

通過desc[tablename]命令可以查看表的結構,顯示出字段名、字段類型、是否為空、主鍵、默認值、額外信息等參數,如圖1所示。除了命令行之外,還可以通過Navicat管理數據庫。Navicat是一套快速、可靠的數據庫管理工具,它支持多種操作系統,能夠為MySQL等數據庫提供圖形化的用戶界面,讓使用者安全簡單的訪問本機或者遠程服務器,可以降低數據庫的管理難度。Navicat顯示數據庫file表的內容如圖2所示。
3.2 數據庫的維護與操作
MySQL數據庫的維護與操作使用SQL語言完成,常用的操作有插入數據、查詢數據、更新數據、刪除數據、添加列、刪除列、修改列、刪除表等。
3.2.1 表中數據的插入
MySQL數據庫使用insert語句來完成插入功能。SQL示例代碼如下:
insert intofile(橫切尺寸,玻璃等級,縱切組合形式,縱切尺寸1,縱切尺寸2,縱切尺寸3,縱切尺寸4), values(200,1,"001",25,26,42,32)。


該語句將橫切尺寸為200,玻璃等級為1,縱切組合形式為“001”,縱切尺寸1為25,縱切尺寸2為26,縱切尺寸3為42,縱切尺寸4為32的記錄插入數據表file。
3.2.2 表中數據的查詢
表中數據的查詢使用select語句。該語句是數據庫內容查詢的核心,使用十分靈活,可以在select語句基礎上添加查詢條件,按照該條件從數據庫中獲取數據。Select語句SQL示例代碼如下:

3.2.3 表中數據的修改
update語句可以用新值更新原有記錄的內容,即該語句用于表中數據的修改,where字句作為更新的條件。Update語句的SQL示例代碼如下:
updatefile set縱切尺寸1=34 where玻璃編號=5;//將表file中玻璃編號為5的記錄的縱切尺寸1修改為34。
update students set玻璃等級=玻璃等級+1;//將表file中所有記錄的玻璃等級加1。
3.2.4 表中數據的刪除
當數據表中包含有多余數據時,就需要刪除。使用delete語句完成,可以使用where字句來確定刪除條件,delete語句的SQL示例代碼如下:


3.2.5 表結構的修改
對創建后對表結構的修改使用alter table語句。該語句不是對表中數據進行操作,而是修改表的結構,比如為表增加一列屬性,修改表頭名字或類型,刪除一列屬性等操作。SQL示例代碼如下:

3.3 數據庫接口實現
開放數據庫互連(Open Database Connectivity,ODBC)是微軟公司提出的數據庫訪問接口標準,它可以利用SQL來完成數據庫操作任務。ODBC屏蔽了不同數據庫之間的差異,增加了程序的通用性,使應用程序開發者能夠方便的操作數據庫。使用ODBC要在計算機中配置數據源名稱(Data Source Name,DSN),數據源用于存儲建立數據庫連接的信息,系統通過數據源名稱,就可以找到與之對應的數據庫連接。
MFC中操作數據庫主要用到的類包括CDatabase類和CRecordset類。
CDatabase類:封裝了應用程序和數據庫之間的連接以及執行SQL語句的方法。MFC要與數據源建立連接,應該首先構造一個CDatabase對象,再調用CDatabase的Open成員函數建立連接。ExecuteSQL成員函數用于執行一條SQL語句,該語句不返回數據記錄,在VC中使用該函數即可執行SQL語言。以數據插入為例,示例代碼如下:

CRecordset類:封裝了操作數據庫的方法,包括瀏覽和修改記錄、排序等操作。CRecordset對象代表一個記錄集,即每一個CRecordset類的派生類都代表一張數據庫的表,使用ClassWizard可以創建CRecordset派生類,在創建過程中與MySQL數據庫中的表相關聯,創建完成后,在派生類中就會產生一組數據成員,它們與所關聯表的字段相對應,且類型匹配,因此被稱為字段數據成員。數據庫的查詢使用CRecordset類,示例代碼如下:


玻璃廠歸檔數據應用程序如圖3所示,應用程序在客戶機上運行,將數據庫的字段(玻璃編號、橫切尺寸、玻璃等級、縱切組合形式、縱切尺寸1、縱切尺寸2、縱切尺寸3、縱切尺寸4)以編輯框的形式列出,程序分為自動模式和手動模式。自動模式下每一臺客戶機自動將生產玻璃產生的數據存儲到數據庫中。手動模式下根據主要參數可以對數據庫進行插入、修改、刪除、查詢等操作。以查詢為例,當輸入玻璃等級為1,其他參數默認時,點擊查詢按鈕,即可將玻璃等級為1的記錄顯示出來,顯示結果如圖4所示。


3.4 玻璃廠歸檔數據組網
MySQL采用客戶機/服務器體系結構,客戶機通過網絡連接到數據庫服務器的程序,向服務器提交數據操作請求。數據庫服務器提供并發控制,監聽客戶機的請求,根據這些請求訪問數據庫并向客戶機提供它們所要求的數據。多個客戶機可以同時訪問相同的表,它們不必互相裁決和協商,只要發送請求給服務器并讓其確定完成這次請求的順序即可。
在玻璃廠中,生產在不同的車間同時進行,所以有眾多信息需要進行歸檔,必須形成一個數據庫網絡,使每一個廠房中的計算機都可以訪問數據庫服務器,進行數據庫存取等操作。圖5所示為玻璃廠歸檔數據網絡,每一臺客戶機分別位于不同的生產廠房內,它們通過網絡連接到服務器,每一臺客戶機都具有操作數據庫的權限。客戶機只需要安裝MySQL客戶端,在DSN配置時,將TCP/IP server的值配置為服務器的IP地址。所有由客戶機產生的數據庫記錄全部存儲在遠端的服務器上。

該文通過對MySQL數據庫在平板玻璃冷端切割數據歸檔上的應用,敘述了報表建立、維護、接口程序的編寫以及數據庫組網的方法,與傳統數據報表歸檔方法相比,避免受第三方平臺開發的限制,以及額外的費用支出等問題。同時,由于MySQL數據庫操作維護簡單,也易于工程技術人員掌握并在工程項目中應用,利用MySQL數據庫組網將有效的提高玻璃廠數據記錄的效率,增加數據存儲容量,方便廠區數據管理。因此,基于MySQL的玻璃廠工藝數據歸檔方法無論在功能上還是經濟上都具有非常廣泛的應用價值。
[1] 王志剛,江友華.MySQL高效編程[J].計算機應用,2012,31(6):63-67.
[2] 李榮國,王 見.MySQL數據庫在自動測試系統中的應用[J].計算機應用,2012,31(A02):169-171.
[3] 劉 偉.MFC數據庫訪問接口技術[J].電腦編程技巧與維護,2010,15(8):72-73.
[4] 蘭旭輝,熊家軍,鄧 剛.基于MySQL的應用程序設計[J].計算機工程與設計,2004,25(3):442-443.
Archiving Method Based on MySQL in Glass Factory Production
ZHANG Guo-jin,ZOU Ning-bo
(China Triumph International Engineering Group Co,Ltd,Bengbu 233018,China)
There are large amounts of archived data that need to be recorded in glass production,however the traditional recording methods is limited by many shortcomings.This thesis describes the archived approach for process data in glassworks based on MySQL.Combing with glass production needs,this artictle sets up an table of archived data, develops the programming interface between database and application,builds archived data networks of glass based on MySQL.
MySQL database; archive data; structured query language; open database connectivity; glass cold end
2014-08-20.
張國金(1983-),工程師.E-mail:zgj@ctiec.net
10.3963/j.issn.1674-6066.2014.05.018