基於MySQL資料庫應用開發實現嵌入式數控系統的設計

2020-12-06 電子發燒友

基於MySQL資料庫應用開發實現嵌入式數控系統的設計

鄔依林 , 黃瑛 發表於 2020-12-02 10:07:37

1 引言

本文所論述是數控系統大課題中人機互動的外圍部分子課題中的資料庫開發應用。在數控加工系統中,存在著大量的用戶設定參數、系統參數、坐標軸參數、軸補償參數和刀具特徵參數等數據。在整個生產製造系統中,這些數據不僅對於數控編程人員是必需的,而且對於實時過程控制系統、調度系統、工序處理、庫存管理系統、刀具維護管理系統等也是必需的。這些數據的組織管理方式對數控系統的實時性乃至性能影響很大,因此高性能數控系統必須解決數據的有效性組織管理問題。如果採用直接將數據存放在一個表或字符數組中,數據的修改與維護會相當困難、繁雜,這與數控系統對數據操作要求簡單方便與快捷相悖,因此這種組織管理方式不能滿足數控系統的要求。目前數控加工系統普遍採用的文本文件格式存儲管理數據的方式也存在著實時操作性較差和磁碟空間浪費嚴重的缺點,而實時性和存儲空間兩個要素對於高性能嵌入式數控系統來說卻是至關重要的。因此,在本課題研究中,作者提出在嵌入式Linux環境下的數控系統中採用基於MySQL資料庫管理數據的全新技術解決方案。實踐結果表明:在嵌入式數控系統中採用資料庫進行數據管理,滿足了高性能嵌入式數控系統在實時性和存儲空間方面的要求,提高了系統的速度,極大地改善了系統的性能。本文就嵌入式數控系統中資料庫應用開發的具體實現過程,以及如何將資料庫應用程式向嵌入式數控系統硬體平臺的移植方法和對資料庫進行最小化裁剪的技巧上做了詳細介紹。

由於本課題開發的人機界面是利用GTK+圖形庫,因此系統中採用的基於MySQL資料庫應用開發,需要解決MySQL和GTK+相互融合的問題。GTK+沒有直接操作資料庫的控制項,對資料庫的操作可以採取通過MySQL C API 直接進行,再調用GTK+ 的顯示功能的方法來完成與用戶的交互。

2 資料庫實現

2.1 資料庫的建立

2.1.1創建work資料庫

首先創建一個名稱為work的資料庫,並包含系統需要的所有表,作為根用戶連接到MySQL。具體創建過程如下:

% mysql –uroot mysql; //進入資料庫

mysql》 SET PASSWORD=PASSWORD(『lyw00001』); //為根用戶分配一個口令

mysql》 CREATE DATABASE work ; //創建work資料庫

mysql》 GRANT ALL ON work.* to lyw@localhost IDENTIFIED BY 『lyw00001』;//創建一個名為lyw的用戶

//與根用戶使用同一口令,並為用戶賦予資料庫work的完全訪問權限

% mysql –ulyw –p lyw00001 work; //連接庫

2.1.2創建表

針對基於GTK+庫設計的用戶操作界面有若干個表與之相對應,下面以一個界面為例詳細說明MySQL與GTK+的連接過程。

連接到資料庫之後,就可以向它添加內容了,使用CREATE命令來創建一個名為tbl_amend_amend的表。

CREATE TABLE tbl_amend_amend (

number INT NOT NULL PRIMARY KEY,

shapeh VARCHAR(10),

deleteh VARCHAR(10),

shaped VARCHAR(10),

deleted VARCHAR(10),);

創建一個表後,可使用SQL語句INSERT命令向表中填入數據,但這種方法當數據量大時會耗時很多。因此作者採用批處理模式向表中填入數據的方法,具體作法是:首先創建一個存儲SQL語句的文本文件amend_data.sql,如圖1所示;然後執行SQL語句:% mysql –ulyw –p lyw00001 work 就將圖1中的數據加入到tbl_amend_amend表中了,如表1所示。如果需要對數據進行修改,則只需要在amend_data.sql文本文件中進行,然後重新執行一次上文中提到的語句就可以輕鬆地完成。

圖1amend_data文本文件

表1tbl_amend_amend表

2.2 連接模塊

完成資料庫及表的創建,有了相關的數據,下一步的工作就是在應用程式中實現與資料庫的連接。應用程式中用connect_to_db()模塊實現了與資料庫work連接功能,模塊代碼如下:

void Connect_to_db(){……;

conx = mysql_init((MYSQL *)0L); //初始化

……;

temp = mysql_real_connect(conx,126.0.0.1, lyw,lywcita001, work, 0, 0L, 0);

……;}

