




免費預(yù)覽已結(jié)束,剩余48頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
沈 陽 航 院 設(shè) 計 用 紙前言隨著科學(xué)技術(shù)的發(fā)展,人們對自動化的要求越來越高,對于車床切削力的檢測,我院機械設(shè)計系學(xué)生原來使用的方法是通過測力儀以及動態(tài)電阻應(yīng)變儀在雙對數(shù)坐標(biāo)紙上測繪出電壓變化曲線,再根據(jù)曲線進行計算,得到力的變化曲線以及力與各車床參數(shù)之間的關(guān)系曲線和經(jīng)驗公式。這種數(shù)據(jù)采集和數(shù)據(jù)處理均靠人工進行的方法既繁瑣又不精確。而隨著電子技術(shù)的迅速發(fā)展以及微型計算機技術(shù)的普及,自動檢測技術(shù)在機械工業(yè)的發(fā)展中得到了廣泛的應(yīng)用。尤其是面向?qū)ο蟪绦蛟O(shè)計語言和單片機的出現(xiàn),使自動檢測系統(tǒng)的成本及精度得到了明顯的改觀。實驗室的切削力實驗也多采用計算機輔助測試。隨著軟件技術(shù)的快步發(fā)展,面向?qū)ο蟮某绦蛟O(shè)計語言相繼出現(xiàn),Visual Basic語言以其實用、方便、快捷、開發(fā)周期短、廣泛而強大的功能越來越被廣大編程人員所親賴,本系統(tǒng)的上位機部分就采用這種語言來編寫的。經(jīng)過調(diào)試,結(jié)果表明:此系統(tǒng)簡化了傳統(tǒng)的測量電路,工作效率高,測量準(zhǔn)確,實現(xiàn)了切削力測試系統(tǒng)的自動化。本文首先論述了整體系統(tǒng)工程的工作原理,然后是方案論證,接著分別介紹了硬件電路設(shè)計和軟件系統(tǒng)設(shè)計。 重點介紹了軟件系統(tǒng)程序的編寫過程,同時也對硬件的原理設(shè)計做了簡練的敘述,最后講述了軟件測試及軟硬件聯(lián)通調(diào)試。第1章 方案論證本車床切削力的測試系統(tǒng)分上、下位機兩部分,本文主要對上位機進行設(shè)計。上位機的主要任務(wù)是接收下位機傳送過來的切削力數(shù)據(jù),將其存儲,并對采集的數(shù)據(jù)進行處理,得到切削力與進給量,切削力與切削深度,切削力與切削速度之間的關(guān)系曲線和經(jīng)驗公式,并能顯示力的波形。圖1.1為機床切削力的計算機輔助采集與處理系統(tǒng)簡圖。測力儀將主切削力Fc轉(zhuǎn)變成電壓信號VFc;經(jīng)過電阻動態(tài)應(yīng)變儀和低通濾波放大器將信號放大;再經(jīng)過A/D轉(zhuǎn)換器轉(zhuǎn)換成數(shù)字信號,輸入給單片機或微型計算機;計算機按預(yù)編程序?qū)?shù)字信號進行分析處理與計算,將其結(jié)果(切削力測量值及經(jīng)驗公式)以及各種關(guān)系曲線和隨時間變化的力的曲線顯示出來,也可以用打印機將切削力的各種影響曲線和隨時間變化的曲線打印出來。該系統(tǒng)不僅可以測量切削力的平均值,而且可測得切削力的瞬時值,時間間隔在100us25ms之間。圖1.1 切削力的計算機輔助采集與處理系統(tǒng)框圖根據(jù)系統(tǒng)的設(shè)計要求,上位機部分可以分為用戶控制界面模塊、串口通信模塊、數(shù)據(jù)存儲模塊、數(shù)據(jù)處理模塊、曲線繪制模塊以及曲線打印模塊。以下介紹上位機的設(shè)計方案選擇。1.高級語言的選擇隨著軟件技術(shù)的快步發(fā)展,面向?qū)ο蟮膽?yīng)用程序的相繼出現(xiàn),許多設(shè)計語言都能夠?qū)崿F(xiàn)上下位機通信的編寫,像Visual Basic語言、Visual C+語言、Visual FoxPro語言等等。對于目前短期開發(fā)的系統(tǒng)而言,Visual Basic語言以其實用、方便、快捷、開發(fā)周期短、ActiveX控件豐富、可移植性好、廣泛而強大的功能越來越被廣大編程人員所親賴。似乎有些專業(yè)的編程人員也放棄了Visual C+而改用了Visual Basic之類的RAD編程工具,盡管Visual C+在靈活性、代碼緊湊、運行速度快以及底層開發(fā)等方面Visual Basic是無法與其比擬的,但編寫Visual C+應(yīng)用程序過長的調(diào)試和開發(fā)周期確實有點不適應(yīng)當(dāng)今的應(yīng)用程序開發(fā)環(huán)境。因此在本系統(tǒng)的設(shè)計中,采用Visual Basic語言來設(shè)計系統(tǒng)的上位機部分。2.界面的設(shè)計使用高級語言編程可以在PC機上編制非常友好、直觀的人機控制界面。把原來的人體直接控制變成了鼠標(biāo)、鍵盤的間接控制;并且通過直觀的控制界面可以很容易的實現(xiàn)控制,對現(xiàn)場的控制情況一目了然,增加了操作人員的視覺感、安全感,簡化了操作。用戶通過各窗體與應(yīng)用程序?qū)υ?,而程序相對于用戶是隱藏的,用戶只要求程序能實現(xiàn)他們的具體要求,而不關(guān)心程序是如何組織的,因此,一個好的應(yīng)用程序,應(yīng)該具有友好的用戶界面。3.串口通信模塊的設(shè)計由于系統(tǒng)對數(shù)據(jù)傳輸?shù)乃俣纫蟛⒉桓?,同時考慮串口的價格比并口低,因此本系統(tǒng)采用串口進行通信。Visual Basic語言的MSComm通信控件提供了一系列標(biāo)準(zhǔn)通信命令接口,它允許建立串口連接,還可以發(fā)送命令、進行數(shù)據(jù)交換以及監(jiān)視和響應(yīng)在通信過程中可能發(fā)生的各種事件和錯誤,從而可以用它建立全雙工的、事件驅(qū)動的、高效使用的通信程序。因此在設(shè)計中采用MSComm控件處理通信問題是必要的選擇。要把上位機的數(shù)據(jù)送到串行端口上以及怎樣才能把串行端口上數(shù)據(jù)接收進來,是上位機編程中的關(guān)鍵部分。4.數(shù)據(jù)處理由于系統(tǒng)要求的是單因素測力,在刀具、被切削的材料、應(yīng)變儀固定的情況下,切削力主要與三個因素有關(guān),即切削深度、切削速度、進給量。而且固定任意其中的兩個量,則切削力與剩余的一個量成指數(shù)關(guān)系,兩邊取對數(shù),則變成了線性關(guān)系,即在雙對數(shù)的坐標(biāo)紙上曲線是直線,因此在數(shù)據(jù)處理模塊采用了一元線性回歸算法,通過一元線性回歸算法計算出曲線的參數(shù)。當(dāng)然同時我們要找到切削力的實時變化曲線(這條曲線理論上是一條平行于X軸的直線,因為固定了切削深度、切削速度、進給量的情況下,切削力為一個常數(shù),而實際測量中由于干擾,直線有所起伏)。5.數(shù)據(jù)存儲在數(shù)據(jù)存儲模塊中,可以采用數(shù)組和數(shù)據(jù)庫兩種存儲方式存儲數(shù)據(jù)。使用數(shù)組存儲數(shù)據(jù)既方便數(shù)據(jù)的傳遞,又方便數(shù)據(jù)的運算處理,而下位機采集的數(shù)據(jù)僅為切削力的實時值,所以只需要采用簡單的數(shù)組對接收的數(shù)據(jù)進行存儲即可,這使得程序中數(shù)據(jù)的調(diào)用更加方便。6.曲線繪制模塊從下位機接收來的數(shù)據(jù),經(jīng)過處理運算之后,就要根據(jù)數(shù)據(jù)結(jié)果做出力與切削深度、切削速度、進給量之間的關(guān)系曲線。Visual Basic語言提供了MSChart控件繪制各種圖表。使用 MSChart 控件可以方便、直觀的按照一定的規(guī)范將數(shù)據(jù)以圖表的形式繪制出來,并且易于編程。在曲線繪制模塊中,擬采用MSChart控件顯示力的關(guān)系曲線。7.曲線打印模塊為了整個系統(tǒng)的完整性,需要設(shè)計曲線打印功能,以適應(yīng)用戶的需要。第2章 硬件電路介紹2.1 整體電路介紹車床切削力系統(tǒng)的下位機部分實現(xiàn)的功能是承擔(dān)切削力信號的采集、A/D轉(zhuǎn)換以及將數(shù)據(jù)傳輸給上位機。根據(jù)系統(tǒng)的要求,下位機硬件電路部分需要實現(xiàn)濾波、放大、A/D轉(zhuǎn)換以及數(shù)據(jù)傳輸。這樣就可以把硬件電路部分分為濾波電路、放大電路、采樣保持電路、A/D轉(zhuǎn)換電路、串口通信電路和電源電路。下位機整體電路見附錄:下位機整體電路。2.2 串行通信電路介紹上下位機進行通信,涉及到數(shù)據(jù)通信問題。數(shù)據(jù)通信方式有兩種,即并行數(shù)據(jù)通信和串行數(shù)據(jù)通信。并行數(shù)據(jù)通信是指數(shù)據(jù)的各位同時進行傳送(發(fā)送或接收)的通信方式。其優(yōu)點是傳遞速度快;缺點是數(shù)據(jù)有多少位,就需要多少根傳遞線。例如MCS-51單片機與打印機之間的數(shù)據(jù)傳送就屬于并行數(shù)據(jù)通信。并行通信在位數(shù)多,傳送距離遠是就不太適宜。串行數(shù)據(jù)通信是指外設(shè)和計算機間使用一根數(shù)據(jù)信號線(另外需要地線,可能還需要控制線),數(shù)據(jù)在一根數(shù)據(jù)信號線上一位一位地進行傳輸。如圖2.1所示:圖37 串行數(shù)據(jù)通信在串行數(shù)據(jù)通信中,起始位占用一位(低電平),用來表示字符的開始。其后為7 或8 位的數(shù)據(jù),第8位通常為奇偶校驗位,最后一位為停止位(高電平),用來表示字符傳送結(jié)束。上述字符格式通常作為一個串行幀,如無奇偶校驗位,即為常見的N.8.1幀格式。串行數(shù)據(jù)通信中,每秒傳送的數(shù)據(jù)位稱為波特率。如數(shù)據(jù)傳送的波特率為1200 波特,采用N.8.1 幀格式(10 位),則每秒傳送字節(jié)為1200 個,單個字節(jié)傳送的時間即為波特率的倒數(shù):T=1/1200=0.833ms。即每一位數(shù)據(jù)都占據(jù)一個固定的時間長度。串行數(shù)據(jù)通信突出優(yōu)點是只需一對傳送線,這樣就大大降低了傳送成本,特別適用于遠距離通信;其缺點是速度傳送較低。假設(shè)并行傳送N位數(shù)據(jù)所需的時間為t,那么串行傳送的時間至少為Nt,而實際上總是大于Nt。因此,在遠距離通信中串行數(shù)據(jù)通信可以節(jié)約通信成本,當(dāng)然,其傳輸速度要比并行數(shù)據(jù)通信傳輸慢。而通常單片機與計算機間的數(shù)據(jù)通信常采用串行數(shù)據(jù)通信的方式。EIA RS232C是串行通訊中應(yīng)用最廣泛的標(biāo)準(zhǔn)總線, 它包括了按位串行傳輸?shù)碾娖胶蜋C械方面的規(guī)定,其信號傳輸?shù)淖畲箅娎|長度為30m,最高傳輸速率為30Kbps,因此,其適用于數(shù)據(jù)傳輸速率低、通信距離短的數(shù)據(jù)通信。通常PC機配有符合EIA RS-232C規(guī)范的外部總線標(biāo)準(zhǔn)接口,RS-232C采用的是負邏輯,即邏輯“1”:5V至15V;邏輯“0”:+5V至+15V。單片機通過普通I/O 口與PC 機通訊時,由于單片機輸入輸出電平均為TTL電平,TTL電平的邏輯“1”和“0” 則分別為2.4V和0.4V。二者電平的規(guī)范不一致,因此要完成PC機與單片機的數(shù)據(jù)通訊,必須外接電路進行電平轉(zhuǎn)換。即在單片機發(fā)送端用驅(qū)動器將TTL電平轉(zhuǎn)換為RS-232C電平,在接收端用接收器將RS232C電平再轉(zhuǎn)換為TTL電平。 下位機串行接口部分選用了MAXIM公司的標(biāo)準(zhǔn)RS232接口芯片MAX3232來作TTL電平到RS232 接口電平的轉(zhuǎn)換。MAX 3232芯片是MAXIM公司生產(chǎn)的包含兩路接收器和驅(qū)動器的通用串行接收/發(fā)送驅(qū)動器芯片。該芯片適用于各種EIA-232C和V2.8/V2.4的通信接口。MAX3232芯片內(nèi)部有一個電源電壓變換器,可以用單電壓(+5V)實現(xiàn)RS232接口邏輯“1”(-3V15V)和邏輯“0”(+3V15V)。所以,采用此芯片接口的串行通信系統(tǒng)只需單一的+5V電源就可以了。對于沒有12V電源的場合,其適應(yīng)性更強。加之其價格適中,其外圍電路簡單,只需外接五個0.1F的電容即可,所以被廣泛采用。下位機所采用的單片機與計算機串行接口電路如圖2.2所示: 圖2.2 單片機與計算機串行接口電路第3章 上位機系統(tǒng)設(shè)計本論文主要介紹上位機系統(tǒng)的設(shè)計與實現(xiàn)。上位機的主要任務(wù)是接收下位機傳送過來的切削力數(shù)據(jù),將其存儲,并對采集的數(shù)據(jù)進行處理,得到切削力與進給量參數(shù)、切削力與切削深度參數(shù)、切削力與切削速度參數(shù)之間的關(guān)系曲線和經(jīng)驗公式,并能顯示和打印力的曲線以及經(jīng)驗公式。在系統(tǒng)設(shè)計時,基于Windows程序風(fēng)格而編寫。例如,在界面設(shè)計模塊中,系統(tǒng)對用戶的某些如打開的文件類型不對、本應(yīng)該輸入數(shù)字而用戶輸入了字符等其它非法的值、打開文件的路徑不對等等有可能導(dǎo)致系統(tǒng)出錯或崩潰的錯誤操作進行處理并提示用戶。系統(tǒng)還有歷史記錄的以及打印的功能,這使得系統(tǒng)的功能更加完善。依照系統(tǒng)的功能要求,系統(tǒng)設(shè)計分為用戶控制界面模塊、串口通信模塊、數(shù)據(jù)存儲模塊、數(shù)據(jù)處理模塊、曲線繪制模塊以及曲線打印模塊。整個系統(tǒng)的方框圖如圖3.1所示圖3.1 系統(tǒng)方框圖下面分別詳細介紹各個模塊的設(shè)計。3.1 用戶控制界面模塊設(shè)計使用高級語言編程可以在PC機上編制非常友好、直觀的人機控制界面。把原來的人體直接控制變成了鼠標(biāo)、鍵盤的間接控制;并且通過直觀的控制界面可以很容易的實現(xiàn)控制,對現(xiàn)場的控制情況一目了然,增加了操作人員的視覺感、安全感,簡化了操作。用戶通過各窗體與應(yīng)用程序?qū)υ?,而程序相對于用戶是隱藏的,用戶只要求程序能實現(xiàn)他們的具體要求,而不關(guān)心程序是如何組織的,因此,一個好的應(yīng)用程序,應(yīng)該具有友好的用戶界面。在本程序設(shè)計中,用戶接口界面模塊考慮實現(xiàn)了以下三個方面的特性:1.可使用性它包括: 使用的簡單性 用戶接口界面中所用的術(shù)語應(yīng)標(biāo)準(zhǔn)化和相互一致 用戶界面具有容錯能力2.可靠性使用戶接口界面能保證用戶正確可靠的使用系統(tǒng),保證有關(guān)程序和數(shù)據(jù)的安全性。3.復(fù)雜性復(fù)雜性指的是用戶接口界面的規(guī)模和組織的復(fù)雜程度,在完成用戶預(yù)定功能的前提下,應(yīng)該使用戶接口界面越簡單越好。Visual Basic 作為一種可視化編程軟件,以其優(yōu)秀的圖形化界面設(shè)計風(fēng)格而著稱。對Visual Basic 來說,窗體(Form)是用戶進行人機對話的接口界面,通過設(shè)置窗體對象,由屬性定義其外觀、由方法定義其行為、由事件定義其與用戶的交互。在這里首要的是定義其外觀。本章主要從MDI主窗體界面、子窗體界面、菜單、工具欄、狀態(tài)欄、對話框等幾個方面來介紹界面模塊的設(shè)計。3.1.1MDI主窗體界面的設(shè)計在本系統(tǒng)中,需要顯示力的實時變化曲線、力與切削深度、進給量、切削速度等共四個曲線。Visual Basic提供了多重文檔界面(MDI,multiple document interface)。建立一個MDI應(yīng)用程序,可以建立和顯示多個不同類型的文檔窗口。因此建立一個MDI作為系統(tǒng)的主窗口。在設(shè)計中考慮到Windows程序具有一致的界面的特點,添加了菜單欄、工具欄、以及快捷鍵,使用戶能夠從其它Windows程序中快速的掌握本系統(tǒng)的使用,因為保持與其它應(yīng)用程序一致的應(yīng)用程序界面使用戶更容易找到其需要使用的菜單選項,例如使用戶憑以前的經(jīng)驗便會知道數(shù)據(jù)采集時可以單擊菜單欄的數(shù)據(jù)采集菜單,也可以使用快捷鍵Alt+D,或者單擊工具欄數(shù)據(jù)采集的圖標(biāo)。1.系統(tǒng)菜單的設(shè)計菜單是一個Windows應(yīng)用程序GUI必不可少的組成部分,能夠使用戶向應(yīng)用程序發(fā)出命令。確實,很難想象一個Windows應(yīng)用程序沒有菜單。在本系統(tǒng)菜單的設(shè)計中,頂層菜單的結(jié)構(gòu)和菜單選項的放置順序與其它的應(yīng)用程序一致。使用菜單編輯器設(shè)置系統(tǒng)菜單,將系統(tǒng)需要實現(xiàn)的功能在菜單欄中體現(xiàn)出來,本系統(tǒng)的系統(tǒng)菜單如下圖3.2所示:圖3.2 系統(tǒng)菜單菜單設(shè)計完畢,下一步是使應(yīng)用程序的用戶通過鍵盤操作各個菜單選項,將用于實現(xiàn)這一步的工具是訪問鍵和快捷鍵。2.系統(tǒng)菜單快捷鍵和訪問鍵的設(shè)計應(yīng)用程序的用戶該能夠如同使用鼠標(biāo)那樣用鍵盤操作程序,鼠標(biāo)或許是這兩種輸入設(shè)備中使用較多的一個,而且它變得越來越具備滾動和無線功能。然而鍵盤自有其用處,例如有人就喜歡用鍵盤操作而不喜歡鼠標(biāo)操作,這就顯示出快捷鍵和訪問鍵的重要性。Visual Basic菜單編輯器提供了快捷鍵資源,可以在編輯菜單時將快捷鍵設(shè)定,如圖3.3所示。圖中顯示了快捷鍵的設(shè)定方法。圖3.3 快捷鍵的設(shè)定示圖上邊介紹的快捷鍵只能對子菜單設(shè)定,而在頂層菜單中是不能設(shè)定的.在頂層菜單中只能設(shè)定訪問鍵,要在菜單編輯器中給菜單控件賦值訪問鍵,則需要在要作為訪問鍵字符的前面直接鍵入一個(&),如:文件(&F)。3.工具欄的設(shè)計Windows應(yīng)用程序通常有并且應(yīng)該有工具欄,工具欄項允許快速訪問最常使用的命令,盡管工具欄按鈕的功能與菜單項相同,但工具欄按鈕有兩項優(yōu)點勝過菜單選項,一是工具欄按鈕始終可視并且可立即訪問;二是工具欄可視而且圖形化,比菜單選項的純文本對用戶更加有吸引力。本系統(tǒng)的工具欄按鈕設(shè)計簡單明了,不會給用戶帶來困惑。設(shè)計方法是:將按鈕圖標(biāo)添加到ImageList控件中,再添加一Toolbar控件,將Toolbar控件的圖像列表中設(shè)定為ImageList1,然后在Toolbar控件中插入按鈕,如圖3.4所示:圖3.4 工具欄按鈕的添加5.狀態(tài)欄的設(shè)計本著同樣的一致性原則,系統(tǒng)需要添加狀態(tài)欄,以備系統(tǒng)運行時顯示系統(tǒng)的狀態(tài)。狀態(tài)欄的設(shè)計方法是:在主窗體中直接添加StatusBar控件,然后在其窗格屬性中插入3個窗格,第一個窗格供顯示系統(tǒng)運行狀態(tài)所用,第二個窗格顯示系統(tǒng)時間,第三個窗格顯示數(shù)據(jù)采集的次數(shù)。窗格中這些狀態(tài)的顯示,需要編寫程序代碼,詳細的程序代碼請見程序清單。添加了系統(tǒng)功能所必需的菜單欄、工具欄以及狀態(tài)欄之后的主窗口界面如圖3.5所示:圖3.5 系統(tǒng)主界面3.1.2 MDI子窗體的設(shè)計系統(tǒng)要求測量主切削力,顯示主切削力的實時變化曲線以及主切削力與進給量、主切削力與切削深度、切削力與切削速度之間的關(guān)系曲線,因此添加四個子窗體用以顯示力的關(guān)系曲線。子窗體與普通窗體看上去沒有什么區(qū)別,將普通窗體的MDIChild屬性設(shè)置為True就可以將其設(shè)置為MDI子窗體。數(shù)據(jù)采集之后,經(jīng)過處理作出各種曲線以及車床切削力的經(jīng)驗公式,為了能夠?qū)⑶€和經(jīng)驗公式在子窗體中顯示出來,利用了Label、TextBox控件將經(jīng)驗公式顯示出來,利用PictureBox、MSCart、Hscroll、Vscroll等控件處理顯示了關(guān)系曲線。這樣添加四個子窗體xtime、xandap、xandf、xandv分別用于顯示力的實時變化曲線、力與切削深度、力與進給量、力與切削速度之間的關(guān)系曲線。在xtime窗體中,沒有公式要顯示,但是要對力的實時變化曲線進行縮放,因此在窗體上添加了兩個TextBox控件、兩個Label控件和一個CommandButton按鈕,其實現(xiàn)的功能將在后邊的曲線繪制模塊中介紹。3.1.3 參數(shù)設(shè)定對話框的設(shè)計在車床切削力的測量系統(tǒng)中,有些參數(shù)的值需要輸入到上位機系統(tǒng),以備數(shù)據(jù)處理所用,因此,在設(shè)計中必須有對話框能夠?qū)?shù)的值讀入系統(tǒng),這里介紹系統(tǒng)參數(shù)設(shè)定對話框的設(shè)計。在對下位機采集的數(shù)據(jù)進行處理時,需要用到電阻應(yīng)變儀標(biāo)定參數(shù)Fx、系統(tǒng)標(biāo)定修正值、系統(tǒng)放大倍數(shù)等幾個參數(shù),所以在上位機里需要對這些參數(shù)進行賦值,在窗體中通過TextBox控件賦值是最常用的方法。圖3.6是參數(shù)設(shè)定對話框的界面。圖3.6 參數(shù)設(shè)定對話框3.1.4數(shù)據(jù)采集對話框的設(shè)計在進行數(shù)據(jù)采集之前,除了對系統(tǒng)參數(shù)進行設(shè)定之外,還需要對車床參數(shù)進行設(shè)定,同時顯示本次實驗數(shù)據(jù)采集次數(shù)。數(shù)據(jù)采集對話框如圖3.7 所示:圖3.7 數(shù)據(jù)采集對話框3.1.5 修改放大倍數(shù)對話框的設(shè)計下位機放大器每一檔位的放大倍數(shù),理論上來說是一個恒定的值,但是隨著元器件的老化,放大倍數(shù)或許會發(fā)生改變,或者系統(tǒng)的放大器被重新設(shè)計而改變了放大倍數(shù),這樣使用原來的放大倍數(shù)進行數(shù)據(jù)處理便不切實際,因此在上位機系統(tǒng)中就需要對這種情況進行處理,處理的方法就將修改后的放大倍數(shù)寫進注冊表,每次運行程序進行切削力測量時都使用更改后的放大倍數(shù)。圖3.8即為修改放大倍數(shù)對話框。圖3.8 修改放大倍數(shù)對話框3.1.6 其它界面的設(shè)計考慮到系統(tǒng)的全面性,在運行此系統(tǒng)時首先進入圖3.9所示界面。圖3.9 系統(tǒng)啟動界面通過此界面選擇進入、退出系統(tǒng)或查看系統(tǒng)介紹。系統(tǒng)介紹是一個關(guān)于對話框,如下圖3.10所示:圖3.10 關(guān)于對話框至此整個系統(tǒng)的界面模塊設(shè)計已經(jīng)完成。3.2串行通信模塊設(shè)計在WINDOWS環(huán)境下,串行通信程序的設(shè)計可以通過兩種方法實現(xiàn):利用ACTIVE X控件;使用API通信函數(shù)。使用ACTIVE X控件,串口通信的實現(xiàn)非常簡單,結(jié)構(gòu)清新,缺點是欠靈活,使用API通信函數(shù)的優(yōu)缺點則基本上相反。串口通信模塊是本系統(tǒng)的重要部分,要把上位機的數(shù)據(jù)送到串行端口上以及怎樣才能把串行端口上數(shù)據(jù)接收進來,是上位機編程中的關(guān)鍵部分。3.2.1 MSComm控件簡介VB5.0/6.0提供的MSComm通信控件是專門用來實現(xiàn)串行端口數(shù)據(jù)的傳輸和接收的,為應(yīng)用程序提供了串行通信功能,是一個標(biāo)準(zhǔn)的十位串口通信控件,它提供了一系列標(biāo)準(zhǔn)通信命令的接口,它允許建立串口連接,可以連接到其他通信設(shè)備(如Modem)、還可以發(fā)送命令、進行數(shù)據(jù)交換以及監(jiān)視和響應(yīng)在通信過程中可能發(fā)生的各種錯誤和事件,從而可以用它創(chuàng)建全雙工的、事件驅(qū)動的、高效實用的通信程序。本次設(shè)計使用了MSComm控件。下面就介紹一下該控件的使用方法。1.控件屬性: commport設(shè)置并返回通信端口號。語法為:port = value value是一個整型值,表明使用的端口號。說明:在設(shè)計時,value可以設(shè)成從116的任何數(shù),但是如果用PortOpen屬性打開一個不存在的端口時,MSComm控件會產(chǎn)生錯誤68(設(shè)備無效)。在打開端口之前必須設(shè)置端號。 settings設(shè)置并返回波特率、奇偶校驗、數(shù)據(jù)位、停止位等參數(shù)。語法為: object.settings = value value是一字符串表達式,說明端口的設(shè)置值,由四個設(shè)置值組成,格式如下:“BBBB,P,D,S”其中,BBBB為波特率;P為奇偶校驗;D為數(shù)據(jù)位;S為停止為數(shù)。要值得注意的是此處的設(shè)置值一定要和單片機系統(tǒng)的串行口波特率設(shè)置值一致。 portopen設(shè)置并返回通訊端口的狀態(tài)。語法為:object.portopen= value value為一布爾表達式,說明通訊端口的狀態(tài)。說明:portopen屬性為true打開端口,設(shè)置為False關(guān)閉并清除接收和發(fā)送緩沖區(qū)。 Input返回并刪除接收緩沖區(qū)中的數(shù)據(jù)流。語法為:object.input= value 說明:inputlen屬性確定被input屬性讀取的字符數(shù)。設(shè)置inputlen為0,則input屬性讀取緩沖區(qū)中全部的內(nèi)容。Inputmode屬性確定被input讀取的數(shù)據(jù)類型。如果inputmode=cominputmodetext,則input屬性通過一個variant返回文本數(shù)據(jù);如果設(shè)置inputmode=cominputmodebinary,則input屬性通過一個variant返回一個二進制數(shù)據(jù)的數(shù)組。 InputLen設(shè)置并返回Input屬性從接收緩沖區(qū)讀取的字節(jié)數(shù)。語法為:object.inputLen= value 說明:inputLen的缺省值為0,設(shè)置inputLen為0時,使用input將使MSComm控件讀取接收緩沖區(qū)中的全部內(nèi)容。該屬性在從輸出格式為定長數(shù)據(jù)的機器讀取數(shù)據(jù)時非常有用。 InputMode設(shè)置或返回Input屬性取回的數(shù)據(jù)類型。語法為:object.InputMode = value 說明:InputMode屬性確定Input屬性如何取回數(shù)據(jù),數(shù)據(jù)取回的格式是字符串或是二進制數(shù)據(jù)的數(shù)組。 output往傳輸緩沖區(qū)寫數(shù)據(jù)流。語法為:object.output = value value是一準(zhǔn)備寫到傳輸緩沖區(qū)的一字符串。說明:output屬性可以傳輸文本數(shù)據(jù)或二進制數(shù)據(jù)。 InBufferCount返回接收緩沖區(qū)中等待的字符數(shù)。語法為:object.InBufferCount = value value是接收緩沖區(qū)等待的字符數(shù)。說明:InBufferCount是指已經(jīng)接收,并在接收緩沖區(qū)等待被取走的字符數(shù),用InBufferCount屬性設(shè)置為0來清除接收緩沖區(qū)。 InBufferSize設(shè)置并返回接收緩沖區(qū)的字節(jié)數(shù)。語法為:object.InBufferSize = value value是接收緩沖區(qū)的字節(jié)數(shù)。說明:InBufferSize是指整個接收緩沖區(qū)的大小。缺省值是1024字節(jié)。 OutBufferCount返回在傳輸緩沖區(qū)中等待的字符數(shù)。語法為:object.OutBufferCount = value 說明:設(shè)置OutBufferCount屬性為0可以清除傳輸緩沖區(qū)。 OutBufferSize以字節(jié)的形式設(shè)置并返回傳輸緩沖區(qū)的大小。語法為:object.OutBufferSize = value 說明:OutBufferSize指整個傳輸緩沖區(qū)的大小。缺省值是512字節(jié)。 Rthreshold 在MSComm控件設(shè)置CommEvent屬性為ComEvReceive并產(chǎn)生Oncomm之前,設(shè)置并返回的要接收的字符數(shù)。語法為:object. Rthreshold = value 說明:當(dāng)接收字符后,Rthreshold屬性設(shè)置為0,則不產(chǎn)生Oncomm事件。 commevent返回最近的通訊事件或錯誤。用此屬性處理在數(shù)據(jù)傳輸過程中的異常事件。2.控件事件: oncomm無論何時當(dāng)commevent屬性的值變化時,就產(chǎn)生oncomm事件。它標(biāo)志發(fā)生了一個通訊事件或一個錯誤。Commevent屬性包括實際錯誤或產(chǎn)生oncomm事件的編碼。但是,當(dāng)rthreshold或sthreshold屬性被設(shè)置為0時,則會分別使comevreceive和comevsend事件無效。3.2.2 串行通信協(xié)議在進行串行通信前,上下位機首先必須定好通信協(xié)議。通信協(xié)議決定了通信程序的編寫,因此有必要對串口通信有一定的了解。串口通信指的是將構(gòu)成字符的每個二進制數(shù)據(jù)位按照一定的順序進行傳送的通信方法。串口通信分為異步通信方式和同步通信方式。本系統(tǒng)的串行通信采用的是異步通信方式,異步通信規(guī)定了字符數(shù)據(jù)的傳送格式,即每個數(shù)據(jù)以相同的幀格式傳送。異步通信的數(shù)據(jù)傳送格式如下表3.1所示,每一幀由起始位、數(shù)據(jù)位、奇偶校驗位和停止位組成。1011空閑位起始位N(5,6,7,8)個數(shù)據(jù)位停止位空閑位表3.1 異步通信的數(shù)據(jù)傳送格式1.起始位在通信線上沒有數(shù)據(jù)傳送時處于邏輯“1”狀態(tài),當(dāng)發(fā)送設(shè)備發(fā)送一個字符數(shù)據(jù)時,首先發(fā)送一個邏輯“0”信號,這個邏輯低電平就是起始位,起始位通過通信線傳向接收設(shè)備,當(dāng)接收設(shè)備檢測到這個邏輯低電平后,就開始準(zhǔn)備接收數(shù)據(jù)位信號,起始位所起的作用就是表示字符傳送開始。2.數(shù)據(jù)位當(dāng)接收設(shè)備接收到起始位后,緊接著就會收到數(shù)據(jù)位,數(shù)據(jù)位的個數(shù)可以是5、6、7或8。3.奇偶校驗位數(shù)據(jù)位發(fā)送完之后,可以發(fā)送奇偶校驗位,奇偶校驗位用于有限差錯檢測,通信雙方在通信是約定一致的奇偶校驗方式。4.停止位在奇偶位或數(shù)據(jù)位(當(dāng)無奇偶校驗位時)之后發(fā)送的是停止位,停止位是一個字符數(shù)的結(jié)束標(biāo)志。在異步通信過程中,字符數(shù)據(jù)一個一個的傳送,在發(fā)送間隙,即空閑時,通信線路總是處于邏輯“1”狀態(tài)(高電平),每個字符數(shù)據(jù)的傳送均以邏輯“0”(低電平)開始。通信線上的字符數(shù)據(jù)是按位傳送的,每一位寬度(位信號持續(xù)時間)由數(shù)據(jù)傳送速率決定。波特率即數(shù)據(jù)傳送速率的規(guī)定:單位時間內(nèi)傳送的信息量,以每秒傳送的位表示,單位為波特。在異步串行通信中,接收設(shè)備和發(fā)送設(shè)備保持保持相同的傳送波特率,并且每個字符數(shù)據(jù)的起始位于發(fā)送設(shè)備保持同步,起始位、數(shù)據(jù)位、奇偶校驗位和停止位的約定,在同一次的傳送過程中必須保持一致,這樣才能成功的傳送數(shù)據(jù)。在本系統(tǒng)的串口通信部分,通信協(xié)議如下規(guī)定:1.通信雙方均采用2400bit/s的速率傳送和接收數(shù)據(jù)。2.數(shù)據(jù)傳送的格式如下:1位起始位,8位數(shù)據(jù)位,1位停止位,無奇偶校驗位。3.在數(shù)據(jù)采集時,上位機向單片機發(fā)送數(shù)據(jù)索取信號F0,單片機收到數(shù)據(jù)并判斷是否為數(shù)據(jù)索取信號F0,是F0,則開始采集數(shù)據(jù)并上傳,不是的話就繼續(xù)等待。下位機每進行一次數(shù)據(jù)采集時采集的數(shù)據(jù)個數(shù)為1K,然后作為一個數(shù)據(jù)包進行上傳。4.下位機上傳數(shù)據(jù)時,先發(fā)一個數(shù)據(jù)開始標(biāo)志0A,緊接著發(fā)送數(shù)據(jù),在數(shù)據(jù)結(jié)束時加一個數(shù)據(jù)的累加校驗和,累加校驗和取的是數(shù)據(jù)和的低8位字節(jié)。5.上位機接收數(shù)據(jù),判斷接收到的第一個字節(jié)是否為0A,是否收到1K數(shù)據(jù)(實際應(yīng)收到1026字節(jié),包括數(shù)據(jù)開始標(biāo)志和累加校驗和),以及累加校驗和是否一致,如果條件都滿足,則進行數(shù)據(jù)存儲、數(shù)據(jù)處理,并回送一個數(shù)據(jù)接收正確信號0D,如果不一致,則發(fā)送數(shù)據(jù)接收錯誤信號0B,并請求下位機重新發(fā)送數(shù)據(jù)。3.2.3 串口設(shè)置在進行數(shù)據(jù)傳輸前,首先要對MSComm控件的屬性進行設(shè)置即對串口進行設(shè)置。其主要程序段及說明如下:With MSComm1 .CommPort = 1 使用串行口1.Settings = 2400,n,8,1 設(shè)定波特率2400bps,無奇偶校驗,8位數(shù)據(jù)位,1位停止位.InBufferSize = 1026 設(shè)定接收緩沖區(qū)為1026字節(jié).OutBufferSize = 20 設(shè)定發(fā)送緩沖區(qū)為20字節(jié).InputMode = comInputModeBinary 設(shè)置接收數(shù)據(jù)模式為二進制形式.InputLen = 0 當(dāng)使用MSComm1.Input時,每次從接收緩沖區(qū)讀取全部字節(jié)。.SThreshold = 0 每次輸出一個字節(jié)到輸出緩沖區(qū).RThreshold = 1 設(shè)置接收一個字節(jié)后產(chǎn)生OnComm事件.InBufferCount = 0 清空輸入緩沖區(qū).OutBufferCount = 0 清空輸出緩沖區(qū) If .PortOpen = False Then .PortOpen = True If Err Then MsgBox 串口通信無效, vbCritical, 錯誤 Exit Sub End If End If End With一般來說,計算機都有一個或多個串行端口,它們依次為Com1、Com2、。這些串口還提供了外部設(shè)備與PC機之間進行數(shù)據(jù)傳輸和通信的通道,這些串口在CPU和外設(shè)之間充當(dāng)解釋器的角色。當(dāng)字符數(shù)據(jù)從CPU發(fā)送給外設(shè)時,這些字符數(shù)據(jù)將被轉(zhuǎn)換成串行比特流數(shù)據(jù);當(dāng)接收數(shù)據(jù)時,比特流數(shù)據(jù)被轉(zhuǎn)換為字符數(shù)據(jù)傳送給CPU。在本系統(tǒng)設(shè)計中直接設(shè)置串口為Com1口。3.2.4 系統(tǒng)異常處理程序設(shè)計在接收下位機上傳的數(shù)據(jù)時,正常狀態(tài)下,數(shù)據(jù)采集及傳輸在10秒內(nèi)能夠完成,但是由于系統(tǒng)的聯(lián)接或者采集的數(shù)據(jù)有丟失等等異常情況有可能出現(xiàn),因此在編寫串口程序時,要考慮周全,使系統(tǒng)能夠自行處理數(shù)據(jù)傳輸時可能發(fā)生的異常情況。下邊介紹系統(tǒng)可能發(fā)生的幾種異常情況。1. 沒有收到數(shù)據(jù)下位機上傳數(shù)據(jù)時,或者系統(tǒng)沒聯(lián)接好,或者下位機沒有開啟等原因會造成這種異常情況。2.接收的數(shù)據(jù)少于發(fā)送的數(shù)據(jù)如果通過MSComm控件一次性傳送較多的二進制數(shù)據(jù),那么很可能收到的數(shù)據(jù)不足。例如在設(shè)置為2400bps傳輸率的情況下,一次性可以傳輸2048個字符數(shù)據(jù),那么在大多數(shù)情況下一次只能收到1200個字符左右,這是因為新版的MSComm32.OCX中存在一個影響傳輸二進制數(shù)據(jù)的臭蟲(bug),但這并不是它的特性。3.數(shù)據(jù)開始標(biāo)志不是&H0A接收數(shù)據(jù)時下位機可能對數(shù)據(jù)包處理有誤,例如沒有清空緩沖區(qū)等原因,因此設(shè)一數(shù)據(jù)開始標(biāo)志作為數(shù)據(jù)包頭,包頭正確才是一包正確的數(shù)據(jù)傳送過來。4.數(shù)據(jù)的累加校驗和不一致在數(shù)據(jù)傳輸過程中,由于誤碼的存在,或者系統(tǒng)的原因,有可能導(dǎo)致數(shù)據(jù)傳輸有誤,因此有必要上下位機進行累加校驗和的驗證。程序流程圖如圖3.11所示:圖3.11 累加校驗和驗證流程圖3.2.5 串口通信程序流程圖在進行串口編程之前,要規(guī)劃好程序執(zhí)行的順序,程序流程圖是必不可少的。圖3.12是本系統(tǒng)串口部分的流程圖。3.12 串口通信模塊流程圖3.3 數(shù)據(jù)處理模塊設(shè)計根據(jù)微機和單片機達成的協(xié)議,系統(tǒng)以預(yù)定的格式傳輸,在不出現(xiàn)異常的情況下,系統(tǒng)的采集數(shù)據(jù)、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)、處理數(shù)據(jù)、存儲數(shù)據(jù)、曲線繪制等過程將連貫的執(zhí)行下來,實現(xiàn)切削力的測量。在正常接收到數(shù)據(jù)以后,將進入數(shù)據(jù)處理模塊,然后對處理的結(jié)果以文件形式保存,在一次數(shù)據(jù)采集之后,要先對力的數(shù)據(jù)進行保存,關(guān)于數(shù)據(jù)存儲將在下一章介紹。切削力測量的主要目的是畫出切削力的關(guān)系曲線以及建立切削力的經(jīng)驗公式。本系統(tǒng)采用最簡單的方法即單因素法處理數(shù)據(jù),即在固定其它因素,只改變一個因素的條件下,測出切削力,然后處理數(shù)據(jù),建立經(jīng)驗公式。在處理采集來的切削力數(shù)據(jù)時,有圖解法可以使用,圖解法的優(yōu)點是作出的圖形比較直觀,運算比較簡便。但是在作圖連線時有一定的主觀性誤差,得出的經(jīng)驗公式往往精度不夠高。在本模塊中,采用回歸分析法處理數(shù)據(jù)可以解決這個問題。3.3.1 一元線性回歸法如果在切削力的測量中,只有一個自變量x,因變量y,測得一系列的數(shù)據(jù)(,),(i=1,2,3,n)。若已知變量x,y之間的關(guān)系是(或近似是)線性關(guān)系,則可以設(shè)它們的回歸方程為= + (3.1)式(3.1)所決定的圖形為回歸直線,和稱為回歸方程中的回歸系數(shù)。實際測量值與回歸值的差值為-=- (3.2)式3.2表示與回歸直線的偏離程度。測量值與回歸值的偏差平方和為= (3.3)根據(jù)最小二乘法原理,即,為最小,可以求得和的值。由極值原理,和是下列方程組的解: =-2=0 (3.4) =-2=0解上方程組可得: =- (3.5) = (3.6)式中 , (3.7)令= (3.8)= (3.9) = - (3.10)則式3.6可寫為 (3.11)由式3.5和3.6或式3.11,可求得、的值,從而得出回歸方程。求得回歸方程后,還要檢驗它是否符合變量y與x之間的規(guī)律,用它來預(yù)報y的精度如何。習(xí)慣用相關(guān)系數(shù)來檢查。相關(guān)系數(shù)為 (3.12)式中 回歸平方和= (3.13)又可以寫為= (3.14)如果|r|1,則說明所有測量值的點都在回歸直線上,此時稱x與y完全相關(guān)。若|r|0,則回歸線方程無意義,或為曲線相關(guān)。希望|r|接近于1。3.3.2 數(shù)據(jù)處理程序設(shè)計根據(jù)一元線性回歸算法,可以方便的設(shè)計出數(shù)據(jù)處理程序。從下位機接收來的數(shù)據(jù)被暫存在數(shù)組中,這更方便了數(shù)據(jù)的處理。下位機采集的數(shù)據(jù)經(jīng)過A/D轉(zhuǎn)換器之后存在這樣一個轉(zhuǎn)換公式: (3.15)因此,在程序設(shè)計時要將收到的數(shù)據(jù)二進制的每一位都取出來,以便能夠?qū)⒌玫降臄?shù)字量轉(zhuǎn)換為模擬量,從而計算出實際的力的數(shù)據(jù)。這段程序設(shè)計的流程圖如圖3.13所示:圖3.13 數(shù)字量轉(zhuǎn)換為模擬量的流程圖圖3.13中得到的模擬量存放在數(shù)組lastdata(j)中,其表示的數(shù)值實際上還不是真正力的數(shù)值,還要乘以車床參數(shù)、修正系數(shù),除以放大倍數(shù),轉(zhuǎn)換為真正力的數(shù)值。根據(jù)一元線性回歸法可知,關(guān)系曲線的繪制和經(jīng)驗公式的求解需要分別計算出力與切削深度、進給量、切削速度經(jīng)驗中式中、和的值,這段關(guān)于、和的值的計算程序代碼詳見程序清單。3.4 數(shù)據(jù)存儲模塊設(shè)計數(shù)據(jù)處理之后,要對結(jié)果進行存儲,以備以后分析使用。設(shè)計中使用數(shù)組存儲接收過來的切削力的數(shù)據(jù),另外,系統(tǒng)開辟了dap、dxf、dxv、dxt四種類型的文件以存儲各種曲線的數(shù)據(jù)。將曲線以數(shù)據(jù)的形式保存到各種類型的文件中,當(dāng)打開這些文件時,系統(tǒng)自動將所表示的曲線繪制出來,數(shù)據(jù)存儲模塊的流程圖如圖3.14所示。圖3.14 數(shù)據(jù)存儲流程圖現(xiàn)在我們經(jīng)常使用的IE、Word和VB都有歷史記錄功能菜單,最常見的莫過于Windows開始菜單的文檔中的歷史記錄功能,它至少可以記錄15個曾經(jīng)使用過的文檔或程序。再次運行這些文檔或程序時,只需直接調(diào)用它們即可,使用起來非常方便。本著與Windows風(fēng)格一致的原則,本系統(tǒng)同樣設(shè)置了此項功能,在將曲線以數(shù)據(jù)的形式存儲之后或者將已存儲的文件打開時,要將文件名添加到歷史記錄中去。添加及顯示歷史記錄文件功能的流程圖如下圖3.15所示。圖3.15 添加及顯示歷史記錄文件流程圖3.5 曲線繪制模塊設(shè)計切削力與切削深度、進給量、切削速度之間是指數(shù)的關(guān)系,、曲線分別表達了切削深度、進給量、切削速度的單項切削力指數(shù)公式:; ; 如在等號兩邊取對數(shù),則Lg=Lg+LgLg=Lg+LgLg=Lg+Lg故、在雙對數(shù)曲線上是直線。有了這個線性關(guān)系,再根據(jù)上一章的一元線性回歸算法處理的數(shù)據(jù)就可以求出切削力的經(jīng)驗公式并畫出力的關(guān)系曲線(在雙對數(shù)坐標(biāo)上顯示的是一條直線)。本章采用MSChart控件十分簡單的調(diào)用數(shù)組里的數(shù)據(jù),把各曲線顯示出來。在使用MSChart控件時,首先要將ChartType屬性設(shè)置為VtChChartType2dXY(2D XY 散點圖)。曲線繪制時,有幾種情況,一種是繪制剛剛采集的還未保存的力的數(shù)據(jù)的各種曲線,一種是繪制已經(jīng)保存成文件的力的各種曲線。第一種情況下,直接調(diào)用數(shù)據(jù)處理后的數(shù)據(jù)進行曲線繪制;第二種情況下,是調(diào)用文件中保存的數(shù)據(jù)進行曲線繪制。3.5.1 力的實時變化曲線的繪制無論是繪制剛采集完的切削力數(shù)據(jù)曲線,還是繪制已經(jīng)保存成文件的數(shù)據(jù)曲線,其設(shè)計方法都是相同的。即通過調(diào)用數(shù)據(jù),在MSChart控件中使用ChartData屬性,進行曲線的繪制。這段主程序代碼如下:If MDIsystem.CommonDialog1.filename Then 判斷是否打開文件 For i = 1 To 1024 xtimedata(i, 2) = lastdata(i) xtimedata(i, 1) = i Next i MSChart4.ChartData = xtimedataElseIf counter 0 And MDIsystem.CommonDialog1.filename = Then 判斷是否查看剛采集完的切削力數(shù)據(jù) For i = 1 To 1024 xtimedata(i, 2) = 0.1 * lastdata(i) * Fxparameterdata * systemamenddata * 9.8 / amplify xtimedata(i, 1) = i Next i MSChart4.ChartData = xtimedata ElseIf historynum 0 Then 歷史紀(jì)錄? For i = 1 To 1024 xtimedata(i, 2) = lastdata(i) * 0.1 * Fxparameterdata * systemamenddata * 9.8 / amplify xtimedata(i, 1) = i Next i MSChart4.ChartData = xtimedataElse 沒有曲線顯示,否則將有隨機曲線顯示 For i = 1 To 2 xtimedata(i, 2) = 0 xtimedata(i, 1) = 0 Next i MSChart4.ChartData = xtimedata End If3.5.2 力的實時變化曲線的放大1024個數(shù)據(jù)在MSChart圖表中顯示,這樣不易看出曲線的變化,所以需要對曲線放大,取一局部的曲線顯示出來,以供觀察。由于數(shù)據(jù)都存儲在數(shù)組中,因此使這一功能的實現(xiàn)非常簡單,用戶可以隨意查看某一局部曲線的力的變化情況。主程序代碼如下:ReDim amplifyafter(1 To secondnum - firstnum + 1, 1 To 2) As Single 定義需要放大的局部數(shù)據(jù)的數(shù)組For i = 1 To secondnum - firstnum + 1 amplifyafter(i, 2) = 0.1 * lastdata(i + firstnum - 1) * Fxparameterdata * systemamenddata * 9.8 / amplify amplifyafter(i, 1) = i + firstnum - 1Next I取出局部數(shù)據(jù)MSChart4.ChartData = amplifyafter3.5.3 力與各參數(shù)關(guān)系曲線的繪制數(shù)據(jù)處理之后得到數(shù)據(jù)、和,然后根據(jù)一元線性回歸法的原理在對數(shù)坐標(biāo)軸上繪制出各種曲線。MSChart控件可以通過Type屬性返回或設(shè)置坐標(biāo)軸的刻度類型。設(shè)置雙對數(shù)坐標(biāo)的主要程序代碼如下: Dim axisID As VtChAxisId 為二維折線圖改變 x 和 y 軸為對數(shù)刻度。 For axisID = VtChAxisIdX To VtChAxisIdY With MSChart.Plot.Axis(axisID).AxisScale .Type = VtChScaleTypeLogarithmic .LogBase = 10 End With Next3.6曲線打印模塊設(shè)計系統(tǒng)設(shè)計了打印程序,以實現(xiàn)整個系統(tǒng)功能的完整性。為了將曲線和經(jīng)驗公式一并打印出來,設(shè)計時采用了打印窗體的方法。在Visual Basic中,在繪制圖形時,如果 AutoRedraw 屬性為 True,則在運行時PrintForm 將打印 Form 對象或 PictureBox 控件上的圖形。因此可以使用PrintForm方法打印窗體。PrintForm方法可以將窗體對象的圖像逐位發(fā)送給打印機,而將Form對象的全部可見圖像和位圖打印出來。Printers 集合允許對可用打印機進行查詢,這樣就可以為自己的應(yīng)用程序指定缺省打印機,可以查出哪種可用打印機使用特定的打印機驅(qū)動程序??梢杂?Set 語句指定 Printers 集合中的某一打印機為缺省打印機。在模塊Module2中定義printproc過程以實現(xiàn)打印功能。程序設(shè)計了對所有可用打印機進行搜索,對第一個打印機定位,并將其走紙方向設(shè)置為縱向,然后將打印機設(shè)置為缺省打印機。程序代碼見程序清單。第4章 所用開發(fā)工具簡介本系統(tǒng)的上位機部分,是采用Visual Basic程序語言設(shè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲行業(yè)衛(wèi)生消毒制度流程
- 2025至2030全球及中國基于使用的保險行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030兒童家具行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國衡陽市酒店行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國私人合約保安服務(wù)行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國社交網(wǎng)絡(luò)行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國直接粗紗行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國登山款鞋行業(yè)市場發(fā)展態(tài)勢及發(fā)展趨勢與發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國甘精胰島素行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國珠寶鑲嵌產(chǎn)品市場銷售格局與前景競爭對手分析報告
- 校園除草課件
- DL∕ T 1166-2012 大型發(fā)電機勵磁系統(tǒng)現(xiàn)場試驗導(dǎo)則
- 濕熱滅菌工藝驗證方案1
- 2024年廣東省初中學(xué)業(yè)水平考試生物押題卷
- 網(wǎng)絡(luò)安全知識競賽考試題庫300題(含答案)
- 國開電大2023年春季期末考試《機械CAD、CAM》試題及答案(試卷代號1119)
- 審計 第7版 課件 第10章采購與付款循環(huán)審計
- 八年級親子共評
- 國際財務(wù)報告準(zhǔn)則
- 初中數(shù)學(xué)-專項24 圓內(nèi)最大張角米勒角問題
- 行政單位酒店住宿合同
評論
0/150
提交評論