1 引言
目前,高溫蠕變、松弛、持久強(qiáng)度試驗(yàn)機(jī)已經(jīng)不是傳統(tǒng)意義上的單臺(tái)試驗(yàn)機(jī),而是由多臺(tái)試驗(yàn)機(jī)和多臺(tái)控制器組成的集散式控制系統(tǒng)。這個(gè)系統(tǒng)若想按照一定的規(guī)律安全穩(wěn)定地運(yùn)行,離不開(kāi)一套功能強(qiáng)大的軟件。因此,開(kāi)發(fā)能夠適應(yīng)集散式系統(tǒng)的控制器軟件是十分必須的。隨著航空航天事業(yè)的不斷發(fā)展,高溫材料也在不斷地向前發(fā)展,這就給蠕變?cè)囼?yàn)機(jī)控制系統(tǒng)提出了更高的要求。所以,本套軟件在研發(fā)之初就充分考慮了其長(zhǎng)時(shí)性、通用性和高效性,尤其是長(zhǎng)時(shí)性,如果程序在邏輯上和結(jié)構(gòu)上設(shè)計(jì)不夠合理,很可能會(huì)在內(nèi)存中產(chǎn)生大量的垃圾碎片,甚至還可能會(huì)發(fā)生內(nèi)存泄露。這些垃圾碎片不僅會(huì)影響系統(tǒng)運(yùn)行的速度,如果長(zhǎng)時(shí)間得不到清理,還會(huì)發(fā)生不可預(yù)知的錯(cuò)誤,甚至可能會(huì)引起死機(jī)。因此,本套軟件以visual C++6.0作為軟件的開(kāi)發(fā)平臺(tái),采用多線程技術(shù)來(lái)實(shí)現(xiàn)并發(fā)處理,通過(guò)不斷地整理內(nèi)存碎片、釋放內(nèi)存空間等操作來(lái)避免這類(lèi)現(xiàn)象的發(fā)生。另外,控制器在集散式系統(tǒng)中作為一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),它還具備以太網(wǎng)通訊的能力,使控制器的數(shù)據(jù)吞吐能力明顯增強(qiáng)。
2 設(shè)計(jì)背景
蠕變、持久、松弛等長(zhǎng)時(shí)試驗(yàn),其試驗(yàn)時(shí)間長(zhǎng),試驗(yàn)過(guò)程復(fù)雜,且一般試驗(yàn)結(jié)果都是由一組試樣的試驗(yàn)數(shù)據(jù)統(tǒng)計(jì)出來(lái)的。因此,若一次試驗(yàn)用單臺(tái)試驗(yàn)機(jī)做一根試樣,一次就只能得到一個(gè)試驗(yàn)數(shù)據(jù)。要想得到一組試驗(yàn)數(shù)據(jù),就必須反復(fù)做試驗(yàn),所花的時(shí)間為單個(gè)試驗(yàn)時(shí)間和試樣個(gè)數(shù)的乘積。這么長(zhǎng)的時(shí)間才能獲得一組統(tǒng)計(jì)試驗(yàn)結(jié)果,是生產(chǎn)或研發(fā)難以容忍的。所以,一般做此類(lèi)長(zhǎng)時(shí)試驗(yàn)時(shí),都是一次同時(shí)做一組試驗(yàn),也就是同時(shí)有一組試驗(yàn)機(jī)在工作,然后得出試驗(yàn)數(shù)據(jù)再進(jìn)行統(tǒng)計(jì)處理,這就需要組成一個(gè)多機(jī)分散控制、上位機(jī)集中統(tǒng)計(jì)管理的試驗(yàn)系統(tǒng)。這樣的系統(tǒng),通訊是首先要解決的問(wèn)題。目前,國(guó)內(nèi)有些試驗(yàn)機(jī)廠家使用的控制器所采用的通訊方式,依然是RS232/485 協(xié)議與計(jì)算機(jī)的串行通訊方式。在做此類(lèi)試驗(yàn)時(shí),由于目前標(biāo)準(zhǔn)配置的工業(yè)控制計(jì)算機(jī)串行通訊接口的個(gè)數(shù)一般不會(huì)多于兩個(gè),雖然可以通過(guò)插卡擴(kuò)展串行通訊口,但是在布線的時(shí)候,看上去會(huì)顯得很亂,而且數(shù)據(jù)傳送的流量和速度也會(huì)受到一定的限制。所以,具有網(wǎng)絡(luò)化功能的控制器越來(lái)越受用戶歡迎,它不僅使得布線簡(jiǎn)單,且大大提高了通訊效率,可作為集散式控制系統(tǒng)通訊的最佳選擇。整個(gè)系統(tǒng)如圖1所示。

圖1 系統(tǒng)結(jié)構(gòu)圖
3 設(shè)計(jì)方案
本套控制器軟件采用多線程的方式和模塊化的設(shè)計(jì)思想,使模塊與模塊之間的耦合低、內(nèi)聚高,并且具有良好的繼承性和移植性。模塊主要分為試驗(yàn)過(guò)程管理、控制算法設(shè)計(jì)、溫度采集、數(shù)據(jù)傳輸、文件系統(tǒng)管理、試驗(yàn)條件管理以及操作界面等部分。其中,控制算法設(shè)計(jì)模塊是以動(dòng)態(tài)調(diào)用的。所謂動(dòng)態(tài)調(diào)用就是通過(guò)windows的API包括LoadL-brary函數(shù)、GetProcAddress函數(shù)以及FreeLibrary函數(shù)動(dòng)態(tài)地引入動(dòng)態(tài)鏈接庫(kù)中的例程。而靜態(tài)調(diào)用就是在單位的接口部分用External關(guān)鍵字來(lái)指列出要從DLL中引入的例程。從表面上來(lái)看,雖然靜態(tài)調(diào)用方式所需的代碼量較小,但是卻存在著很大的不足,一是如果所要加載的動(dòng)態(tài)鏈接庫(kù)不存在或者動(dòng)態(tài)鏈接庫(kù)中沒(méi)有所要引入的例程,那么程序就會(huì)立即終止運(yùn)行;二是動(dòng)態(tài)鏈接庫(kù)一旦被加載,就會(huì)一直駐留在應(yīng)用程序的地址空間,即使動(dòng)態(tài)鏈接庫(kù)不需要了,其空間也不會(huì)被釋放。而動(dòng)態(tài)調(diào)用就不存在這個(gè)問(wèn)題,它是在需要?jiǎng)討B(tài)鏈接庫(kù)的時(shí)候通過(guò)LoadLibrary函數(shù)引入,用完后通過(guò)FreeLibrary函數(shù)從內(nèi)存中卸載,而且通過(guò)調(diào)用GetProcAddress函數(shù)制定不同的例程。最重要的是,即使指定所引入的例程不存在,至多是API調(diào)用失敗,絕不會(huì)導(dǎo)致程序運(yùn)行終止。對(duì)于內(nèi)存空間有限的控制器來(lái)說(shuō),這些都是確保其長(zhǎng)期、穩(wěn)定運(yùn)行的關(guān)鍵所在。其功能模塊如圖2所示。

圖2 系統(tǒng)功能模塊圖
4 軟件的實(shí)現(xiàn)
4.1 試驗(yàn)過(guò)程管理設(shè)計(jì)
蠕變?cè)囼?yàn)機(jī)控制器與其他試驗(yàn)機(jī)的控制器不同。其他試驗(yàn)機(jī)的控制器,基本上都是與上位機(jī)一起使用,由上位機(jī)不斷地給控制器發(fā)送相應(yīng)的指令,控制器按其指令進(jìn)行各種動(dòng)作。蠕變?cè)囼?yàn)機(jī)的控制器按其指令進(jìn)行各種動(dòng)作。蠕變?cè)囼?yàn)機(jī)的控制器不僅僅要具有這種功能,而且還要具備在脫離上位機(jī)時(shí)獨(dú)立完成試驗(yàn)過(guò)程的能力。為此,將控制器的整個(gè)試驗(yàn)流程歸為圖3所示。

圖3 試驗(yàn)流程
首先,進(jìn)行試驗(yàn)條件的設(shè)置。試驗(yàn)條件即可由上位機(jī)發(fā)送過(guò)去,也可以在控制器上直接設(shè)置。之后,開(kāi)始加預(yù)載荷,當(dāng)達(dá)到預(yù)載荷以后,使其保持在預(yù)載荷,同時(shí)控制器想溫控表發(fā)出指令,改變溫度目標(biāo)值。由于每次升溫都會(huì)有不同程度的過(guò)沖,為了防止大氣爐內(nèi)各段溫度在合理的范圍內(nèi),然后再繼續(xù)升溫,甚至溫度達(dá)到目標(biāo)值。當(dāng)升溫結(jié)束以后,使溫度保持在一定的目標(biāo)值上,開(kāi)始加主載荷,進(jìn)入正式試驗(yàn)階段。當(dāng)試驗(yàn)時(shí)間到,或者是收到停止命令時(shí),試驗(yàn)就會(huì)立即結(jié)束,同時(shí)控制器會(huì)發(fā)出信號(hào),使大氣爐停止加熱。若試驗(yàn)沒(méi)有斷裂,則直接卸載到預(yù)負(fù)荷,并保持在預(yù)負(fù)荷上。
4.2 網(wǎng)絡(luò)通訊設(shè)計(jì)
在工業(yè)控制領(lǐng)域,TCP協(xié)議和UDP協(xié)議是比較常用的兩種實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)膮f(xié)議。UDP-用戶數(shù)據(jù)報(bào)協(xié)議,是一種簡(jiǎn)單的面向數(shù)據(jù)報(bào)的傳輸層協(xié)議。在電子式蠕變?cè)囼?yàn)機(jī)軟件中,采用這種廣播的方式會(huì)引起一些問(wèn)題。因?yàn)檫@種協(xié)議的特點(diǎn)是每當(dāng)上位機(jī)發(fā)送一次控制命令時(shí),網(wǎng)絡(luò)中所有的控制器都能收到一組這樣的控制命令。若是這個(gè)控制命令只是想對(duì)網(wǎng)絡(luò)中的某一臺(tái)控制器有效,那么,就有可能使其他的控制器受到一定的影響。而且,如果有大量的廣播數(shù)據(jù)存在于網(wǎng)絡(luò)當(dāng)中,會(huì)消耗網(wǎng)絡(luò)帶寬,嚴(yán)重時(shí)會(huì)引起廣播風(fēng)暴,造成網(wǎng)絡(luò)癱瘓。而TCP-傳輸控制協(xié)議,它提供面向連接,可靠的字節(jié)流服務(wù)?刂破髋c上位機(jī)交換數(shù)據(jù)前,雙方必須先建立一個(gè)TCP連接,才能傳輸數(shù)據(jù)。另外,TCP協(xié)議還提供超時(shí)重發(fā)、流量控制等功能,從而保證了數(shù)據(jù)傳輸?shù)目煽啃。因此,本套軟件采用?/span>TCP協(xié)議進(jìn)行網(wǎng)絡(luò)傳輸。通常情況下,在開(kāi)始試驗(yàn)之前,操作人員會(huì)按照一定的試驗(yàn)方法在上位機(jī)軟件上進(jìn)行設(shè)置,然后通過(guò)以太網(wǎng)傳輸?shù)娇刂破魃稀.?dāng)控制器接到相應(yīng)的指令時(shí),會(huì)按照已經(jīng)設(shè)置好的條件進(jìn)行試驗(yàn),同時(shí),控制器也會(huì)將當(dāng)前的試驗(yàn)狀態(tài)和用戶所關(guān)心的試驗(yàn)數(shù)據(jù)回傳到上位機(jī)軟件中進(jìn)行數(shù)據(jù)分析和處理。為了讓數(shù)據(jù)流不被信息流所打斷,也就是使數(shù)據(jù)流和信息流互不干擾,在這里所采用的技術(shù)是同時(shí)開(kāi)通兩個(gè)端口,然后分別建立連接機(jī)制,一個(gè)用于數(shù)據(jù)的傳輸,另一個(gè)用于控制信號(hào)的傳輸。首先,在網(wǎng)絡(luò)傳輸模塊當(dāng)中對(duì)已經(jīng)訂好的兩個(gè)端口進(jìn)行監(jiān)聽(tīng),這兩個(gè)端口分別探聽(tīng)到已經(jīng)連接信號(hào)后,控制器就會(huì)進(jìn)入連機(jī)狀態(tài),也就是在操作界面模塊當(dāng)中,由原來(lái)的等待連機(jī)界面切換到數(shù)據(jù)顯示界面。于此同時(shí),在信息流傳輸?shù)倪^(guò)程中,會(huì)接收到由上位機(jī)發(fā)來(lái)的讀取數(shù)據(jù)的指令,然后數(shù)據(jù)流線程中的發(fā)送數(shù)據(jù)事件就會(huì)立即被觸發(fā)。如果當(dāng)前數(shù)據(jù)緩沖區(qū)不為空,那么就從數(shù)據(jù)緩沖區(qū)中讀取數(shù)據(jù),發(fā)送到上位機(jī)供其接收、處理,否則就直接將當(dāng)前的數(shù)據(jù)發(fā)送給上位機(jī)。然后,再等待上位機(jī)發(fā)送的讀取指令的到來(lái),這樣不僅使得數(shù)據(jù)傳遞準(zhǔn)確無(wú)誤,而且也使得上位機(jī)發(fā)來(lái)的控制命令及時(shí)準(zhǔn)確地傳送到控制器中,保證了實(shí)時(shí)性。
4.3 溫度采集設(shè)計(jì)
幾乎所有的蠕變、松弛、持久等試驗(yàn),都要求在某一恒定的溫度下進(jìn)行,而目前大多數(shù)的溫度控制方法都是采用獨(dú)立的溫度控制模塊來(lái)進(jìn)行溫度控制的。由于大氣爐內(nèi)部的溫度是分三段進(jìn)行測(cè)量的,所以溫控器需由三塊溫控儀表組成。而溫控儀表與控制器之間的通訊是采用RS485協(xié)議進(jìn)行傳遞的,所以不能同時(shí)對(duì)其操作,只能用異步操作的方式來(lái)進(jìn)行信息交換。在本套軟件當(dāng)中,控制器不僅要能實(shí)現(xiàn)對(duì)當(dāng)前溫度進(jìn)行采集,而且還要能夠?qū)崿F(xiàn)向
溫控器發(fā)送指令,使上位機(jī)可以通過(guò)控制器轉(zhuǎn)發(fā)溫度控制指令,改變溫控表的溫度控制目標(biāo)值,從而實(shí)現(xiàn)自動(dòng)升溫的過(guò)程,減少了由手動(dòng)升溫帶來(lái)的麻煩。
本澳金工業(yè)控制器軟件是目前國(guó)內(nèi)試驗(yàn)機(jī)領(lǐng)域內(nèi)較先進(jìn)、實(shí)用的一套試驗(yàn)操作軟件,且具有很好的擴(kuò)展性和溫度可靠性。與國(guó)外一些知名品牌的控制器軟件相比,這套控制器軟件在功能上基本沒(méi)有什么差別。隨著蠕變?cè)囼?yàn)機(jī)的進(jìn)一步推廣,這套軟件將會(huì)受到越來(lái)越多用戶的認(rèn)可和親睞。
蠕變概述:
1)固體材料在應(yīng)力保持不變的情況下,應(yīng)變隨著時(shí)間的延長(zhǎng)而增加的現(xiàn)象;與塑性變形不同,塑性變形通常在應(yīng)力超過(guò)彈性極限之后才出現(xiàn),而蠕變只要應(yīng)力作用時(shí)間相當(dāng)長(zhǎng),他在應(yīng)力小于彈性極限時(shí)也能出現(xiàn)。
2)蠕變溫度:低溫狀態(tài)也能進(jìn)行;高溫一般約為0.3Tm(Tm為融化溫度),碳素鋼超過(guò)300-350℃,合金鋼在400-450℃以上產(chǎn)生蠕變行為,鉛、錫在室溫條件下就會(huì)產(chǎn)生蠕變行為。
|