mysql_real_connect函數用於連接到名稱為conx 的MySQL伺服器,其主機的IP位址為「127.0.0.1」,用戶名為「lyw」,密碼為「lywcita001」,連接的資料庫名為work。

2.3 填充模塊

實現了與資料庫的連接後,接下來應將資料庫的數據填充到用戶界面上去。應用程式中用Fill_clist()模塊實現數據填充功能,其實現流程為:用MySQL查詢所需的數據;將查詢結果保存在內部緩存中;將緩存中的數據顯示在用戶界面上。模塊代碼如下:

void Fill_clist(){ ……;

gchar *amend_clist_row[5] = {,,,,}; //定義gtk+數組數據指針及變量

mysql_query(conx,select number,shapeh,deleteh,shaped,deleted from tbl_amend_amend);

result_set = mysql_store_result(conx); //將查詢結果保存在內部緩存中

num_fields = mysql_num_fields(result_set); //獲得結果集中列的數量

while(db_row = mysql_fetch_row(result_set)) {

lengths = mysql_fetch_lengths(result_set); //獲得列的長度

amend_clist_row[0] = db_row[0];

……;

amend_clist_row[4] = db_row[4]; //將獲得的db_row字符串數組的值一一對應地賦值給amend_clist_row

gtk_clist_append(GTK_CLIST(modify_list),amend_clist_row); }//填充到clist對應的域中

mysql_free_result(result_set);} //釋放結果集所用的內存

編譯運行插入程序,實現了資料庫向用戶界面填充數據功能,獲得了如圖2所示的界面。

圖2 MySQL填充圖

2.4 更新模塊

當用戶在界面上對系統參數進行修改後,希望將新的數據寫入資料庫保存,確保數據信息的一致性和連續性,因此應用程式應具有根據系統參數的改變而更新資料庫的功能。與填充模塊類似,應用程式中用Update_database()模塊實現資料庫更新功能。

3 資料庫移植

3.1 移植的硬體平臺

本數控系統中採用了嵌入式PC平臺,嵌入式PC與標準PC機完全兼容。因而,可以在普通PC上做好設計和開發,再將軟體移植到嵌入式PC上。本系統開發採用嵌入式PC104計算機,硬體水平達到P3級,內存為128M,程序存儲選用128M CF[4]卡。

3.2 移植過程

要在數控系統中應用資料庫和操作界面,則需要將MySQL和操作界面應用程式移植到CF卡中。考慮到CF卡的容量問題,在移植的過程中要對資料庫進行裁剪。

3.2.1 mysqld運行伺服器的移植

要讓MySQL能運行在嵌入式系統中,那麼mysqld運行伺服器文件的移植有著至關重要的作用。用命令ldd mysqld查詢與mysqld可執行文件相關的庫,結果如表2所示:

表2 與mysqld可執行文件相關的庫文件

執行文件mysqld的大小為3.3M,而其相關的庫文件的大小約為2M,將mysqld並同上述相關的庫文件一起移植到CF卡上,這樣mysqld便可在嵌入式硬體平臺上有效地執行了。

3.2.2應用文件的移植

假定應用程式的可執行文件為app,用命令ldd app同樣可以查詢到與可執行文件app相關的庫。將應用程式連同與應用程式執行相關的庫文件一起移植到CF卡上。應用程式的大小約為100K,與應用程式執行相關聯的庫文件的大小約為8M,而這8M的庫文件大部分為嵌入式Linux系統自身帶有的庫文件,基本上不需要再移植。這樣就可在嵌入式數控系統中運行用戶操作界面程序,而在後臺運行資料庫程序了。

4 結束語

CNC技術是現代加工技術的一個重要組成部分,如何在現有的技術基礎上不斷改進數控系統以滿足新的需求具有十分重要的意義。隨著機械加工領域對數控系統的精度、效率、功能以及智能化程度[5]的進一步要求,控制面板、人機界面和系統數據組織管理方式等方面都需要不斷的完善和創新,系統數據的基於Mysql資料庫管理方式與目前數控系統普遍採用的文本文件管理方式相比,資料庫只需在一個導入文檔中修改更新數據就可以完成對數據的維護,操作簡單方便、快捷,並且資料庫索引在資料庫啟動時進駐內存,對資料庫查詢、數據記錄的刪除和添加,索引能很方便、快捷地完成;資料庫最小化裁剪後容量很小,因此,不論在實時性方面還是在存儲空間方面都滿足了高性能嵌入式數控系統的要求,提高了系統的速度,極大地改善了系統的性能。

