軟體是虛擬儀器的關鍵。設計一個虛擬儀器系統,在硬體平臺確定之后,就可以通過設計不同的軟體,實作不同的儀器功能。
在設計、實作虛擬儀器的軟體系統時,需要考慮眾多因素,如硬體需求、計算機硬體、作業系統;軟體是否建立在開放的結構上,是否需要編程經驗?利用此軟體程式是否能在不同的計算機平臺上移植?將來能否方便的擴展虛擬儀器的功能。由于選用專用的開發軟體,必須具有一定的儀器以及資料采集設備配合使用。
程式模塊化設計概述
資料采集系統的性能在很大程度上取決于其應用軟體的研究與開發,所以在明確了系統設計目標之后,應該采用好的程式開發方法,如結構化設計方法、模塊化思想、多執行緒以及軟體系統的評價標準等等。
程式設計的模塊化原則
模塊化結構是所有設計良好的軟體系統的基本特點,任何一個大的程式系統,總是由若干功能相對獨立的模塊組成。好的軟體結構應體現自頂向下的控制方式,模塊之間的控制表現為統帥和從屬的關系[13]。
圖4.1 模塊化結構
資訊抽象與資訊隱含是模塊的基本特征。模塊(Module)實際上反映了資料(Data)與程序(Process)的抽象。在模塊化問題求解時,在最高抽象級可以采用面向問題的環境語言的抽象術語進行描述;而在較低抽象級,則可采用程序性術語。模塊化的概念加上逐步求精的辦法,就把面向問題的術語和面向實作的術語兩者結合起來。
模塊獨立性有兩個定性的標準度量:即塊行內系(內聚)與塊間聯系(耦合),如圖4.1所示。塊間聯系是指模塊之間的聯系,塊間聯系越小,模塊獨立性越高。塊行內系是指模塊內部各部分(陳述句與陳述句段)之間的聯系。一個模塊的塊行內系大,模塊獨立性會提高。好的模塊結構,塊間聯系應盡可能小,塊行內系應盡可能大。
軟體系統的模塊化設計原則
為使研制出的軟體具有良好的可靠性、易維護性、易擴充性及易裝卸性,軟體設計應遵循規范化的模塊化設計原則[13]。
1)自頂向下逐步求精的設計方法
軟體設計往往在開始時不了解問題的全部細節,只能對問題做出全域性的決策,即設計表征解決問題一般策略的抽象演算法。對抽象演算法做進一步求精,進入下一層抽象。在求精程序的每一步,抽象概念(陳述句或資料)都被精細化。
2)根據邏輯功能劃分物理模塊
① 模塊的分解:消除重復的功能部分,使得模塊的塊行內系較高,塊間聯系較低。
② 模塊的合并;
③ 模塊的復制。
3)模塊的作用范圍應處在模塊的控制范圍之內
模塊的作用范圍是指模塊內判定影響的范圍。只要某模塊中含有依賴于某種判定操作,則該模塊就處于該判定的作用范圍之內。
4)依據邏輯功能確定模塊之間的呼叫關系
模塊之間的呼叫與被呼叫,決定于模塊各自的邏輯功能,因而對模塊的扇入扇出并無加以限制的必要。一般來講,底層模塊的扇入較高,頂層模塊的扇出較高。
5)模塊介面應保持簡明
降低模塊介面的復雜性,是模塊設計中必須考慮的問題。保持模塊介面的簡明,一方面須減少模塊間傳遞的資訊量,更重要的是使所傳遞的必要資訊具有明確的邏輯含義。
6)模塊應保持單入口性質
單入口模塊,易于理解。由于副作用的減少,可以降低錯誤的發生率。模塊的出口可以有多個,但均應具有明確的邏輯含義。
7)模塊結構增加中間判斷層次,提高可擴充性
圖4.2-a,模塊A呼叫B,以后擴充時還要讓A呼叫C(圖4.2-b)。這樣在擴展時,除增加C外,尚須修改A,這種修改可能是困難的。
圖4.2-c ,增加了一個中間判斷層模塊F,以一個開關量Flag決定模塊A要呼叫的模塊,這樣對A的修改,僅局限于Flag的設定,大大較少了作業量。
圖 4.2 模塊結構增加判斷層次
本設計的軟體系統模塊劃分
系統程式的主要功能為模塊劃分的標準,其他包括系統管理,資料采集,資料保存,歷史資料的查詢等功能。具體結構見圖4.3多通道資料采集功能模塊圖。
圖4.3多通道資料采集功能模塊圖
資料庫技術
資料庫技術主要研究如何存盤、使用和管理資料,是計算機資料管理技術發展的新階段,也是計算機技術中發展最快、應用最廣的技術之一。當前,資料庫技術已成為現代計算機資訊系統和應用系統開發的核心技術,資料庫已成為計算機資訊系統和應用系統的組成核心,從某種意義來講,資料庫的建設規模、資料庫資訊量的大小和使用頻度已成為衡量一個國家資訊化程度的重要標志。
資料庫技術概述
資料庫技術涉及到以下幾個最重要的概念:
1)資料庫(DataBase)是長期儲存于計算機內、有組織的、可共享的資料集合。資料庫中的資料按一定的資料模型組織、描述和儲存,具有較小的冗余度、較高的資料獨立性和易擴展性,并可為一定范圍內的各種用戶共享。資料庫不僅要反映資料本身的內容,而且要反映資料之間的聯系。在資料庫中用資料模型(DataModel)這個工具來抽象、表示和處理現實世界中的資料和資訊。
2)資料模型是資料特征的抽象,描述的是資料的共性。資料模型應滿足三個方面的要求:一是能比較真實地模擬現實世界;二是容易為人們所理解;三是便于在計算機上實作。一種資料模型要很好地滿足這三個方面的要求在目前尚很困難,在資料庫系統中針對不同的使用物件和應用目的,采用逐步抽象的方法,在不同層次采用不同的資料模型,一般分為三層,即物理層、邏輯層和概念層。
物理層是資料抽象的最低層,用來描述資料物理存盤結構和存盤方法。
邏輯層是資料抽象的中間層,描述資料庫資料整體的邏輯結構。
概念層是抽象級別的最高層,其目的是按用戶的觀點來對世界建模。例如物體-聯系模型(Entity-Relational Model,簡稱ER模型)。
3)資料庫管理系統(DBMS,DataBase Management System)是操縱和管理資料庫的軟體系統,它由一組計算機程式構成,管理并控制資料資源的使用。它是資料庫系統的核心,主要是實作對共享資料有效的組織、管理和存取,它的基本功能包括以下幾個方面:
① 資料定義功能:對資料庫的結構進行描述,包括外模式、模式、內模式的定義;資料庫完整性的定義;安全保密定義(如用戶口令、級別、存取權限);存取路徑(如索引)的定義等。
② 資料操縱功能:DBMS還提供資料操縱語言,用戶可以使用DML操縱資料,實作對資料庫的基本操作,如檢索、插入、洗掉和修改等。DML有兩類:一類是宿主型語言,一類是自立型語言。
③ 資料庫的運行管理:資料庫在建立、運用和維護時由資料庫管理系統統一管理、統一控制,以保證資料的安全性、完整性、多用戶對資料的并發使用及發生故障后的系統恢復,從而保證資料庫系統的正常運行。
④ 資料組織、存盤和管理功能:DBMS要分類組織、存盤和管理各種資料,包括資料字典、用戶資料、存取路徑等。
⑤ 資料庫的建立和維護功能:它包括資料庫初始資料的輸入、轉換功能,資料庫的轉儲、恢復功能,資料庫的重組織功能和性能監視、分析功能等。
⑥ 其他功能:DBMS與網路中其他軟體系統的通信功能、DBMS之間或檔案系統的資料轉換功能;異構資料庫之間的互訪和互操作功能等。
ADO與資料庫的互動技術
ADO是獨立于開發工具和開發語言的資料訪問介面,它提供了程式開發人員、應用程式實時存取各類資料庫的能力,可以輕松地完成對各類資料庫的查詢,存取等操作。ADO又被稱為通用資料訪問(UDA),其資料源包括資料庫,電子郵件,檔案,文本,圖形等。使用ADO不僅可以讀取Access和SQL Server資料庫,也可以讀取其他與ODBC兼容的資料庫。ADO對資料庫的操作步驟一般分為如下幾步:
① 創建資料源名(DSN);
② 創建資料庫連接(Connection);
③ 創建資料庫物件;
④ 操作資料庫;
⑤ 關閉資料庫物件和連接。
MySQL資料庫
MySQL是一個小型關系型資料庫管理系統,開發者為瑞典MySQL AB公司。目前MySQL被廣泛地應用在Internet上的中小型網站中。由于其體積小、速度快、總體擁有成本低,尤其是開放原始碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫。
SQL是一種標準化的語言,它使得存盤、更新和存取資訊更容易。例如,你能用SQL語言為一個網站檢索產品資訊及存盤顧客資訊,同時MYSQL也足夠快和靈活以允許你存盤記錄檔案和影像。
MYSQL主要目標是快速、健壯和易用。MYSQL建立的基礎是業已用在高要求的生產環境多年的一套實用例程。盡管MYSQL仍在開發中,但它已經提供一個豐富和極其有用的功能集。
MYSQL的主要特點如下:
1)完全多執行緒,適于多CPU使用。
2)提供C、C++、JAVA(JDBC)、Perl、Python、PHP and TCL的API介面。
3)多平臺,包括:Solaris、SunOS、BSDI、SGI、IR-IX、AIX、DEC、UNIX、Linux FreeBSD、SCO OpenServer、NetBSD、OpenBSD、HPUX、Win9x and NT.(各臺支持的功能不盡相同)。
4)資料型別多樣,包括:有/無符號1,2,3,4,8位元組INT、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、LOB、DATE、DATETIME、YEAR、SET、ENUM。
5)非常靈活和安全的權限系統,密碼加密。
6)為Win9X提供ODBC介面,可通過Access與之相聯,另有第三方開發商提供多樣的ODBC驅動程式。
7)可處理大型資料(超過5千萬個記錄),表大小限于OS的檔案大小:Linux為2G,Solaris 2.5.1為4G,Solaris 2.6為1000G。
8)經權威商業記憶體泄露軟體檢測無記憶體泄露。
9)多種語言支持。
Web技術
Web技術概述
Web技術的迅猛發展,使全人類都能共享Web上的各類資源,包括功能強大的計算資源、海量資訊的資料庫資源、五花八門的多媒體資訊資源、門類齊全的軟體工具資源等,這些使得任何人能在任何時間、任何地點和任何設備上獲得所需要的資訊資源。
從本質上講Web技術是各種技術的集成與綜合應用,它以TCP/IP協議為基礎,使用HTML描述網路的資源,通過超文本(Hypertext)、超媒體(Hypermedia)技術實作超級鏈接,無論文本、圖形,還是影片、聲音都能通過文擋中的鏈接連接到服務器上的其它檔案或其它站點,使客戶以用互動方式快速地搜索所需要的資料,通過表單供用戶填寫并通過服務器應用程式提交給資料庫等。
自從Web的產生到現在,Web技術已從最初簡單的檔案的瀏覽發展到當今復雜電子商務的應用,其間共經歷了靜態文檔、動態互動頁面和實時可伸縮的事務處理三個階段。
從靜態技術到動態技術,從開發平臺到應用模型,從傳統Web到語意化Web,Web經歷了一次又一次的技術浪潮,也面臨更為嚴峻的技術挑戰。Web 1.0的主要特點在于用戶通過瀏覽器獲取資訊,而Web 2.0則更注重用戶的互動作用,用戶既是網站內容的消費者(瀏覽者),也是網站內容的制造者。主要包括:博客 (BLOG)、RSS、百科全書(Wiki)、網摘、社會網路(SNS)、P2P、即時資訊(IM)、智能搜索引擎等。
Web客戶端開發技術有VB、VC、PB等。服務器端開發技術有ASP、JSP/Servlet、JDBC、JavaBean、PHP等。使用這些技術生成動態頁面、操縱資料庫、建立Web站點。近年來在Web服務端更多Web開發環境支持MVC(Model-View-Contorller)設計模型,為開發者提供了全套的開發框架。
評估一種Web開發技術優劣的標準只有一個,那就是看這種技術能否在最恰當的時間和最恰當的地點,以最恰當的方式,為最需要資訊的人提供最恰當的資訊服務。
基于Web技術的應用系統,用戶直接面對的是客戶端瀏覽器,用戶在使用系統時,請求之后的事務邏輯處理和資料的邏輯運算由服務器與資料庫系統共同完成,對用戶而言是完全透明的,運算后得到的結果再通過瀏覽器的方式回傳給用戶。這個程序可分成一些子步驟,每一個子步驟的完成可理解為通過一個單獨的應用服務器來處理,這些應用服務器在最終得到用戶所需的結論之前,相互之間還會進行一定的資料交流和傳遞。如圖4.4所示。
圖4.4 Web應用結構簡圖
PHP技術
PHP(Hypertext Preprocessor)是一種用于創建動態Web頁面的服務器腳本語言。PHP大量采用C、Java和Perl語言的語法,并加入了一些PHP自己的特征。PHP支持HTTP的身份認證,支持Cookie,支持GIF影像創建等。其中,最有代表性的特點在于它強大的資料庫支持功能,所有主流與非主流資料庫它幾乎都支持,這使得撰寫基于資料庫的網頁變得非常簡單。
1)PHP的特性
① 易學易用
PHP的語法結構借用了C、Perl的優秀部分,有以上語言編程經驗的開發人員可快速地掌握PHP并將其投入實際使用。
② 運行速度快
PHP采用HTML內置標記技術,解釋程式本身可以作為Web服務器的一個模塊運行,有效地提高了運行時的決議速度。經測驗表明,在Web站點訪問量非常大時,PHP的決議速度相當于傳統CGI程式的4倍!
③ 跨多個平臺
目前PHP可在Windows、UNIX、Linux的Web服務器上正常運行,支持IIS、Apache等通用Web服務器。
④ 強大的資料庫支持
PHP直接為很多資料庫提供內置的鏈接,包括Oracle、SyBase、PostgreSQL、MySQL、Informix、DBASE、SOLID、Access等,并完全支持ODBC介面,凡是支持ODBC介面的資料庫,PHP都可以為其提供有力的支持。
⑤ 先進的擴展功能
PHP不但內置了對檔案上傳、密碼認證、Cookies操作、郵件收發、動態GIF生成等功能的支持,還提供了對GZIP檔案、PDF、XML的直接支持。
⑥ 完全免費
2)PHP的作業方式
① 嵌入HTML的方式
傳統的程式設計語言所編制程式的源代碼都要經編譯程式編譯后生成一個可執行的檔案。而PHP腳本是經PHP解釋器生成的顯式的HTML標識,不必編譯成可執行檔案。用戶可以把程式代碼嵌入到HTML中。
② PHP運行在服務器端
PHP腳本在Web服務器端的運行方式是:當Web服務器接收到一個Web頁面請求時,若請求的是HTML檔案,則Web服務器直接把檔案提供給瀏覽器解釋執行;若請求的是以PHP為擴展名的檔案,則Web服務器先執行程式php.exe對兩個PHP分界符號之間的PHP程式進行分析,然后再根據程式運行時各種不同的條件將PHP程式轉換為相應的HTML代碼,再把HTML代碼提供給客戶端的Web瀏覽器。
圖4.5 PHP在服務器端運行方式
遠程資料訪問系統
該部分設計是整個系統的附加設計部分,主要是為了實作資料的遠程訪問,通過資料庫與資料采集系統連接為一體。采集資料的遠程訪問體現了資料采集的網路化的延伸。該遠程訪問系統是采用Apache+PHP+MySQL開發套件進行開發的。當然,這部分需要配置服務器,網上很多資料可以參考。主要是利用PHP建立資料庫的連接,在本設計中主要實作了用戶登錄頁面,檢索條件輸入頁面,結果回傳頁面。具體實作代碼見附錄。
多執行緒技術
為了實作多通道資料采集的功能,本設計的軟體部分必須實作信號的采集、資料的分析處理、定時存盤及實時顯示等功能。在用戶看來,這些任務是同時進行著的。實際上,信號采集、定時存盤和主控模塊放在不同的執行緒中,利用Windows作業系統的多執行緒機制,使得各個功能模塊能夠有條不紊的運行。
本設計把用戶命令輸入、信號動態顯示和歷史資料的查詢、分析處理放在主執行緒中實作,而把信號采集和定時存盤功能分別放到兩個作業執行緒中。
Windows的多執行緒機制
Windows是一個多任務作業系統,每個運行的程式對應著一個行程,而在一個行程內又可以有幾個執行緒。Windows系統把CPU的運行分成許多小的時間片,按各個行程和行程內執行緒的優先級進行分配,從而使多個程式能“同時”運行。在同一行程內的不同執行緒都在自己的時間片內執行,避免了相互在時間上可能的沖突。
LabVIEW與多執行緒
應用多執行緒技術,可以使得多個獨立的任務并發執行,從而極大地提高程式的效率。LabVIEW把執行緒管理、執行緒間的通信等復雜操作封裝了起來,因此用戶可以不用學習復雜的多執行緒編程就可以撰寫多執行緒程式。在LabVIEW中,圖形化編程為開發多執行緒代碼帶來了很大的好處,因為在資料流的編程環境中,用戶可以很容易地“看到”并行代碼,例如兩個獨立的回圈或子VI就代表兩段可以并發執行的代碼。
多執行緒的優點:
1)更高的CPU利用率
2)更高的系統可靠性
3)提高在多處理器計算機上的執行速度
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/57859.html
標籤:單片機/工控
