擴散爐智能控制系統(tǒng)設(shè)計【獨家畢業(yè)課程設(shè)計帶任務(wù)書+開題報告+外文翻譯】
擴散爐智能控制系統(tǒng)設(shè)計【獨家畢業(yè)課程設(shè)計帶任務(wù)書+開題報告+外文翻譯】,擴散,分散,散布,智能,控制系統(tǒng),設(shè)計,獨家,畢業(yè),課程設(shè)計,任務(wù)書,開題,報告,講演,呈文,外文,翻譯
1 件發(fā)展的改進方案心得體會報告 5 13/B 41100 13/B 41100 + 39 59 848810 41100 + 39 59 378514 + 39 59 378514 要 可編程邏輯控制器( 件是眾多各種各樣的自動化機器和設(shè)備的重要組成部分。不管它的工業(yè)相關(guān)方面,其目前的開發(fā)實踐存在著嚴重的缺點,導(dǎo)致了質(zhì)量差,可再利用率低和其他問題。本文旨在提出一個已專門研究改進其過程 的設(shè)計開發(fā)方法和底層模型。這種方法輔助初始設(shè)計階段和改進設(shè)計階段,形成一個完整的,均一表示結(jié)構(gòu)和動作的樣子 ,有利于早期的正確性和一致性驗證,引導(dǎo)有條不紊的軟件編碼和測試,并保持獨立的編程語言。雖然采用了面向?qū)ο蠹軜?gòu)的基本原則,但是模型引入了特有的基元去捕獲 件的特性和實現(xiàn)更高的程度的模塊化。此外,它用不變量和轉(zhuǎn)換條件代替方法在聲明形式上去表達更多知識。 關(guān)鍵詞: 工藝改進,工程需要,設(shè)計,重復(fù)利用, 簡介 基于 系統(tǒng)范圍從簡單的數(shù)控機床到非常復(fù)雜的倉儲,運輸和包 裝設(shè)備,包括直角坐標機器人,繞線機,堆垛機以及許多其他不同類型的自動化系統(tǒng) . 個人或者課堂上允許免費使用數(shù)字或硬拷貝全部或者部分這些資料,但不可用于商業(yè)利益中。版權(quán)須知,標題出版物和顯示日期,版權(quán)是通過 份有限公司許可的。要以其他方式復(fù)制,重新發(fā)布,在服務(wù)器上發(fā)布或者重新分配列表,需要特定的權(quán)限和/或費用。 7 A 997 7/05..$中之一的全球成本下降 500 萬歐元之間,軟件成本平均 在 5%至 10%,這些取決于系統(tǒng)的性質(zhì)和復(fù)用率??紤]到每年大批基于 系統(tǒng)的產(chǎn)出, 件的絕對價值確實相當大。此外, 件就是模擬系統(tǒng),并控制著它們的動作,因此,它起到了非常關(guān)鍵的作用就整個系統(tǒng)的操作性和安全性:機械和電氣器械是固定不動的直到軟件開始運行以及它出現(xiàn)故障時。 自動化市場的穩(wěn)步增長和 靈活性,保證了較低硬件成本和軟件為基礎(chǔ)的運動控制,向著更高水平的產(chǎn)品定制服務(wù)邁步。大多數(shù)開發(fā)人員屬于中小規(guī)模企業(yè)之類的(中小企業(yè))。傳統(tǒng)的專業(yè)化的中小型企業(yè)青睞實行分包的工作組織。這要求支持當前件工程實踐不提供的合作社發(fā)展。 系統(tǒng)的開發(fā)通常分為兩個主要階段,即結(jié)構(gòu)的發(fā)展(機械和電氣元件)和控制的發(fā)展(電子和軟件組件)。后者是從前者的要求派生的,機械 個項目團隊的文化一般是不同的,共同的語言是很難定義的,信息的缺乏和誤解這些結(jié)果在開發(fā)過程中引發(fā)了一些修正和迭代。 目前的 件工程實踐受制于硬件供應(yīng)商的所提供的編程環(huán)境,因為具體的設(shè)計方法和工具仍然缺乏。硬件供應(yīng)商提供的專有低級編程語言或者通過 標準版本【 7,13】。因此, 在沒有進行有意義的設(shè)計活動下,要求規(guī)范被非正式的進行,軟件編碼立即執(zhí)行。 編程組織是既沒有技術(shù)也沒有資源來重新塑造自己的內(nèi)部實踐的精簡的結(jié)構(gòu),必需依賴于程序員的經(jīng)驗。引進 準(過去的幾年主要精力花在 件的發(fā)展)解決了可移植性和互操作性問題,但它沒有顯著提高初始階段的軟件生命周期。 本論文的目的是提出設(shè)計和開發(fā)方法,底層模型,命名為“更容易”,這是已專門研究的改進過程。該方法支持初步的改進設(shè)計階段,產(chǎn)生了完整的,均勻的表示系統(tǒng)的動作,有利于早期的正確性和一致性驗證,引導(dǎo)有條不紊的軟件編 碼和測試,并保持獨立的編程語言。雖然采用了面向?qū)ο蠹軜?gòu)的基本原則,但是模型引入了特有的基元去捕獲 件的特性和實現(xiàn)更高的程度的模塊化。此外,它用不變量和轉(zhuǎn)換條件代替方3 法在聲明形式上去表達更多知識。 從 件的性質(zhì)研究具體的解決方案的原因是,基于 系統(tǒng)是最常見的時鐘驅(qū)動實時系統(tǒng),及其它提出了一種有較差的時間約束( 20 到 50 赫茲)【 13】的典型循環(huán)執(zhí)行。在每個周期期間,它檢測輸入的值和工作變量,并計算這些工作和輸出變量。執(zhí)行時間越長,系統(tǒng)狀態(tài)檢測頻率越低。 像狀態(tài)圖工具管理分層狀態(tài)圖的能力是有趣的 ,但是它們也不能捕獲所有所需的知識,以實現(xiàn)一個完整的系統(tǒng)控制(見章節(jié)改進方案)。此外,時鐘驅(qū)動 件的本質(zhì)可以防止從應(yīng)用方法設(shè)置為順序的軟件,作為這些建議在【 8, 14, 16】,這是表示動態(tài)的可憐方法。甚至最近的 型【 16】的不正規(guī)約束以及狀態(tài)轉(zhuǎn)換的細節(jié)(觸發(fā)事件,不良反應(yīng)),因此不能支持正確性控制。最后,正式的模型【 6, 12, 17】并不適用復(fù)雜系統(tǒng)表示,并難以使用和轉(zhuǎn)換為 言。這里提出的改進過程已經(jīng)被目 10542于可編程邏輯控制器增強了應(yīng)用軟件的實現(xiàn) )。本文定量的信息報告來自該項目進行的實驗。一個全面發(fā)展的方法,作為 目22273于提高機床自動化的方法和組工具 )在計算機數(shù)控( 床該領(lǐng)域正在進行。歐洲共同體委員會【 分支持這兩個項目。 本文分為六個主要部分。下一節(jié)介紹“更容易”模型的基本概念,下面兩節(jié)提出了應(yīng)用方法的兩個步驟,即計劃建設(shè)和計劃改善。然后,一節(jié)考察一致性驗證問題以及下一節(jié)介紹來自模型應(yīng)用的代碼生成實踐規(guī)則。最后一節(jié)討論所提出的方法對 件開發(fā)周期的影響。 4 “ 更容易”模型 該模型是基于面向?qū)ο蟮姆独?,最初的靈感是來自一根棒的作品【 18】。它為對象組合建立嚴格的指導(dǎo)方針,因此,通過組合它的部件單元可以獲得一個復(fù)合系統(tǒng)的控制代碼。它使用法則和操作原語,代替?zhèn)鹘y(tǒng)的,原始的【 2, 5】方法【常規(guī)】,以保持系統(tǒng)的合法性和穩(wěn)定性。報道的例子在這和下面的部分僅就它們的重要方面做出評論。 對象 系統(tǒng)單元模型為對象類型,對象的概念,用異常的方法,我們采用的是類似經(jīng)典的面向?qū)ο蟮姆独?。從靜態(tài)的角度來看,一個對象類型的特征在于是有一個名稱,一個屬性和組件列表。簡單單元不存在復(fù)合結(jié)構(gòu), 因此,它們只描述屬性表示輸入或輸出,設(shè)置,狀態(tài)和工作變量。一個屬性由它可以給出的值的一對【屬性:域】表示。復(fù)雜單元的定義包括參與組合的表達對象的組件。一個組件被聲明為一對【角色:對象】定義類型的扮演特定作用的對象。根據(jù)面向?qū)ο蟮姆独?,一個對象類型可以通過專門定義。專門類型繼承了起源于對象的屬性和組件,除了添加和重新定義。重新定義組件僅限于映射到一個子型,重新定義屬性意味著限制其定義域。 合法法則 常量,關(guān)系到每個對象類型的約束空間的合法狀態(tài)和合法狀態(tài)的變化。它們被編寫為謂詞演算【 1】的表達式【法則】,應(yīng)用 到當前和前一個狀態(tài)的對象,如果有的話,作為它的成分。關(guān)鍵字“過去”前的屬性名稱是指屬性值之前的最后一個狀態(tài)對象的變化,因為它發(fā)生在埃菲爾【 14】 果 表先前的和當前的對象狀態(tài), 有的值是記為“過去”獨立于它們是否改變或者在 。然后,合法性法則可以看作是后置條件。當一個合法性沖突被檢測到,控制器必需采取行動,或者拒絕非法狀態(tài)的變化或者通過適當修改錯誤狀態(tài)實現(xiàn)合法狀態(tài)。出于這個原因,我們聯(lián)想到每一個合法性法則相應(yīng)的恢復(fù)操作。 轉(zhuǎn)換法則 除了確保對象狀態(tài)和狀態(tài)變化的合法性 , 碼的主要任務(wù)是通過計算出新的穩(wěn)定狀態(tài)解決不穩(wěn)定狀況。換句話說,自動化系統(tǒng)作為一個同步狀態(tài)機【 10,16】,在控制系統(tǒng)中,狀態(tài)轉(zhuǎn)換法通過比較對象狀態(tài)和事件發(fā)生檢測不穩(wěn)定狀態(tài),計算出新狀態(tài)并進行所需的操作。雖然合法性和穩(wěn)定性問題在性質(zhì)上是不同的,它們的管理都可以基于相同的建模解決方案,因為兩者都需要定義的條件與相關(guān)的操作進行。 虛擬對象 相互影響的兩個或兩個以上的對象類型,在復(fù)合對象中,它們扮演著組件這個角色,經(jīng)常呈現(xiàn)規(guī)律。這意味著某些法則存在所有它們參與的復(fù)合對象中,它們表達的約束,在上下文中這些 組件必需要滿足,即其上下文自由交互規(guī)則。這些法則可以從單一復(fù)合對象和關(guān)聯(lián)到一個虛擬對象中刪除,引入到這里的目的。這個對象類型被稱為虛擬的,因為它沒有對應(yīng)的物理系統(tǒng)單元。在代碼方面,一個虛擬對象對應(yīng)的控制程序執(zhí)行時,這些組件對象協(xié)同工作。 5 構(gòu)造方案 通過簡單的例子,在這里我們展示了軟件設(shè)計師所做的工作。其結(jié)果是系統(tǒng)控制的一個初步方案。這個例子引用輸送機和挑選灣控制,因為它們是大多數(shù)自動化運輸和倉儲系統(tǒng)的典型元素(在不同的復(fù)雜程度)。由于一個單元的完整建模取決于其組件,系統(tǒng)表示通常遵循一個自低向上的方法。 簡單 單元結(jié)構(gòu) 一個輸送機移動對象通過一個引擎從入口點到出口點。在這個例子中,輸送機被認為是一個簡單的單元【沒有組件】。改對象代表它具有許多屬性作為單元參數(shù)和變量影響控制。下面定義報告參與單元控制的典型屬性的一個示例: 對象輸送機 長度: 2000. 物理參數(shù) 輸入光電管:布爾 輸入變量 退出光電管:布爾 輸入變量 輸入信號量:(綠,紅) 輸出變量 退出信號量:(綠,紅) 輸出變量 發(fā)動機轉(zhuǎn)速:(停止,低,高) 輸出變量 狀態(tài):(就緒,等待下載,下載,等待 傳輸,傳輸,忙,卸載,錯誤) 過度變量 模式:(手動,自動) 設(shè)置變量 注意:布爾 工作變量 定時器:(預(yù)置,復(fù)位,失效) 工作變量 物理參數(shù)描述具體單元的特性,影響其動作,輸入變量給傳感器值,輸出變量設(shè)置操作執(zhí)行器, 過度變量是用來表示對象動態(tài),引入設(shè)置變量約束系統(tǒng)的動作以符合用戶的調(diào)節(jié)選擇,工作變量允許記錄中間值,包括典型的原語,比如定時器和計數(shù)器。 簡單單元合法性 合法性法則定義了對象空間的合法狀態(tài)和合法狀態(tài)變化,包括違反情況下采取的行動。為了可讀性,法則都做了標記,參照輸送機的例子,下面的法則: 度 008 → 電機轉(zhuǎn)速 反應(yīng) {提示信息“錯誤速度”,電機轉(zhuǎn)速: =低 } 為防止長距離輸送,電機轉(zhuǎn)速是不允許達到高值的。如果出現(xiàn)這種情況,就會發(fā)出警告信息并降低轉(zhuǎn)速。同樣,狀態(tài)變化可以約 束在一下法則: 去電機轉(zhuǎn)速 機轉(zhuǎn)速和過去電機轉(zhuǎn)速 止 → 電機轉(zhuǎn)速 反應(yīng) {提示信息“錯誤加速”,電機轉(zhuǎn)速: =低 } 說明它是不允許突然從靜止到高速運行的。需要注意的是恢復(fù)操作算法寫在任何程序語言中(這里,類似于帕斯卡語言)。 簡單單元轉(zhuǎn)換 狀態(tài)轉(zhuǎn)換關(guān)系到系統(tǒng)動作對象狀態(tài)變量的變化(就輸送狀態(tài)下來說)。在當前狀態(tài)變量值和其他值表示一個事件的發(fā)生,左邊的表達式采取的是一個布6 爾謂詞的形式。右邊的表達式描述計算執(zhí)行確定新的狀態(tài)和其他可能的副作用。例如: 態(tài)(就緒 ,等待下載)和輸入光電管以及輸入信號量 色 → {狀態(tài):=下載,定時器: = 設(shè)定 } 描述了從就緒或等待狀態(tài)到下載狀態(tài)的過渡,以及附加啟動下載定時器。 復(fù)雜單元結(jié)構(gòu) 一個挑選灣基本上使用臺輸送機和兩臺調(diào)車機車。出口輸送機出口托盤在倉庫里。接著由第一調(diào)車脫離正交的輸送托盤。然后拾取模塊輸送使托盤可用人工操作。第二次調(diào)車再次改變朝向倉庫。最后,入口輸送機把托盤送回到倉庫。因此,挑選灣是復(fù)雜對象很顯著的一個例子: 對象挑選灣 出口輸送機:傳送帶 組件 拾取模塊 :傳送帶 組件 入口輸送機:傳送帶 組件 第一次調(diào)車:調(diào)車機車 組件 第二次調(diào)車:調(diào)車機車 組件 形狀校驗器:布爾 輸入變量 狀態(tài):(就緒,等待,忙 ,? ) 過渡變量 模式:(手動,自動) 設(shè)置變量 錯誤:整數(shù) 工作變量 運行命令:布爾 工作變量 復(fù)雜對象顯示 在一般情況下,同一類型的變量和參數(shù)出現(xiàn)在一個簡單的對象里。上面的示例報告只是它們的一個樣品。挑選彎應(yīng)該在一定時間傳送托盤,就緒意味著沒有托盤在傳送,等待意味著有操作人員在拾取模塊上管理托盤,忙碌意味著在傳送過程中托盤退出或進入設(shè)備。除了從合法性和過渡性法則,從這個定義上,組成結(jié)構(gòu)和相對靜止以及行為約束沒有結(jié)果。 復(fù)雜單元變量和轉(zhuǎn)換 作為單元 本事,復(fù)雜系統(tǒng)的非法狀態(tài)或非法狀態(tài)的變化,必須識別和管理。如下法則給出了一個示例: 有形狀檢驗器或者錯誤 →模式 動 反應(yīng) {提示信息“操作員要求”,模式: = 手動 } 同樣的,復(fù)雜系統(tǒng)顯示自身的狀態(tài)轉(zhuǎn)換,參照所識別的狀態(tài)變量(狀態(tài)也在這種情況下)來表示。例如: 態(tài) 緒和過去模式 動以及模式 動 → {狀態(tài): = 等待 } 然而,復(fù)雜單元的大部分知識都關(guān)注到它與組件單元的交互,以及本文中組 件單元的交互。 7 復(fù)合單元和組件單元的交互 這種相互依存的關(guān)系既包括合法性和過渡約束。復(fù)合和組件單元的狀態(tài)和特性的一致性都是通過法則表示的,像下面的小例子,迫使每個組件共享整個系統(tǒng)的運行模式(點符號表示組件屬性): 式 出傳送模式和模式 一次調(diào)機模式和? 反應(yīng) {退出傳送模式 : = 模式;第一次調(diào)機模式 : = 模式 } 過渡約束是非常重要的,因為它們同步了組件和復(fù)合狀態(tài)圖。狀態(tài)圖層次結(jié)構(gòu)的想法不是新的【 10, 16】;我們提出的是一個分區(qū)強制執(zhí)行模塊化程度的標準。記住, 過渡法則的特點是一個授權(quán)的條件和操作產(chǎn)生新的合法狀態(tài)。這個條件是應(yīng)用于復(fù)合單元和它的組件,以及把所有的組件屬性考慮進去。這意味著復(fù)合單元的狀態(tài)轉(zhuǎn)變是可以確定的,還有其他原因,由發(fā)生的一個狀態(tài)轉(zhuǎn)換到它的一個組件中。法則: 態(tài) 和過去傳送狀態(tài) 載以及輸入狀態(tài) 待 → {狀態(tài): = 等待;? } 建立挑選灣是準備接收一個新項目,只有當它處于完全空置時,那就是之前的項目已經(jīng)返回到倉庫時。反過來,運動可以改變復(fù)合單元屬性和其組件。這意味著復(fù)合單元狀態(tài)圖的過渡 可以確定,以及其它影響,組件狀態(tài)圖過渡觸發(fā)。這個例子: 態(tài) 待和“進行”命令 → {狀態(tài): = 忙;拾取模塊通告: = 真 } 意味著只要操作人員按壓進行挑選灣按鈕再次啟動它,總體狀況忙碌和確認這是通過通知變量給拾取模塊的。這將影響拾取模塊的過渡(記著它是一個傳送機),例如: 態(tài) 待運送和通知 → {狀態(tài): = 運送;? } 注意,為了使組件描述和復(fù)合行為保持獨立,后者是不允許直接修改前者的狀態(tài)變量,但工作變量是用于此目的。 在一個復(fù) 合單元組件之間的交互 在先前的例子當中,相互依存延伸到了合法性和過渡法則。我們已經(jīng)看到了 則約束所有挑選灣組件遵守整體工作模式。同樣的,挑選灣法則可以把組件的兩個狀態(tài)聯(lián)系起來,像下面的例子: 出傳送狀態(tài) 送 →第一次調(diào)機通知 反應(yīng) {第一次調(diào)機通知: = 真 } 意思是說,當出口輸送機移動托盤時,為了準備后續(xù)裝載作業(yè),下面的拾取模塊會被告知。關(guān)于對第一次調(diào)機狀態(tài)的影響由下面的過渡法則表示: 態(tài) 備和通知 → {狀態(tài): = 等待運送;? } 8 方案改進 工廠控制通常是非常復(fù)雜的。雖然“更容易”表示法是簡潔的最終數(shù)量的 是它通常包括了幾百條法則。它重現(xiàn)了該方案在建?;顒訒r造成現(xiàn)存的可以和應(yīng)該改進的方面。在本節(jié)中,我們研究三個改進方案,意味著,如果適用,增加模塊化以及因此而重新使用的潛在。 專業(yè)化 第一個改進的建議是通過采用已被定義的其他對象描述一個新的對象的可能性。一種常見的情況是一個新對象作為一個基本對象的變形出現(xiàn),這種情況可以很方便通過專門模仿,使后者變?yōu)榍罢摺_@個專業(yè)對象繼 承了父型的結(jié)構(gòu)(組件),屬性(屬性)和行為(合法性和過渡法則)。專業(yè)對象的特性通過添加新組件或約束那些繼承,添加新屬性或約束那些繼承,添加新法則以防它們與那些繼承有沖突。作為一個例子,假設(shè)我們有與挑選灣相關(guān)的形狀檢測器傳感器,而不是在一些輸送機上: 檢測傳送對象是一臺傳送機 形狀檢測器:布爾 輸入變量 下面的法則可以添加用于區(qū)分正常傳送機和檢測傳送機的行為: 是形狀檢測器 →模式 動和電機轉(zhuǎn)速 止 反應(yīng) {模式: = 手動;電機轉(zhuǎn)速: = 停止 } 對象定義專業(yè)化防止在一個基本單元類型控制代碼引入不一致。 行為參數(shù)化法 一個進一步的改進方案在于組織對象法則轉(zhuǎn)為模塊,它的執(zhí)行是由對象屬性的特定組合來決定的,尤其是物理參數(shù)和設(shè)置變量。參照傳送機,我們可以設(shè)想下,除了普通法則,一些法則在手動模式下執(zhí)行以及其他法則在自動模式下執(zhí)行。模式條件不是包括在每個法則里,在適當選擇參數(shù)下,我們可以組織法則。以下標題: 傳送機法則 普通法則 ? ? ? 傳送機法則模式 = 自動 在狀態(tài) (下載,卸載 ) →電機轉(zhuǎn)速 反應(yīng) {電機轉(zhuǎn)速: = 低 } 傳送機法則模式 = 手動 ? ? ? 引入傳送機法則模塊 行為參數(shù)化法的好處基本上有兩種:第一,對象方案變得更具可讀性,因此更容易理解和確認;第二,更高的模塊化程度使“更容易”法則翻譯成可重復(fù)使用的 碼。 虛擬對象 假設(shè) M 對象類型在不同系統(tǒng)可能與其他對象類型一起參與。它們在這種場景下的行為是通過有法則關(guān)聯(lián)的相對應(yīng)的復(fù)雜系統(tǒng)表示 的。它可能會發(fā)生一些法則出9 現(xiàn)在所有場景下,這意味著 了避免冗余的定義和提高模塊化設(shè)計,從不同復(fù)雜對象刪除這些法則,并將它們關(guān)聯(lián)到一個新對象是非常有用的,形成這種 這個解決方案提出了一些缺點。每個原始復(fù)雜對象在其結(jié)構(gòu)上被修改:用一個中間組件取代 N,,從而在組件間引入一種層級,它不對應(yīng)所感知的現(xiàn)實。此為,建模在這樣出現(xiàn)問題,即 將需要第二個中間對象,與前一個分享一個組件。 我 們想說的是 句話說,我們不需要一個新的對象,而是一個與上下文無關(guān)的法則的座位,我們稱為虛擬對象。并給出一個例子“雙輸送機”,因為這種組合經(jīng)常在挑選灣和運輸線遇到: 一對輸送機虛擬為 2:傳送帶 長度:實 雙輸送機法則 式 2 模式 反應(yīng) {如果過去 式<> 式 然后 式: = 式 否則 式: = 式 } 態(tài)處于(忙,卸載) 態(tài)處于(等待下載,下載) 反應(yīng) {如果過去 式<> 式 然后 式: = 值( ( 態(tài))) 否則 式: = 值( ( 態(tài))) } 度 1 長度 + 度 +應(yīng) {長度: = 度 + 度 +一旦引入,這個虛擬對象及其屬性在每一個復(fù)雜對象包括一個或多個雙輸送機的法則可以召回??紤]運輸線,包括其他單元,兩臺輸送機: 對象運輸線 ? ? ? A,B:傳送帶 長度 :整數(shù) 關(guān)于雙輸送機運輸線的法則如下: 對輸送機( ,) 度 對輸送機( ,)長度 + ? 前者指出 的行為根據(jù)一對連接的輸送機的典型規(guī)則,后者指出運輸線路長度包括這對輸送機。 10 這是值得觀察的方式,“更容易”模型讓上下文無關(guān)和上下文相關(guān)的行為不同。上下文無關(guān)的行為由單一對象和虛擬對象相關(guān)法則表示。上下文相關(guān)的行為由復(fù)雜對象關(guān)于其組件和召回虛擬對象的法則表示。 一致性驗證 動器,例如輸送機引擎,在每個執(zhí)行周期結(jié)束時動作根據(jù)控制軟件邏輯 。根據(jù)不同的控制代碼,正確的行為或輸入信號的錯誤(也可能是危險的)反應(yīng)和可能發(fā)生的用戶命令。對象和法則提供了一個完整的單元和系統(tǒng)動態(tài)的表示法。每條法則可以很容易的轉(zhuǎn)換成遵循一定規(guī)律(請參閱下部分)的 確認的是,法則效果是一致的并導(dǎo)致了預(yù)期的系統(tǒng)行為。此外,法則可串行性【 9】應(yīng)確保,也就是說,控制應(yīng)該獨立的發(fā)行法則命令,或者至少合理排序標準應(yīng)該基于法則分析。 為了滿足這些要求,根據(jù)它們的相互依存關(guān)系,我們把法則進行分類,以及通過特定串行條件下展示不同分類的特點。 給定一個合法或過渡法則 屬于整個系統(tǒng)法則的集合 L,我們用 示違反它的所有狀態(tài)(屬于所有可能狀態(tài)的 S 空間)的集合。此外,我們把與法則 x(轉(zhuǎn)換 )映射輸入狀態(tài),用來評估法則,進入一個新狀態(tài)。假設(shè)每個法則本身是正確的,輸出狀態(tài)始終是合法的并與產(chǎn)生它的法則相對應(yīng)。 每一個執(zhí)行周期,對象的兩個或者更多的法則可能檢測到需要執(zhí)行相對操作的情況。在處理這種情況時,我們可以遵循不同的法則掃描模式:串行和并行。前者由下面的算法表示: 所有對象法則的 n 值和 狀態(tài)經(jīng)過 (并可能 執(zhí)行相應(yīng)動作)評估后獲得。相反,下面的算法表示后者的掃描模式: 初始狀態(tài),也就是說在法則掃描開始時,其處于空閑。 考慮到這種區(qū)別,現(xiàn)在我們可以根據(jù)互相依賴關(guān)系分類法則:排他性,限制順序獨立性,擴展順序獨立性,平行的獨立性。不屬于這些類型的法則可能會引入串行問題,因此必須重寫。 排他性 第一種情況的發(fā)生,在任何情況下,僅有一個對象法則可能受到違背,執(zhí)11 行相關(guān)的操作不違反其他法則??紤]成對法則,下面的條件(不被掃描方式影響)必須滿足 可能輸送機法則滿足排他性是: 態(tài) 備 → 托 盤代碼 反應(yīng) {托盤代碼: = 0} 態(tài) 誤 → 電機轉(zhuǎn)速 止 反應(yīng) {電機轉(zhuǎn)速: =停止 } 托盤代碼是一個整數(shù)屬性,其報告在輸送機上移動的托盤類型,以及錯誤是其中一個可以取的狀態(tài)值。這些法則不能同時違反,以及任一反應(yīng)不能確定其他法則的非法狀態(tài)。事實上,在不違反 , 應(yīng)零值分配到托盤代碼,同樣 足來自 應(yīng)執(zhí)行的引起的狀態(tài)。 限制順序獨立性 發(fā)生這種情況,如果最后對象狀態(tài),根據(jù)順序掃描模式的一個完整法則掃描獲得的總是獨立于掃描命令和所有法則的合法性。此外, 反法則已經(jīng)符合相應(yīng)的反應(yīng)。從形式上看,下面條件必須滿足 : 注意,第二條件是相同的排他性,因為在這兩種情況執(zhí)行一個操作不能違反其他已滿足條件的法則。第一個條件, 1ˊ部分)說到一個反法則不能由其他法則操作滿足, 1〞部分提到最后狀態(tài)必須獨立于掃描命令。 挑選灣可能滿足限制順序,但不是唯一獨立的法則有以下幾種: 出輸送機模式 一次調(diào)機模式 反應(yīng) {第一次調(diào)機模式: = 退出輸送機模式 } 出輸送機電機轉(zhuǎn)速 一次調(diào)機電機轉(zhuǎn)速 反應(yīng) {第一次調(diào)機電機轉(zhuǎn)速: = 退出輸送機電機轉(zhuǎn)速 } 這兩條法則可以同時違反,并且它們各自的反應(yīng)不影響其他法則的合法狀態(tài)。這意味著這兩條法則的不合法狀態(tài)對于在 作執(zhí)行后的 直是不合法的,以及對于作執(zhí)行后的 是一樣的。因此,掃描命令并不影響最后結(jié)果。 擴展順序獨立性 發(fā)生這種情況,如果最后對象狀態(tài),根據(jù)順序掃描模式的一個完整法則掃描獲得的總是獨立于掃描命令和所有法則的合法性。然而,這里的法則可以由其他法則的操作滿足,并使得順序獨立擴展。下面的條件必須滿足 : 12 并且它可以證明它們與此等效: 作為一個例子,考慮下面的輸送機法則: 突發(fā)事件 →狀態(tài) 誤以及輸入信號 反應(yīng) {狀態(tài): = 錯誤;輸入信號: = 紅;電機轉(zhuǎn)速: = 停止 } 其中突發(fā)事件是布爾屬性,其值取決于操作人員可能按的按鈕。如果與上面定義的則一起考慮, 于擴展順序獨立類型而不是限制類型。事實上,條件“ 狀態(tài) 誤和引擎轉(zhuǎn)速 ”對于這兩條法則是不合法的,除了首先掃描 的操作執(zhí)行決定了一個新的狀態(tài),其結(jié)果對于這兩條法則是合法的。 并行獨立 發(fā)生這種情況,如果最后對象狀態(tài),根據(jù)并行掃描模式的一個 完整法則掃描獲得的總是獨立于掃描命令和所有法則的合法性。因此,它可能發(fā)生,相應(yīng)于違反了當前狀態(tài)(最后動作執(zhí)行產(chǎn)生的)的法則的動作不執(zhí)行,反過來,因為對于檢測法則它的初始狀態(tài)(在其基礎(chǔ)上對所有法則進行評估)是合法的。出于此原因,條件必須滿足 ,它們與上述不同: 當掃描模式是并行的時候我們考慮對 T'i 進行轉(zhuǎn)換。 讓我們詳細的檢驗輸送機法則 果我們分析設(shè)置的狀態(tài)違反兩條法則: 態(tài) 備和托盤代碼 發(fā)事件(狀態(tài) 誤或者輸入信號 ) 態(tài) 備和托盤代碼 以及突發(fā)事件 態(tài) 備和托盤代碼 以及不是突發(fā)事件 發(fā)事件和(狀態(tài) 誤或者輸入信號 )以及(狀態(tài) 備和托盤代碼 ) 13 我們觀察到并行獨立的條件 1 滿足,因為∨ 生的狀態(tài)“狀態(tài) 和托盤代碼 以及輸入信號 和電機轉(zhuǎn)速 止”不是取決于掃描命令,并且對于兩條法則它是合法的。此外,法則 證了條件 2。因為它們的反應(yīng)沒有違反其他法則。因此, 于并行獨立類 型。相反,它可以很容易的看到它們不滿足順序獨立(提示:考慮到 態(tài) 備和托盤代碼 和突發(fā)事件)。 在本節(jié)結(jié)束,圖 1 顯示了上面定義的法則分類間的關(guān)系。一條法則歸為其中所提出的分類中的一類,如果它的相對獨立性遵循所有的其他對象法則。因此,屬于擴展順序獨立性的法則包括那些呈現(xiàn)限制順序獨立性還包括排他性法則。只有一個順序獨立的子集也獨立并行掃描。同樣,只有呈現(xiàn)并行獨立的一個法則子集也是順序獨立的。 所有這些都可以翻譯成序列化的控制代碼,我們將在下一節(jié)中看到。相反,既不是順序和并行獨立的法則必須重 寫,因為相應(yīng)的控制代碼和其他法則可能導(dǎo)致不一致。 14 代碼生成 根據(jù)“更容易”模型的對象定義提供了必要的信息生成模擬單元和系統(tǒng)的控制代碼。量將反映對象的屬性以及 件將對象法則轉(zhuǎn)換成條件操作的形式。一旦對象法則分成上面的獨立性分類(和不可歸類的法則已經(jīng)重寫),在它們自己的分類標準上,代碼生成可以進行。 在這節(jié)我們首先展示和證明 碼結(jié)構(gòu)轉(zhuǎn)換為不同的法則類型。然后我們討論對象內(nèi)的代碼排序,以便獲得滿足可串行性原則的控制代碼。最后,為了建立整個系統(tǒng)的控制,我們提出了一個 不同組件單元裝配 碼的一般標準。 法則轉(zhuǎn)換 排他性 我們已經(jīng)觀察到執(zhí)行方案是獨立于掃描模式的,因為每次只有一條法則可以違反(若有的話)。然后,對于恢復(fù)執(zhí)行法則操作的最簡單的執(zhí)行方案如下: 如果不是 后執(zhí)行 則 如果不是 后執(zhí)行 ? ? 否則 如果不是 后執(zhí)行 一個布爾變量(或者一個映射當前狀態(tài)為一個布爾值的函數(shù)),如果 則得到滿足它具有真值,如果違反了它有假值。此外,執(zhí)行 味著與 則相關(guān)的操作被執(zhí)行;用正式術(shù)語, 應(yīng)轉(zhuǎn)換 S\ 順序的獨立性 對于限制和擴展順序獨立法則,可以提出一個獨特的執(zhí)行方案。它不同于排他性法則,需要考慮在同樣掃描周期間,兩條或更多法同時違反: 如果不是 后執(zhí)行 如果不是 后執(zhí)行 ? ? ? 如果不是 后執(zhí)行 并行獨立 動作執(zhí)行被施加到當前狀態(tài),但它是由初始決定的。為了避免動作執(zhí)行影響法則合法性,很有必要首先執(zhí)行屬于這種分類的所有法則,然后應(yīng)用相對于反法則的動作。并行法則的整體影響是有執(zhí)行最后一次動作的狀態(tài)產(chǎn)生的。下面是我 們每次并行獨立出現(xiàn)的執(zhí)行方案: 如果不是 后標志 1: =真; 如果不是 后標志 2: =真; ? ? ? 如果不是 后標志 n: =真; 15 如果標志 1 然后 執(zhí)行 如果標志 2 然后 執(zhí)行 ? ? ? 如果標志 n 然后 執(zhí)行 標志 i 是一個布爾變量記錄著由 據(jù)初始狀態(tài) 設(shè)的值。另一種方案,即分開執(zhí)行兩個階段,但需要存儲初始狀態(tài) 是: 如果不是 后執(zhí)行 如果不是 后執(zhí)行 ? ? ? 如果不是 后執(zhí)行 S→ {真 假 }的真值函數(shù)把狀態(tài) 且僅當 滿足。在這兩種方案中,操作 i : S → S\ 意,這里的變換域是不是 為操作可能也適用于當前合法狀態(tài):僅基于初始狀態(tài)的操作激活。 對象控制代碼 源于單一對象法則譯成的代碼必須結(jié)合起來建立相關(guān)單元或系統(tǒng)的控制軟件。法則分類標準驅(qū)動法則轉(zhuǎn)換。這里我們看到在對象控制軟件里它們也驅(qū)動代碼命令。 假設(shè)對象行為是由 m< 其他 后,每條法則屬于第一組,它滿足兩個并行獨立條件和遵循所有其他法則。同樣的,每條法則屬于第二組,它滿足擴展順序獨立條件并遵循所有其他法則(兩個獨立類型的法則可以屬于任一組)。 一個對象執(zhí)行方案以確保在排序法中的可串行性,因此要先掃描那些前一組和在這些后面的一組。 2, ? , 并行掃描模式 ,,? , 順序掃描模式 生成的代碼結(jié)構(gòu)如下: 如果不是 后執(zhí)行 如 果不是 后執(zhí)行 ? ? ? 如果不是 后執(zhí)行 如果不是 然后執(zhí)行 ; 如果不是 然后執(zhí)行 ; () ? ? ? 如果不是 后執(zhí)行 其中每個 映射到 函數(shù)適用于引起前面動作的當前狀態(tài)。最后一條 16 則滿足順序獨立性,因此它們的掃描沒有違反前面的 m 法則。事實上,對于第一條 狀態(tài)是合法的,因此,如果 違反了它,這意味著 C m+1\中i=1,2, ? , m。由于順序獨 立的第二個條件適用于( )對,明顯的,對于第一條m 法則 (合法的。這也適用于( m+1) 的其他法則以及對于所有對象法則是合法的最后狀態(tài)。 一個更有效的對象執(zhí)行方案的結(jié)果是把順序獨立性法則分為三個不相交的子組:一個( A 組)收藏排他性法則,另一個( B 組)收藏剩余的限制順序獨立性法則,第三個(C 組 )收藏剩余的擴展順序獨立性法則。命名為 D 組的法則滿足并行獨立性,根據(jù)A,B,C,D 組的命令轉(zhuǎn)換法則可以獲得對象控制代碼。這將產(chǎn)生以下控制軟件結(jié)構(gòu): 如果不是 后執(zhí)行 否則 如果不是 后執(zhí)行 ? ? 否則 如果不是 后執(zhí)行 則 開始 如果不是 然后執(zhí)行 ; 如果不是 然后執(zhí)行 ; ? ? ? 如果不是 Lh+k 然后執(zhí)行 Ah+k ; 如果不是 (后執(zhí)行 ; 如果不是 (后執(zhí)行 ; ? ? ? 如果不是 Ln(后執(zhí)行 如果不是 Lh+k+1 然后執(zhí)行 Ah+k+1 ; 如果不是 Lh+k+2 然后執(zhí)行 Ah+k+2 ; ? ? ? 如果不是 后執(zhí)行 結(jié)束; 因為 A 組首先被掃描,法則掃描可以中斷一旦滿足排他性的法則違反了。只有它們沒有違反,剩余法則可以考慮。其中, B 型法則首先編碼強調(diào)它們不受下面并行獨立法則的影響。 系統(tǒng)控制編碼 軟件控制整個復(fù)雜系統(tǒng)終于建立起來了,其是通過由上面階段所形成的對象控制代17 碼組成。在開始最后一步之前,有必要從延伸的角度考慮系統(tǒng)的表示法。這意味著,參與復(fù)雜系統(tǒng)的每個單元必須有與本身相關(guān)的控制代碼,以及系統(tǒng)控制軟件必須包含盡可能多的每個對象控制的副本作為 相應(yīng)單元類型的一定數(shù)量的實例。創(chuàng)建一個對象代碼副本意味著復(fù)制兩個指令和數(shù)據(jù)存儲器用于存儲對象屬性。之后,最終代碼結(jié)構(gòu)是直接從方案組成和專業(yè)化層次結(jié)構(gòu)派生的,根據(jù)下面的基本規(guī)則: 從簡單到復(fù)雜單元 單元的有序控制是通過增加復(fù)雜性。一個單元需要考慮,在復(fù)合單元包含它之前,以便影響其的行為。例如,輸送機控制的三個副本和調(diào)車機車的兩個副本優(yōu)先于挑選灣控制軟件。 專門單元 如果一個對象被專業(yè)化的另一個定義,相對代碼通過添加特殊屬性和法則給那些超類型獲得。之后,一致性驗證適用于所有法則,生成的代碼遵循上面顯示的。 虛擬對象 最后,產(chǎn)生虛擬對象的代碼要么到處復(fù)制的虛擬對象屬性被召回要么成為例行程序,如果這是目標 后,如在前一種情況,進行一致性驗證和代碼生成。 根據(jù)這些規(guī)則,在每個執(zhí)行周期的最后,每個對象使用從組件和操作的信息獲得了一個全局合法狀態(tài)。然而,每個對象也可以修改組件的狀態(tài)(如果有的話):因為組件的代碼已經(jīng)被執(zhí)行了,一這種方式引入可能非法的決議被延遲到下一個執(zhí)行周期。為了避免承受不了外部事件的反應(yīng)次數(shù),適當?shù)膬?yōu)化技術(shù)正在研究當中。 18 軟件生命周期的影響 用本 文提出的方法,影響開發(fā)生命周期的兩個條件得到滿足。首先,模型通過分析設(shè)備結(jié)構(gòu)驅(qū)動,因此系統(tǒng)組成擴展到控制軟件。這意味著整個系統(tǒng),可實現(xiàn)通過組合模塊設(shè)計以供重復(fù)使用【 5, 15】,即,在不同上下文中使用不需要做任何修改。其次,一個可重復(fù)使用的設(shè)計獲得的結(jié)果比軟件代碼更有用和穩(wěn)定,因為它不受實現(xiàn)方面和約束的影響。對于 11】的一種 些都是必要的條件。別行動的兩個并行循環(huán):正向行動旨在獲得新的或修給的軟件系統(tǒng),可能有庫組件的重用和改寫,以及反 向行動旨在確認軟件系統(tǒng)可能的組成部分和分類到一個有用的庫以便重用。 我們目前的工作主要是涉及圖 2中表示的黑盒子的步驟,而持續(xù)的研究工作是考慮表示白盒子的步驟。下面我們簡單的通過黑盒子。 組件設(shè)計 我們考慮兩個基本系統(tǒng)組件單元及其可能的組合構(gòu)成組合結(jié)構(gòu)。每個模塊的特征在于 I/置和狀態(tài)變量,它的行為和約束的正確表示。組件要么是與現(xiàn)有系統(tǒng)自頂向下分析確定,或者定義的自低向上的復(fù)合結(jié)構(gòu)從基本物理單元開始。 圖 2: 組件細化 根 據(jù)“更容易”的方法,通過識別專門的結(jié)構(gòu),行為參數(shù)化法,組件間的上下文交互,模塊方案得到了改善。這提高了軟件的模塊化和重用潛力。 組件開發(fā) 為了準備它們的代碼生成,該模塊方案服從一致性和可串行性驗證。之后,不變函數(shù)的編碼可以很方便的預(yù)期它們在系統(tǒng)控制開發(fā)中的使用。 系統(tǒng)設(shè)計 系統(tǒng)設(shè)計很大程度受一個組件庫的可用性影響。此行動是根據(jù)相同的模型和組件設(shè)計使用的方法來進行的,因為系統(tǒng)只不過是一個復(fù)合單元。 系統(tǒng)改進 對于組件,通過識別專門的結(jié)構(gòu),行為參數(shù)化法,組件間的上下文交互,19 模塊方案得到了改善。 系統(tǒng)開發(fā) 對于一致性和可串行性的系統(tǒng)方案驗證。之后,不變函數(shù)的編碼進行要么當前 時,系統(tǒng)方案和相對不變量代碼可以歸類為組件庫成員。 20 結(jié)論 “更容易”模型的提出,連著通過簡單的例子,描述了它的應(yīng)用和方案實施以及改善過程。一致性標準已經(jīng)討論和一個獨有的串行和并行獨立分類法則已經(jīng)獲得。然后,通過這些分類,我們展示了從單一對象編碼到最后系統(tǒng)控制軟件的構(gòu)造,代碼生成是如何驅(qū)動的。 在許多正向和反向工程實驗中,“更容易”方法 已經(jīng)被驗證,其中一些在“更容易”項目里面進行。大部分的考慮的基于 常是通過定制化的基本類型之一的一種設(shè)備或變形,經(jīng)常采用同類的機械和電氣組件,以及由不同的硬件平臺控制。更重要的成就是: (?。┒x對象的 50%到 70%,現(xiàn)在可重復(fù)使用,代替了傳統(tǒng) 0%。從上下文無關(guān)的合法性和轉(zhuǎn)換法則看,它們的模塊可以清楚的識別和完全特征化; (ⅱ)雖然手動進行,有序的代碼生成顯示了在設(shè)計階段的知識捕獲就足以完全驅(qū)動編碼活動; (ⅲ)生成的代碼顯示更高軟件質(zhì)量,因為它的結(jié)果不影響程序員的個 人風格,以及它的結(jié)構(gòu)呈現(xiàn)特別適合于支持修改和擴展; (ⅳ)通過手動一致性驗證,模型錯誤很早和很容易地被識別和刪除,然而當前的習慣,錯誤檢測只由最終的代碼在模擬器上運行,或者更糟糕,在客戶現(xiàn)場測試系統(tǒng); (ⅴ)最后,方案可讀性確保了設(shè)備控制的一個完整和均衡的文檔,因此,在涉及設(shè)計和開發(fā)團隊上允許更好的交流。 目前的研究主要集中于把“更容易”方法擴展到其他系統(tǒng)生命周期階段。此外,為了幫助軟件設(shè)計者實現(xiàn)豐富和可靠的應(yīng)用方案,一個基于“更容易”模型電腦輔助支持正在開發(fā)。該包將提供許多正確性和一致性控制,特別是沿分 類層次的一致性和沿組合圖,一確保上下文無關(guān)和上下文的每個對象的相關(guān)的法則的兼容。 21 參考文獻 1. E., et , 3, 1992. 2. F., P. D. a to E. . 58, 1994. 3. F., G., P. D. 0542 1994. 4. F., G., P. D. of 95) (1995. 5. F., G., P. D. 11,30, 1995. 6. G., M., P. 8, 1995. 7. 1995. 8. P., E. 1990. 9. C. J. 1981. 10. D., et a of 6, 1990. 11. R. a of 1991. 12. 9, 1, 1993. 13. R. W. 1311995. 14. B. 15. 218,1993. 16. J., et 1991. 17. A. D. of 4, 1992. 18. Y. A a of W. . 1989.
收藏