責任編輯:gt

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 基於Android的嵌入式Web伺服器設計
    本文主要論述了基於Android系統環境,在家庭網關中實現嵌入式Web伺服器的設計方法,介紹了i-jetty嵌入式Web伺服器,及其Web應用功能的實現。 在三網融合的大背景下,通過家庭網關實現外部網絡即電視網、電信網、網際網路與家庭內部電話、電視、電腦以及家庭電器設備的通訊,是當前家居智能化、現代化的重要發展趨勢。本文的主要內容是研究基於家庭網關的嵌入式系統,實現簡單實用的Web伺服器功能,為外部網絡提供一個方便快捷地訪問和控制家庭內部資源的平臺。
  • 基於Yocto Project的嵌入式應用設計
    本設計主要基於Yocto Project在嵌入式設備上輕鬆定製嵌入式Linux應用,並實現Yocto Project的定製過程。但現有的嵌入式Linux市場開始分化,現有的選擇包括半導體廠商提供的實例方案、嵌入式OSV提供商應用的嵌入式Linux產品、嵌入式產品開發商的自有方案和開源項目等。由於缺乏一致性,造成了嵌入式開發高昂的維護成本,不僅嵌入式開發缺乏足夠的專業人員,而且開發過程存在安全漏洞問題。在Yocto Project項目中,可以使用許多高效的工具,從而輕鬆定製嵌入式Linux產品。
  • 嵌入式實時資料庫技術研究
    劉 震:博士,主要從事計算機測控、嵌入式系統及故障診斷等方面的研究;羅 欣,博士,主要從事圖象處理與模式識別、嵌入式系統等方面的研究。摘要:對嵌入式實時資料庫系統的功能進行了分析,研究了嵌入式實時資料庫系統的結構及特性,探討了在嵌入式環境下進行實時資料庫設計的內容及需要解決的相關問題,最後給出了一個基於VxWorks的嵌入式實時資料庫開發的應用實例。
  • 基於嵌入式技術的LED顯示屏控制系統淺析
    ,設計用於滿足某些專用性要求比較高的工程應用場合,這些要求可以體現在對嵌入式系統的成本、尺寸以及系統功耗等方面的特定需求,並且為了達成這種需求可以對組成嵌入式系統的軟體和硬體部分進行裁剪。針對嵌入式系統的工程項目開發不僅需要專業的嵌入式系統開發工具和集成開發環境IDE,例如IAR等,並且還需要在主機與嵌入式系統開發板之間進行交叉編譯過程。
  • 基於ARM9的數控銑床系統設計方案
    引言   目前國內使用的數控系統通常是在通用計算機或工控機的基礎上加裝運動控制卡,使用Windows作業系統,並安裝昂貴的數控軟體構成的。這樣的系統軟體成本高、硬體資源浪費、功耗大。而嵌入式產品具有系統結構精簡、功耗低等特點,能彌補傳統數控系統的不足。
  • 國產數控系統的開發及其在中檔加工中心上的應用
    由武漢華中數控股份有限公司、北京機電院高技術股份有限公司承擔的科技部863課題《國產數控系統的開發及其在中檔加工中心上的應用》,通過對三軸及三軸以上加工中心關鍵技術的研究、中試和與國產中檔加工中心的批量配套,使國產數控系統的功能、性能和可靠性達到了國際同類產品先進水平,為國產中檔數控加工中心的規模化生產奠定了基礎。
  • DTCC:MySQl核心代碼開發經驗揭示
    【IT168資訊】由IT168(ITPUB、IXPUB、ChinaUnix)主辦的2012中國資料庫技術大會(DTCC)於(以下簡稱大會)2012年4月13日~15日在北京永泰福朋喜來登大酒店隆重召開。大會將針對大數據架構設計、資料庫安全、分布式資料庫、商業智能、NoSQL、Hadoop等多個重點話題進行深入探討。
  • 0064 關係資料庫的概念和安裝使用MySQL
    上2節課學習了如何使用PHP語言和數據文件來實現完整的一個信息管理功能網頁。這節課開始學習關係資料庫的概念,以及如何安裝和使用MySQL資料庫。關係資料庫的概念資料庫就是對數據進行結構化存儲和管理的倉庫。
  • 電火花銑削加工智能化數控系統開發
    可見,電火花銑削加工數控系統與機械切削加工數控系統存在明顯的區別,開發出實用的數控系統,對電火花銑削加工的應用和發展具有十分重要的價值。1 電火花銑削加工工藝分析  電火花加工中工具與工件之間不直接接觸,維持一定的放電間隙。該間隙隨加工參數的變化而改變。在加工過程中,工件材料不斷被蝕除,工具電極也存在明顯損耗(在精加工中,工具損耗率達20 %以上) 。
  • ARM開發教程之ARM體系的嵌入式系統BSP的程序設計
    ARM公司在32 位RISC 的CPU開發領域不斷取得突破,其結構已經從V3發展到V6。BSP( Board Support Package )板級支持包介於主板硬體和作業系統之間,其功能與PC機上的BIOS 相類似,主要完成硬體初始化並切換到相應的作業系統。
  • 基於嵌入式Linux的語音識別系統硬軟體設計
    該設計運用三星公司的S3C2440,結合ICRoute公司的高性能語音識別晶片LD3320,進行了語音識別系統的硬體和軟體設計。
  • 嵌入式導航系統的組成與設計流程
    因此,以嵌入式系統為主要平臺的數碼地理整合性應用與其因應方案,也就是手持式、車載GPS全球衛星導航系統,便可解決對此人們急迫的需求性。基於S3C2440A微處理器和Win CE 5.0嵌入式作業系統,設計了一套可靠且實用的嵌入式導航系統,所提供的功能可以滿足人們現階段日常生活的需要。 1 嵌入式導航系統主要組成 嵌入式導航系統由硬體層、軟體層和中間層組成。
  • Mysql(Mariadb)資料庫主從複製
    Mysql主從複製的實現原理圖大致如下:MySQL之間數據複製的基礎是以二進位日誌文件(binary log file)來實現的,一臺MySQL資料庫一旦啟用二進位日誌後,其作為master,它資料庫中所有操作都會以「事件」的方式記錄在二進位日誌中,其他資料庫作為slave通過一個I/O線程與主伺服器保持通信,並監控master的二進位日誌文件的變化,如果發現
  • 基於PIC32的嵌入式Web伺服器的物聯網實現
    控制系統結構向網絡化、開放性方向發展將是控制系統技術發展的主要潮流。過去大量的浩如煙海的8/16位單片機的嵌入式設備,如儀器儀表、數據採集和顯示、過程控制、工業自動化、家庭自動化等的實時應用,已經到了享受網絡方便的時候了。它們將成為Internet 的發展沃土,順應「網絡服務」向「網絡應用」擴展的大潮。
  • eclipse如何使用JDBC連接mysql資料庫
    eclipse如何使用JDBC連接mysql資料庫1.在新建的Project中右鍵新建Floder2.創建名為lib的包3.創建完畢之後的工程目錄4.接下來解壓你下載的mysql的jar包,拷貝其中的.jar文件5.在工程lib
  • 嵌入式系統中USB主機控制器的設計
    過去USB僅應用於個人計算機,而在嵌入式系統領域的巨大潛力還沒有開發出來,USB在嵌入式系統中的應用包括本文將介紹在嵌入式系統中應用USB時其主機控制器的設計。
  • 嵌入式Web伺服器技術及其在電力系統中的應用綜述
    在傳統的Web應用中,Web伺服器往往與資料庫系統或者文件系統並存在一臺高性能的計算機系統中,資料庫伺服器是Web伺服器的信息來源,Web伺服器則是系統的信息發布中心,它接收來自瀏覽器的請求,並根據請求生成新的頁面發送給Web瀏覽器,完成信息在網絡範圍內的傳輸。Web伺服器檢索的信息來自資料庫系統,實時性要求不高,可以滿足常規的查詢和檢索系統的要求。
  • API快速開發平臺設計思考
    對於API網關更多的是解決運行態的問題,API網關本身應該輕量化設計,不做太多的協議轉換,適配,數據映射等工作,這些工作應該放到API開發平臺來完成。API開發平臺最終就是開發完成並暴露一個標準的Http API接口,並將接口註冊和接入到API網關。API全生命周期管理圍繞API全生命周期管理來看,整個子系統劃分如下:
  • 基於FPGA的微波輻射計數控系統設計與實現
    由於微波輻射計是一種被動式的遙感器,其靈敏度要求很高,同時,由於當今遙感儀器的設計越來越趨於高功能密度及小型化,因此,要求多通道微波輻射計的數據處理與控制系統具有高可靠性、高解析度、實時性好、體積小、重量輕、功耗低以及可移植性強等特點。以往多數微波輻射計數控系統中採用的以80C31為核心的設計,由於受微處理器晶片和外圍電路的限制,擴展性差,所佔體積較大,且需要多塊電路板協調工作,功耗較大。
  • MySQL、SqlServer、Oracle三種資料庫區別在哪裡?
    作為一個完備的資料庫和數據分析包,SQLServer為快速開發新一代企業級商業應用程式、為企業贏得核心競爭優勢打開了勝利之門。性能:Oracle 性能高 保持開放平臺下TPC-D和TPC-C世界記錄; 客戶端支持及應用模式:Oracle 多層次網絡計算支持多種工業標準用ODBC、JDBC、OCI等網絡客戶連接 使用風險:Oracle 長時間開發經驗完全向下兼容得廣泛應用地風險低缺點: