專利名稱:優(yōu)化鏈路調(diào)度的方法
背景技術(shù):
發(fā)明領(lǐng)域本發(fā)明一般涉及通信網(wǎng),更具體地說,涉及基于周期性執(zhí)行的調(diào)度操作的通信網(wǎng)絡(luò)。
現(xiàn)有技術(shù)說明基金會(huì)TM現(xiàn)場總線(FOUNDATIONTMFIELDBUS)技術(shù)是由美國德州Austin現(xiàn)場總線基金會(huì)提供的一種開放技術(shù)。它是基于國際電工委員會(huì)61158現(xiàn)場總線標(biāo)準(zhǔn)的局域網(wǎng)型通信總線。該標(biāo)準(zhǔn)要求在周期性執(zhí)行的調(diào)度內(nèi)對總線上的某些周期性通信進(jìn)行調(diào)度。
雖然基金會(huì)現(xiàn)場總線技術(shù)允許設(shè)備之間進(jìn)行交互通信,但調(diào)度在某種程度上受到限制。例如,一次僅單個(gè)應(yīng)用處理器設(shè)備中的一個(gè)功能塊可以執(zhí)行。此外,一次僅一個(gè)設(shè)備可以在鏈路上發(fā)布(即發(fā)布(publication)或反算發(fā)布(back-calculation publication)),并且客戶-服務(wù)器活動(dòng)只可以在發(fā)布之間進(jìn)行。
功能塊通常按“自然順序”調(diào)度,從輸入到輸出,沿主連接進(jìn)行。具體地說,當(dāng)許多設(shè)備共享鏈路時(shí),“自然順序”調(diào)度往往產(chǎn)生大量相對“較短”的發(fā)布間隔。這些“短”間隔常常反映帶寬被浪費(fèi),因?yàn)榇罅颗抨?duì)的通信和排在其后的所有通信均會(huì)延遲,直到調(diào)度中產(chǎn)生足夠大的間隔為止。例如,顯示呼叫(call-up)和操作員站(operator station)顯示呼叫經(jīng)常會(huì)受到最嚴(yán)重的影響,因?yàn)樗鼈円话阈枰鄬^大的間隔來滿足巨大的信息傳輸需求。因此,每個(gè)宏周期傳送的客戶-服務(wù)器消息數(shù)量受到限制,達(dá)不到最優(yōu)應(yīng)用性能。
“自然順序”調(diào)度還經(jīng)常產(chǎn)生相對較長的調(diào)度,頻繁地造成相當(dāng)大的環(huán)路等待時(shí)間。由于較大的等待時(shí)間反映的是較舊的取樣和無效的性能,因此在關(guān)鍵的控制應(yīng)用中出現(xiàn)較大的等待時(shí)間常常是一個(gè)嚴(yán)重問題。
因此,需要一種改進(jìn)的調(diào)度方法。這種方法應(yīng)該可以基于固定的帶寬實(shí)現(xiàn)更高的通信利用率;縮短鏈路調(diào)度表(link schedule)的總調(diào)度部分;以及使環(huán)路等待時(shí)間最小以實(shí)現(xiàn)較好的控制。
發(fā)明概述至少在優(yōu)選實(shí)施例中,本發(fā)明的目的在于克服或從本質(zhì)上減輕現(xiàn)有技術(shù)的一個(gè)或多個(gè)缺點(diǎn)或提供有效的替代方案。
本發(fā)明的目的還在于提供一種用于優(yōu)化混合的調(diào)度/未調(diào)度的網(wǎng)絡(luò)調(diào)度的方法(混合網(wǎng)絡(luò)是一種其中一些實(shí)施帶寬調(diào)度,一些不實(shí)施帶寬調(diào)度的網(wǎng)絡(luò)),包括現(xiàn)場總線,具體為基金會(huì)現(xiàn)場總線。例如,通過區(qū)分功能塊序列及其相關(guān)發(fā)布的調(diào)度優(yōu)先級(jí),并在調(diào)度過程中使某些延遲最小,本發(fā)明方法可產(chǎn)生減小環(huán)路等待時(shí)間的鏈路調(diào)度表。
因此,本發(fā)明提供了一種為根據(jù)周期性執(zhí)行的調(diào)度進(jìn)行通信的網(wǎng)絡(luò)創(chuàng)建調(diào)度表的方法,它包括如下步驟首先識(shí)別需要執(zhí)行操作的多個(gè)功能塊,然后將每個(gè)功能塊標(biāo)識(shí)為一個(gè)或多個(gè)組的成員。接著,區(qū)分這些組的優(yōu)先級(jí),使得每個(gè)組具有相對于其它組的優(yōu)先級(jí),然后按基于每組優(yōu)先級(jí)的順序一次一組地調(diào)度至少含一個(gè)未調(diào)度功能塊的每個(gè)組,以在所述網(wǎng)絡(luò)上進(jìn)行通信。
本發(fā)明通過調(diào)度不同設(shè)備中的某些功能塊,以使它們各自的調(diào)度時(shí)間至少部分重疊,從而縮減了鏈路調(diào)度表的調(diào)度部分(即,例如與“自然調(diào)度”相比較)。因此,可以容納更多的活動(dòng),并可以縮短宏周期。
根據(jù)本發(fā)明方法,還可將發(fā)布分組,以便消除潛在的發(fā)布間隔。或者,因?yàn)檩^大的間隔有允許發(fā)出較長未調(diào)度消息的更大可能性,所以可以將一個(gè)發(fā)布設(shè)在兩個(gè)其它發(fā)布之間,以使所形成的兩個(gè)發(fā)布間隔具有非常大和非常小的間隔。例如,因?yàn)榉此惆l(fā)布沒有嚴(yán)格的定時(shí)要求,所以通??梢詫ζ溥M(jìn)行調(diào)度,使其在反算發(fā)布和非反算發(fā)布之前或之后立即執(zhí)行。這樣,減少了浪費(fèi)的帶寬,并提高了應(yīng)用性能。
最后,務(wù)必要注意的是,雖然本說明書中的思想是在單個(gè)應(yīng)用處理器設(shè)備場景中描述的,但本方法同樣適用于多處理器設(shè)備。在多處理器場景中,每次設(shè)備中可以有一個(gè)以上的功能塊執(zhí)行。另一方面,就以上對并發(fā)或部分并發(fā)、發(fā)布的上述限制而言,多處理器設(shè)備仍將被作為“單個(gè)”設(shè)備處理。
附圖簡介通過結(jié)合附圖理解以下針對本發(fā)明優(yōu)選實(shí)施例的詳細(xì)說明,可清楚本發(fā)明的其它目的、特征和優(yōu)點(diǎn),附圖中
圖1是與示例1相關(guān)的方框圖。
圖2是與示例1相關(guān)的自然調(diào)度的時(shí)序圖。
圖3是與示例1的優(yōu)化調(diào)度相關(guān)的時(shí)序圖。
圖4是與示例2相關(guān)的方框圖。
圖5是與示例2的自然調(diào)度相關(guān)的時(shí)序圖。
圖6是與示例2的優(yōu)化調(diào)度相關(guān)的時(shí)序圖。
圖7是與示例3相關(guān)的方框圖。
圖8是與示例3的自然調(diào)度相關(guān)的時(shí)序圖。
圖9是與示例3的優(yōu)化調(diào)度相關(guān)的時(shí)序圖。
圖10是與示例4相關(guān)的方框圖。
圖11是與示例4的自然調(diào)度相關(guān)的時(shí)序圖。
圖12是與示例4的優(yōu)化調(diào)度相關(guān)的時(shí)序圖。
發(fā)明的詳細(xì)說明定義以下為方便起見按一般類別分組的術(shù)語在本文中使用時(shí)具有如下含義a.等待時(shí)間環(huán)路等待時(shí)間輸入功能塊的處理取樣到控制單元被命令去校正輸出功能塊的偏差為止其間經(jīng)過的時(shí)間。
臨界環(huán)路等待時(shí)間最高優(yōu)先級(jí)環(huán)路中輸入功能塊的過程取樣到命令控制單元校正輸出功能塊的偏差之間經(jīng)過的時(shí)間。
等待時(shí)間系數(shù)“優(yōu)化的”臨界環(huán)路等待時(shí)間與“自然臨界環(huán)路等待時(shí)間”之比。
等待時(shí)間改善100%減去等待時(shí)間系數(shù),以百分比形式表示。
b.發(fā)布發(fā)布網(wǎng)絡(luò)上可為一個(gè)或多個(gè)節(jié)點(diǎn)同時(shí)得到的消息,常常是受調(diào)度的。
非反算發(fā)布(Non-Back-Calculation Publication)與反算(Back-Calculation)信息不關(guān)聯(lián)的發(fā)布。
反算發(fā)布(Back-Calculation Publication)與反算信息相關(guān)聯(lián)的發(fā)布,通常由先前執(zhí)行的塊在后續(xù)執(zhí)行周期用于初始化、防止復(fù)位終止(reset windup)和提供狀態(tài)信息。
發(fā)布間隔一個(gè)發(fā)布的結(jié)束到下一個(gè)受調(diào)度的發(fā)布的開始之間的時(shí)間。
與任何通信相關(guān)聯(lián)的額外時(shí)間(或“相關(guān)時(shí)間”)因任何消息損失的時(shí)間的估計(jì)平均長度。它可以包括例如歸因于訪問延遲的時(shí)間;因下一排隊(duì)消息超出可用時(shí)間,與“內(nèi)務(wù)管理”活動(dòng)(如傳遞令牌、探測節(jié)點(diǎn)、分配時(shí)間等)損失的時(shí)間。在本文的示例中,假定相關(guān)時(shí)間是15毫秒。
可用的發(fā)布間隔(或可用間隔)發(fā)布間隔中可用于不同于發(fā)布或反算發(fā)布的消息的部分。當(dāng)發(fā)布間隔等于或大于“任何通信所需的最小時(shí)間”時(shí),通過從“發(fā)布間隔”中減去“相關(guān)時(shí)間”來計(jì)算可用間隔。此定義基于如下假設(shè)最短的未調(diào)度事務(wù)耗用大約15毫秒;以及“與任何通信相關(guān)聯(lián)的額外時(shí)間”假定大約為15毫秒,當(dāng)它大于30毫秒時(shí),發(fā)布間隔就變成可用。因此,在本文的示例中,“任何通信所需的最小時(shí)間”是30毫秒。
未調(diào)度通信所需的最小時(shí)間(或“最小時(shí)間”)鏈路上未調(diào)度的通信(包括客戶/服務(wù)器交互)為完全執(zhí)行所需的最小時(shí)間長度。對于本文的示例,假定“任何通信所需的最小時(shí)間”大于30毫秒。
發(fā)布間隔系數(shù)自然宏周期的可用間隔與優(yōu)化宏周期的可用間隔之比。
發(fā)布改善100%減去發(fā)布間隔系數(shù),以百分比形式表示。
c.宏周期宏周期利用系數(shù)優(yōu)化宏周期時(shí)間與自然宏周期時(shí)間之比,以百分比形式表示。
宏周期的改善100%減去宏周期利用系數(shù),以百分比形式表示。
自然宏周期沿主連接,以輸入到輸出的順序安排功能塊執(zhí)行所產(chǎn)生的宏周期,其中每個(gè)發(fā)布在計(jì)算它的功能塊執(zhí)行之后立刻發(fā)生。
d.功能塊/序列功能塊(或塊)具有輸入和/或輸出、可與其它功能塊互連并對其輸入執(zhí)行算法以產(chǎn)生輸出的對象。
輸入功能塊(或輸入類功能塊)一般以從過程導(dǎo)出的值開始處理的功能塊(例如,A1、D1、PI)。此處采用術(shù)語“一般”是因?yàn)樵诖蠖鄶?shù)情況中,輸入塊位于一串功能塊的開始位置。但是,也有一些本領(lǐng)域技術(shù)人員會(huì)認(rèn)識(shí)到的模糊情況。
輸出功能塊(或輸出類功能塊)通常以向過程提供值而終結(jié)的功能塊(AO、DO、CAO、CDO)。此處采用術(shù)語“一般”是因?yàn)樵诖蠖鄶?shù)情況中,輸出塊位于一串功能塊的結(jié)束位置。但是,可以取輸出值并將其連接到另一個(gè)功能塊以進(jìn)行輔助計(jì)算,或甚至出于演示或測試目的將其作為模擬工廠值(simulated plant value)環(huán)回。這些是本領(lǐng)域技術(shù)人員會(huì)認(rèn)識(shí)到的模糊情況。
控制功能塊具有如下基本功能的功能塊將受過程影響的值與設(shè)定點(diǎn)(setpoint)或目標(biāo)值比較,并提供一個(gè)或多個(gè)輸出,這些輸出用于以某種方式控制過程達(dá)到設(shè)定點(diǎn)或目標(biāo)值,這一般通過輸出功能塊來進(jìn)行。
功能塊序列(或序列或功能塊序列)本文中的“序列”定義為一系列功能塊,其中術(shù)語序列定義為a)一組功能塊,其中與每個(gè)功能塊(在序列開始位置的功能塊除外)相關(guān)聯(lián)的一個(gè)輸入取決于直接在前功能塊的輸出;以及b)不輸入另一個(gè)功能塊的輸出或輸出另一個(gè)功能塊的輸入的單個(gè)功能塊。
控制環(huán)路序列以輸入塊開頭并以輸出塊結(jié)尾的功能塊序列。
監(jiān)視序列以輸入塊開頭且不包含控制塊或輸出塊的序列。因此,“監(jiān)視序列”是非控制環(huán)路序列或級(jí)聯(lián)環(huán)路序列的任何序列。
主連接輸入按FOUNDATION FIELDBUS功能塊應(yīng)用過程規(guī)范的形式模型定義且由每種功能塊的設(shè)計(jì)者指定或由特定應(yīng)用的用戶以其它方式指定的“主輸入”、“過程變量”或“級(jí)聯(lián)輸入”。
主連接輸出按FOUNDATION FIELDBUS功能塊應(yīng)用過程規(guī)范的形式模型定義且由每種功能塊的設(shè)計(jì)者指定或由特定應(yīng)用的用戶以其它方式指定的“主輸出”。例如,OUT、OUT_D等。
主連接按FOUNDATION FIELDBUS功能塊應(yīng)用過程規(guī)范的形式模型定義或由特定應(yīng)用的用戶以其它方式指定的“主連接輸入”到“主連接輸出”的引用。
e.級(jí)聯(lián)級(jí)聯(lián)環(huán)路序列以輸入塊開頭并以控制功能塊結(jié)尾的功能塊序列,其中的功能塊又(直接或間接)向下行流控制環(huán)路序列的功能塊提供輸出。
設(shè)定點(diǎn)(或控制目標(biāo))下行流或內(nèi)部控制塊用作它也要接收的主過程變量的目標(biāo)的值。上行流或外部級(jí)聯(lián)環(huán)路序列的控制功能塊向下行流或內(nèi)部的級(jí)聯(lián)環(huán)路序列的控制功能塊提供設(shè)定點(diǎn)。
下行流指其輸入由所引用的功能塊(referenced function block)的輸出提供的功能塊或功能塊序列。
上行流指其輸出提供給引用功能塊(referencring functionblock)的輸入的功能塊或功能塊序列。
內(nèi)部控制環(huán)路由另一個(gè)序列為其提供設(shè)定點(diǎn)(控制目標(biāo))的控制環(huán)路序列或級(jí)聯(lián)環(huán)路序列。內(nèi)部控制環(huán)路是相對于外部控制環(huán)路的下行流。
外部控制環(huán)路向另一個(gè)序列提供設(shè)定點(diǎn)(控制目標(biāo))的控制環(huán)路序列或級(jí)聯(lián)環(huán)路序列。外部控制環(huán)路是相對于內(nèi)部控制環(huán)路的上行流。
f.取樣偏差(Sample-Skew)/無取樣偏差取樣偏差多個(gè)輸入(或樣值)集的取樣時(shí)間之間的時(shí)間差。當(dāng)一起使用一組輸入功能塊時(shí),如在涉及多個(gè)取樣位置的每一個(gè)的計(jì)算(例如多個(gè)取樣位置或質(zhì)量流(包括溫度、壓力和壓力差)的平均計(jì)算)或多個(gè)取樣位置的比較(最小值、最大值和中間值)時(shí),每次取樣彼此的相對時(shí)間對于應(yīng)用可能重要,也可能不重要?!叭悠睢敝甘久看稳拥南鄬r(shí)間對于應(yīng)用不重要。
無取樣偏差多個(gè)輸入(或樣值)集的取樣時(shí)間之間沒有時(shí)間差。當(dāng)一起使用一組輸入功能塊時(shí),如在涉及多個(gè)取樣位置的每一個(gè)的計(jì)算(例如多個(gè)取樣位置或質(zhì)量流(包括溫度、壓力和壓力差)的平均計(jì)算)或多個(gè)取樣位置的比較(最小值、最大值和中間值)時(shí),每次取樣彼此的相對時(shí)間對于應(yīng)用可能重要,也可能不重要?!盁o取樣偏差”指示每次取樣的相對時(shí)間對應(yīng)用很重要。
縮略語本文中采用如下縮略語,其含義定義如下A1-模擬輸入功能塊Arith-算術(shù)計(jì)算功能塊AO-模擬輸出功能塊CAO-復(fù)雜模擬輸出功能塊D1-離散輸入功能塊DO-離散輸出功能塊CDO-復(fù)雜離散輸出功能塊PI-脈沖輸入功能塊Integrator-積分器功能塊ISe1-輸入選擇器功能塊PID-比例積分微分控制功能SP(CASJN)-設(shè)定點(diǎn)輸入。
PV(IN)-過程或主變量(或值)輸入。
優(yōu)選實(shí)施例的操作雖然下文所述步驟和子步驟是按順序執(zhí)行的,但本領(lǐng)域技術(shù)人員顯然明白可以按替代順序執(zhí)行這些步驟和子步驟。
1.識(shí)別功能塊序列為啟動(dòng)調(diào)度過程,必須識(shí)別某些功能塊組。最好,這些組是功能塊“序列”。但是,本領(lǐng)域技術(shù)人員顯然明白,在替代實(shí)施例中還可以標(biāo)識(shí)許多其它非“序列”的“組”。
此外,雖然上述識(shí)別序列的方法是優(yōu)選方法,但本領(lǐng)域技術(shù)人員顯然清楚可以許多種次優(yōu)的方式來標(biāo)識(shí)功能塊序列或其它功能塊組。而且,在替代實(shí)施例中可以將每個(gè)單獨(dú)的功能塊視為一個(gè)單獨(dú)的組。
1.1創(chuàng)建每個(gè)序列,最好一次一個(gè)序列,方法是從每個(gè)輸入類功能塊開始并沿每條從該輸入類功能塊的主連接輸出到后續(xù)“引用”功能塊所用輸出的主連接(通過“引用”功能塊的主連接輸入,如IN、IN_D、PV、PV_D、CAS_IN、CAS_IN_D、SEL_n等)繼續(xù)。如果沒有對主連接輸出的引用,則將該單個(gè)塊視為一個(gè)序列-無論該塊是否是輸入類功能塊、根據(jù)1.4節(jié)的功能塊等。
1.1.1如果引用塊已經(jīng)包含在此序列中,則不包含該引用塊,因?yàn)檫@會(huì)形成不需要的環(huán)形引用。
1.1.2引用塊的輸入連接是(非控制選擇器塊或輸出分離器塊等的)控制塊的級(jí)聯(lián)設(shè)定點(diǎn)連接,該序列終結(jié)而不包含該引用塊,因?yàn)樗鼘诹硪粋€(gè)控制環(huán)路序列中。
1.1.3如果有一條以上的主連接從輸入塊輸出,則根據(jù)1.1節(jié)將每條主連接視為“單獨(dú)的”序列并予以評估,這最好在完全識(shí)別出該序列之后進(jìn)行。
1.2然后,沿每條從“舊引用”塊的主連接輸出開始,到“新引用”塊使用的輸出的主連接繼續(xù)。但是,不應(yīng)該沿輸出類塊的輸出繼續(xù)。
因此,如果從1.1節(jié)直接到達(dá)本小節(jié),則“舊引用”塊是輸入類功能塊。另一方面,如果從1.3節(jié)直接到達(dá)本小節(jié),則“新引用”塊實(shí)質(zhì)上變成了“舊引用”塊。
1.2.1如果新引用塊已經(jīng)包含在此序列中,則不包含該引用塊,因?yàn)檫@會(huì)形成不需要的環(huán)形引用。
1.2.2如果“新引用”塊的輸入連接是(非控制選擇器塊或輸出分離器塊等的)控制塊的級(jí)聯(lián)設(shè)定點(diǎn)連接,則該序列終結(jié)而不包含該引用塊,因?yàn)樗鼘⒈话诹硪粋€(gè)控制環(huán)路序列中。
1.2.3如果有一條以上的主連接從該“舊引用”塊輸出,則根據(jù)1.1節(jié)將每條主連接視為“單獨(dú)的”序列并予以評估,這要在完全識(shí)別出該序列之后進(jìn)行。
1.3重復(fù)步驟1.2,直到?jīng)]有對主連接輸出的引用為止。
1.4如果還有根據(jù)上述規(guī)則未在序列中標(biāo)識(shí)的任何功能塊,則查找不具有輸入連接的每個(gè)塊;如同步驟1.1一樣開始新的功能塊序列;以及按規(guī)則1.1到1.3處理,將其如同輸入類功能塊來處理。
例如,雖然大多數(shù)功能塊序列以輸入類塊開始,但用于專門目的(如演示或測試)的人工控制的輸出類塊或功能塊序列可以具有以非輸入類塊開始的序列。
1.5在評估1.4之后,如果還有根據(jù)上述規(guī)則未在序列中標(biāo)識(shí)的任何功能塊,則選擇這些剩余功能塊中的任何一個(gè),如同步驟1.1一樣開始新的功能塊序列。根據(jù)規(guī)則1.1到1.3處理,將該塊如同輸入類功能塊來處理。因此,1.5節(jié)主要但不排他地用于處理環(huán)形功能塊引用問題。
1.6重復(fù)1.5直到?jīng)]有尚未被標(biāo)識(shí)為功能塊序列部分的功能塊為止。
例如,雖然大多數(shù)功能塊序列以輸入類塊或沒有輸入連接的塊開始,但原理上一個(gè)序列還可以由一系列構(gòu)成環(huán)路的塊組成,以使該序列中的每個(gè)塊具有輸入連接。
2.區(qū)分功能塊序列的優(yōu)先級(jí)接著區(qū)分這些序列的優(yōu)先級(jí)。在優(yōu)選實(shí)施例中,根據(jù)周期類型和周期長度來區(qū)分這些序列的優(yōu)先級(jí)。
2.1涉及控制的序列的優(yōu)先級(jí)高于所有未涉及控制的序列的優(yōu)先級(jí)。例如,控制環(huán)路序列和級(jí)聯(lián)環(huán)路序列具有比監(jiān)視序列更高的優(yōu)先級(jí)。
2.2在涉及控制的(例如控制環(huán)路序列和級(jí)聯(lián)環(huán)路序列)和未涉及控制的(例如監(jiān)視序列)每種類別中,執(zhí)行較快(即具有較短周期)的功能塊序列具有比執(zhí)行較慢(即具有較長周期)的功能塊序列更高的優(yōu)先級(jí)。
2.3當(dāng)控制序列和級(jí)聯(lián)序列具有相同的周期長度時(shí),控制環(huán)路序列具有比級(jí)聯(lián)環(huán)路序列更高的優(yōu)先級(jí)。這是因?yàn)榭刂菩蛄胁捎弥苯涌刂?,而?jí)聯(lián)序列通過為下行流控制環(huán)路序列或另一個(gè)級(jí)聯(lián)環(huán)路序列提供設(shè)定點(diǎn)來間接控制。
2.4對于基于2.1到2.3的優(yōu)先級(jí)相等的那些功能塊序列(例如周期均為2秒的兩個(gè)級(jí)聯(lián)序列),這些序列的未調(diào)度塊和發(fā)布需要占用鏈路調(diào)度表中較長時(shí)間(即功能塊執(zhí)行時(shí)間加相關(guān)發(fā)布時(shí)間)的那些功能塊序列具有比占用較短時(shí)間的那些功能塊序列更高的優(yōu)先級(jí)。基于“打破均衡(tie-breaking)”規(guī)則的原理,占用較長時(shí)間的序列更可能發(fā)生數(shù)量更多的調(diào)度沖突。
其它實(shí)施例只采用類型;只采用周期長度;采用實(shí)施者的判斷;和/或采用與序列、功能塊和/或打破“均衡”調(diào)度相關(guān)的任一因素或因素的組合。有許多這樣的其它方法,而且對本領(lǐng)域技術(shù)人員是顯而易見的。
3.創(chuàng)建鏈路調(diào)度表接著,通過基于下述優(yōu)先級(jí)將塊執(zhí)行和發(fā)布指定到鏈路調(diào)度表中的方式來對序列進(jìn)行調(diào)度。在調(diào)度這些序列之后最好將調(diào)度表規(guī)格化,而替代實(shí)施例可以在其它時(shí)間執(zhí)行規(guī)格化。
3.1最好在調(diào)度之前確定宏周期長度(即持續(xù)時(shí)間)。長度最好是參與功能塊(contributing function block)的周期的最小公倍數(shù)。不過,此操作可以在其它時(shí)間執(zhí)行,本專業(yè)技術(shù)人員容易知道這樣的選擇。
3.2從余下的最高優(yōu)先級(jí)功能塊序列開始,一次一個(gè)地將與序列相關(guān)的非反算元素(即功能塊和非反算發(fā)布)添加到鏈路調(diào)度表中,持續(xù)到所有序列均被指定為止。因此,在開始指定與次高優(yōu)先級(jí)功能塊序列的功能塊相關(guān)聯(lián)的“尚未調(diào)度”元素之前,指定與功能塊序列中每個(gè)功能塊相關(guān)聯(lián)的每個(gè)“尚未調(diào)度”元素。這樣,每個(gè)功能塊和每個(gè)必需的功能塊發(fā)布只被指定一次。
3.2節(jié)中所采用的“發(fā)布”指非反算發(fā)布。此外,第3節(jié)中的所有調(diào)度受下列附加條件約束3.2(A)任何給定設(shè)備內(nèi)的任何兩個(gè)功能塊的調(diào)度時(shí)間不得重疊。
3.2(B)任何兩個(gè)發(fā)布的調(diào)度時(shí)間不得重疊。
此外,最好對發(fā)布和功能塊執(zhí)行進(jìn)行調(diào)度,使得下列二者之間的延遲最小3.2(C)生成無需發(fā)布的輸出的功能塊執(zhí)行與直接輸入這種輸出的功能塊執(zhí)行之間;3.2(D)產(chǎn)生發(fā)布的功能塊的執(zhí)行與該產(chǎn)生發(fā)布的功能塊所產(chǎn)生的發(fā)布之間;3.2(E)輸入發(fā)布的功能塊執(zhí)行與輸入發(fā)布的功能塊所輸入的發(fā)布之間。
3.2.1首先在宏周期的相對的“零”時(shí)刻調(diào)度第一(即最高優(yōu)先級(jí)的)功能塊序列。但是,本領(lǐng)域技術(shù)人員會(huì)知道其它選擇。
3.2.2通過3.2.2.1節(jié)所述的逆向順序(reverse order)調(diào)度,以逆向順序?qū)μ峁┹敵龌虍a(chǎn)生發(fā)布(所述輸出或發(fā)布由鏈路調(diào)度表內(nèi)先前指定的功能塊接收)的功能塊序列進(jìn)行調(diào)度。即,調(diào)度應(yīng)該從“待調(diào)度”功能塊序列的結(jié)尾進(jìn)行到開始,其中,最好實(shí)現(xiàn)有關(guān)3.2(C)、3.2(D)和3.2(E)的最小延遲。
因此,應(yīng)用附加條件3.2(A)和3.2(B),以使“待調(diào)度”元素適當(dāng)后移,從而使沖突元素之間的延遲最小。即3.2.2(A)因?yàn)樵O(shè)備中兩個(gè)功能塊的調(diào)度時(shí)間不得重疊,所以盡可能在沖突之前使“待調(diào)度”功能塊開始。
3.2.2(B)因?yàn)槿魏蝺蓚€(gè)發(fā)布的調(diào)度時(shí)間不得重疊,所以盡可能在此沖突之前調(diào)度發(fā)布。
3.2.2.1逆向順序調(diào)度包括首先將“待調(diào)度”序列中的功能塊執(zhí)行或發(fā)布的開始時(shí)間調(diào)度為盡可能靠近已在調(diào)度表中的需要它的元素。(因此,逆向順序調(diào)度在很大程度上與如3.2.3.1節(jié)所述的正向順序(forward order)調(diào)度相反。)即,將“待調(diào)度”功能塊執(zhí)行的結(jié)束時(shí)間調(diào)度為盡可能靠近需要它的元素的開始。因此,這種調(diào)度顯然需要定義這些“待調(diào)度”元素的開始,以便考慮每個(gè)元素的持續(xù)時(shí)間。
然后以逆向順序一次一個(gè)地對“待調(diào)度”序列中或與之相關(guān)聯(lián)的需要調(diào)度的所有其它功能塊和發(fā)布進(jìn)行調(diào)度。同樣,依據(jù)3.2(C)節(jié)、3.2(D)節(jié)和3.2(E)節(jié),但遵循3.2.2(A)節(jié)和3.2.2(B)節(jié)執(zhí)行調(diào)度,以使“待調(diào)度”序列中的功能塊和發(fā)布之間的延遲最小。
3.2.2.2如果選擇無取樣偏差,則應(yīng)該檢驗(yàn)具有多個(gè)主輸入的功能塊,以查看直接在前提供塊的執(zhí)行時(shí)間是否完全相同。如果不相同,則應(yīng)該調(diào)整后面的一個(gè)或多個(gè)功能塊,以便與最早的重合,從而與避免執(zhí)行時(shí)間和發(fā)布沖突相一致。
3.2.3以如3.2.3.1節(jié)所述的正向順序?qū)χ苯永面溌氛{(diào)度表內(nèi)先前指定的功能塊的輸出或直接利用發(fā)布的功能塊序列進(jìn)行調(diào)度,一次調(diào)度一個(gè),并使延遲最小。此外,調(diào)度應(yīng)該從“待調(diào)度”功能塊序列的開始進(jìn)行到結(jié)尾,且最好使延遲最小。
相應(yīng)地,應(yīng)用附加條件3.2(A)和3.2(B),使得3.2.2(A)因?yàn)樵O(shè)備中兩個(gè)功能塊的調(diào)度時(shí)間不得重疊,所以在此沖突之后即可能早地使“待調(diào)度”功能塊開始。
3.2.2(B)因?yàn)槿魏蝺蓚€(gè)發(fā)布的調(diào)度時(shí)間不得重疊,所以在此沖突之后即可能早地開始發(fā)布。
因此,應(yīng)用附加條件3.2.3(A)和3.2.3(B)使“待調(diào)度”元素得以適當(dāng)?shù)奶崆埃詫_突元素之間的延遲減至最小。
3.2.3.1正向順序調(diào)度包括首先將“待調(diào)度”序列中第一功能塊的執(zhí)行開始調(diào)度為盡可能靠近提供所需輸出(或發(fā)布)的塊(或發(fā)布)。
然后從提供所需輸出或發(fā)布的元素,按正向順序一次一個(gè)地對“待調(diào)度”序列中或與之相關(guān)聯(lián)的需要調(diào)度的所有其它功能塊和發(fā)布進(jìn)行調(diào)度,并使延遲最小。同樣,依據(jù)3.2(C)、3.2(D)和3.2(E),但遵循3.2.2(A)和3.2.2(B)執(zhí)行調(diào)度,以使“待調(diào)度”序列中功能塊和發(fā)布之間的延遲最小。因此,沖突只需將“下一個(gè)元素”調(diào)度為盡可能靠近它應(yīng)該尾隨的元素即可。
3.2.2.2如果選擇無取樣偏差,則應(yīng)該檢驗(yàn)具有多個(gè)主輸入的功能塊,以查看直接在前提供塊的執(zhí)行時(shí)間是否完全相同。如果不相同,則應(yīng)該調(diào)整后面的一個(gè)或多個(gè)功能塊,以便與最早的重合,從而與避免執(zhí)行時(shí)間和發(fā)布中的沖突相一致。
3.2.4為等待時(shí)間目的,將滿足如下條件的功能塊序列視為獨(dú)立的不直接利用已指定到鏈路調(diào)度表中的功能塊的輸出(或不直接利用發(fā)布),且不提供輸出連接或產(chǎn)生發(fā)布,其中輸出連接或發(fā)布由先前調(diào)度的功能塊接收。因此,該功能塊序列被指定到鏈路調(diào)度表中盡可能靠近宏周期開始處的位置(且該序列的任何元素之間的延遲最小)。
3.2.4.1此外,最好在宏周期內(nèi)調(diào)整“待調(diào)度”序列中的任何部分,以使該“待調(diào)度”序列中元素之間的延遲最小?;蛘撸绻婕暗桨l(fā)布,則另一種與使延遲最小相比屬于次優(yōu)的選擇是將新序列安排為使同樣多的新發(fā)布緊鄰另一個(gè)已經(jīng)指定的發(fā)布(在之前或之后)。這樣,可以消除一個(gè)或多個(gè)發(fā)布間隔。這最好按照3.3執(zhí)行。
3.2.4.2如果選擇無取樣偏差,則應(yīng)該檢驗(yàn)具有多個(gè)主輸入的功能塊,以查看直接在前提供塊的執(zhí)行時(shí)間是否完全相同。如果不相同,則應(yīng)該調(diào)整后面的一個(gè)或多個(gè)功能塊,以便與最早的重合,從而與避免執(zhí)行時(shí)間和發(fā)布中的沖突相一致。
3.3在已經(jīng)將所有功能塊序列的非反算發(fā)布已調(diào)度元素指定到調(diào)度表(即,功能塊和非反算發(fā)布)之后,則每個(gè)反算發(fā)布得到了調(diào)度??梢詫⑵渲忻總€(gè)發(fā)布調(diào)度為在其可用之后和被使用之前的任何時(shí)間發(fā)生(通常在下一個(gè)執(zhí)行周期內(nèi))。滿足此條件的發(fā)布間隔是合格的發(fā)布間隔。
優(yōu)化目標(biāo)是盡可能安排反算發(fā)布與另一個(gè)已經(jīng)指定的發(fā)布緊鄰(在之前或之后,即屬于其中任一類),以使“潛在的發(fā)布間隔”最小(如3.3節(jié)上下文中所定義的那樣)。
如果存在正好適合待調(diào)度發(fā)布的任何一個(gè)合格的發(fā)布間隔,則應(yīng)該將發(fā)布置于任何一個(gè)完全適合的間隔中。這樣,使“潛在的發(fā)布間隔”最小;實(shí)際上,通過消除使該間隔完全最小。
如果有一個(gè)合格的發(fā)布間隔但它不是“完全適合”,則最好將該發(fā)布置于與另一個(gè)先前調(diào)度的發(fā)布鄰接,以使此情況下固有的兩個(gè)“潛在發(fā)布間隔”之一最小(即完全消除)。如果無法使該發(fā)布與先前調(diào)度的發(fā)布鄰接,則應(yīng)將其設(shè)置為使兩個(gè)“潛在發(fā)布間隔”中的較大者最大化。即,如果發(fā)布鄰接不可能,則最好將其設(shè)置為使因其存在而造成的兩個(gè)“潛在發(fā)布間隔”在大小上盡可能不同(即一個(gè)大,一個(gè)小)。
同樣地,如果存在一個(gè)以上合格的發(fā)布間隔且均不完全適合,則應(yīng)該將反算發(fā)布安排在最小的發(fā)布間隔中,以將較大的發(fā)布間隔保留用于較長的消息。此外,如上所述,使較小的“不完全適合的發(fā)布間隔”中固有的兩個(gè)“潛在發(fā)布間隔”中的較大者最大化。其基本原理是,大的“潛在發(fā)布間隔”比兩個(gè)較小發(fā)布間隔具有被使用的更大可能性,因?yàn)槲凑{(diào)度的消息在長度上有所不同,較長的消息可能阻塞隊(duì)列中正在等待通過網(wǎng)絡(luò)傳輸?shù)钠渌ⅰ?br>
最后,雖然所述方法最好既包括步驟3.2又包括步驟3.3,但根據(jù)步驟3.3的反發(fā)布調(diào)度也可以結(jié)合其它調(diào)度算法來執(zhí)行。
3.4在指定了所有調(diào)度元素之后,查找時(shí)間(時(shí)間可能是負(fù)值)最早的調(diào)度元素,并將其調(diào)整為在宏周期內(nèi)具有零的偏移量,并按相同的偏移量調(diào)整其余所有元素,以便在調(diào)度表內(nèi)保持相同的相對位置。此外,因?yàn)椴⒎撬姓{(diào)度在持續(xù)時(shí)間上可以足夠短,以致可以在給定宏周期內(nèi),所以最好執(zhí)行有效性檢查,并將錯(cuò)誤呈示給用戶。
優(yōu)選實(shí)施例的示例如下示例說明本發(fā)明方法的應(yīng)用,并強(qiáng)調(diào)其優(yōu)點(diǎn)。
4.0示例1激勵(lì)器中的兩個(gè)簡單的控制環(huán)路如圖1所示,當(dāng)簡單環(huán)路控制與激勵(lì)器共存時(shí),每個(gè)環(huán)路只有一個(gè)從發(fā)送器到激勵(lì)器的發(fā)布。
4.1自然鏈路調(diào)度表如下給出并反映在圖2中的自然鏈路調(diào)度表指示,第一環(huán)路的功能塊首先按自然順序執(zhí)行。第二環(huán)路順序完全相同,但在第一環(huán)路全部執(zhí)行完畢之后才開始。(時(shí)間偏移量以毫秒計(jì)。)調(diào)度表功能開始 長度 結(jié)束 發(fā)布間隔 可用間隔AI1 exec(執(zhí)行) 03030AI1 PUB(發(fā)布) 30 1444 827 812PID1 exec 44 70114AO1 exec114 45159AI2 exec159 30189AI2 PUB 189 14203 145 130
PID2 exec20370273AO2 exec 273453189729424.2優(yōu)化的鏈路調(diào)度優(yōu)化的鏈路調(diào)度如下及圖3所示。假定將第一序列指定到調(diào)度表中第二序列之前,則在宏周期開始處按3.2.4將第二序列指定到鏈路。然后按3.2.4 1對其進(jìn)行調(diào)整,以使元素之間的延遲最小。這樣,如以下及圖3中所示,宏周期的整個(gè)調(diào)度部分被大大縮短。(時(shí)間偏移量以毫秒計(jì)。)調(diào)度表功能開始長度 結(jié)束 發(fā)布間隔可用間隔AI1 exec0 30 30AI1 PUB 30 14 44 972 957PID1 exec 44 70 114AO1 exec114 45 159AI2 exec14 30 44AI2 PUB 44 14 58 00PID2 exec 58 70 128AO2 exec128 45 173972 9574.3改善的比率由于使兩發(fā)布彼此相鄰,所以發(fā)布系數(shù)有輕微的改善。但是,最顯著的是宏周期利用率有46%的改善。
等待時(shí)間系數(shù) 100%等待時(shí)間改善 0%發(fā)布間隔系數(shù) 98%發(fā)布改善 2%宏周期利用系數(shù) 54%宏周期利用率改善 46%
5.0示例2發(fā)送器中兩個(gè)簡單的控制環(huán)路雖然功能與前一個(gè)示例(兩個(gè)簡單控制環(huán)路)完全相同,但鏈路調(diào)度不同。當(dāng)簡單環(huán)路控制與發(fā)送器共存時(shí),有兩個(gè)發(fā)布一個(gè)是從控制器到激勵(lì)器的輸出,另一個(gè)是從激勵(lì)器返回到控制器的反算參數(shù)。如圖4所示,這些對上述兩個(gè)環(huán)路中的每一個(gè)發(fā)生。
5.1自然鏈路調(diào)度如下及圖5所示,自然鏈路調(diào)度首先執(zhí)行第一環(huán)路的功能塊,其中一計(jì)算出值就完成PID1輸出的發(fā)布,一旦發(fā)布激勵(lì)器的反算可用就將其發(fā)布。第二環(huán)路順序完全相同,但直到第一環(huán)路,包括反算全部完成才開始。
調(diào)度表功能 開始 長度 結(jié)束 發(fā)布間隔 可用間隔AI1 exec 0 30 30PID1 exec 30 70 100PID1 PUB 10014 114 754 739AO1 Exec 11445 159AO1-BK PUB 15914 173 4530AI2 exec 17330 203PID2 exec 20370 273PID2 PUB 27314 287 100 85AO2 Exec 28745 332AO2-BK PUB 33214 346 4530944 8845.2.優(yōu)化的鏈路調(diào)度假定將第一序列指定到調(diào)度表中第二序列之前,則在宏周期開始按3.2.4將第二序列指定到鏈路。然后按3.2.4 1對其進(jìn)行調(diào)整,以使元素之間的延遲最小。因此,如下及圖6所示,宏周期的整個(gè)調(diào)度部分被大大縮短,從而允許在其中執(zhí)行更多的調(diào)度。
反算發(fā)布彼此相鄰。因此,假定反算發(fā)布無法早于它們相應(yīng)的PID功能塊執(zhí)行完成時(shí)發(fā)出,則無法使它們分割的原始發(fā)布間隔更加不等;并且正好在下一周期它們各自需要的PID功能塊執(zhí)行之前發(fā)出它們將形成有些相等的發(fā)布間隔。
調(diào)度表功能開始 長度 結(jié)束 發(fā)布間隔 可用間隔AI1 exec0 30 30PID1 exec 30 70 100PID1 PUB100 14 114 913898AO1 Exec114 45 159AO1-BK PUB 159 14 173 31 16AI2 exec14 30 44PID2 exec 44 70 114PID2 PUB114 14 128 0 0AO2 Exec128 45 173AO2-BK PUB 173 14 187 0 09449145.3改善的比率因?yàn)槊總€(gè)環(huán)路都沒有可刪除的等待時(shí)間,所以無法取得等待時(shí)間方面的改善。但是,由于使兩個(gè)發(fā)布彼此相鄰,所以發(fā)布系數(shù)上有輕微改善。但是,最顯著的是宏周期利用率有46%的改善。
等待時(shí)間系數(shù)100%等待時(shí)間改善0%發(fā)布間隔系數(shù)98%發(fā)布的改善 2%宏周期利用系數(shù) 54%宏周期利用率的改善 46%
6.0示例3三信號(hào)選擇器當(dāng)采用三個(gè)冗余輸入時(shí),輸入選擇器功能塊選擇其中一個(gè)輸入,或所有輸入或一些輸入的平均值,具體取決于配置目標(biāo)。圖7顯示了采用三信號(hào)選擇器的例子。
6.1自然鏈路調(diào)度如下及圖8所示,自然鏈路調(diào)度執(zhí)行立即發(fā)布其輸出的第一AI塊。然后,第二AI塊執(zhí)行,并立即發(fā)布其輸出。接著,第三AI塊執(zhí)行,并立即發(fā)布其輸出。最后,輸入選擇器塊執(zhí)行,之后PID和AO塊接著執(zhí)行。
調(diào)度表功能開始 長度 結(jié)束 發(fā)布間隔 可用間隔AI1 exec0 30 30AI1 PUB 30 14 44 898 883AI2 exec44 30 74AI2 PUB 74 14 88 30 0AI3 exec88 30 118AI3 PUB 11814 132 30 0ISe1 exec 13230 162PID exec16270 232AO exec 23245 277958 8836.2優(yōu)化的鏈路調(diào)度為了使偏差最小,可以選擇“無取樣偏差”,并且可以在三個(gè)獨(dú)立的設(shè)備上對所有三個(gè)信號(hào)同時(shí)取樣。因此,如下其圖9所示,所有三個(gè)AI塊同時(shí)在0毫秒階段執(zhí)行。然后,ISe1、PID和AO依次執(zhí)行。因此,利用數(shù)據(jù)的功能塊不會(huì)遇到不同輸入引起的等待時(shí)間不同的情況,從而大大改善了宏周期利用率。
另一方面,如果已將無取樣偏差關(guān)閉,則AI1、AI2和AI3將分別在0、14和28毫秒時(shí)刻開始執(zhí)行,而它們各自的發(fā)布仍在每個(gè)AI完成執(zhí)行之后立刻按調(diào)度順序執(zhí)行,即在30、44和58毫秒時(shí)刻執(zhí)行。不過,無論AI塊執(zhí)行是同時(shí)進(jìn)行還是偏移執(zhí)行,它們始終必須按優(yōu)先級(jí)分別進(jìn)行發(fā)布。
調(diào)度表功能 開始 長度 結(jié)束 發(fā)布間 可用間隔 隔AI1 exec 0 30 30AI1 PUB30 14 44 958 943AI2 exec 0 30 30AI2 PUB44 14 58 0 0AI3 exec 0 30 30AI3 PUB58 14 72 0 0ISe1 Exec 72 30 102PID Exec 10270 172AO Exec17245 217958 9136.3改善的比率通過并行執(zhí)行所有A1,可以使等待時(shí)間和宏周期利用系數(shù)改善22%。通過彼此相鄰地發(fā)布所有三個(gè)發(fā)布,可以消除兩個(gè)小間隔,從而提高鏈路帶寬對其它用戶的可用性。
等待時(shí)間系數(shù) 78%等待時(shí)間改善 22%發(fā)布間隔系數(shù) 94%發(fā)布的改善 6%宏周期利用系數(shù) 78%宏周期改善 22%
7.0示例4三個(gè)級(jí)聯(lián)在級(jí)聯(lián)應(yīng)用中,最外層的AI功能塊通常對移動(dòng)最慢的過程變量(例如溫度)取樣,而最里層的AI功能塊通常對移動(dòng)最快的過程變量(如壓力或流量)取樣。圖10給出了一種典型應(yīng)用的示例。
7.1自然鏈路調(diào)度如圖11所示,自然鏈路調(diào)度執(zhí)行第一AI功能塊及其控制器,然后沿每個(gè)設(shè)備內(nèi)的連接路徑,從AI功能塊開始向AO功能塊繼續(xù)。它還包括執(zhí)行在自然圖示位置上的積分器功能塊。
調(diào)度表功能 開始 長度 結(jié)束 發(fā)布間隔 可用間隔AI1 exec 0 3030PID1 exec30 6090PID1 PUB 90 14104 136 121AI4 exec 10430134AI4 PUB 13414148 30 0AI2 exec 14830178PID2 exec17860238PID2 PUB 23814252 90 75PID2-BK PUB 25214266 00AI3 exec 26630296AI3 PUB 29614310 30 0Arith exec 31035345Integrator exec 34535380PID3 exec38060440PID3-BK PUB 44014454 130 115AO exec 45445499416 3117.2優(yōu)化的鏈路調(diào)度如下序列表給出示例4中的序列并區(qū)分這些序列的優(yōu)先級(jí)。
序列表包括基于圖10的類型和周期
+輸入到輸出塊序列是控制環(huán)路序列輸入到控制功能塊的序列是級(jí)聯(lián)環(huán)路序列輸入塊序列或輸入到其它塊序列是監(jiān)視序列利用以上序列表和如下所述的步驟創(chuàng)建優(yōu)化的鏈路調(diào)度表。按如下步驟創(chuàng)建如下及圖12所示的優(yōu)化的鏈路調(diào)度表A首先調(diào)度序列ID#1,因?yàn)樗亲罡邇?yōu)先級(jí)的未調(diào)度序列。它是根據(jù)速度(5秒)及類型(控制)的最高優(yōu)先級(jí)。
1.AI3 exec2.AI3 PUB3.Arith exec4.PID3 exec5.AO execB.然后,相對于PID3的輸入需要,將次高優(yōu)先級(jí)的環(huán)路及其相關(guān)發(fā)布ID#5“拖入”現(xiàn)有調(diào)度表中,從而避免與執(zhí)行和發(fā)布的任何潛在沖突。選擇序列ID#5作為第二序列是因?yàn)?,它在剩余的非監(jiān)視類型序列(即序列3、5和6)中具有“最小”(最快)的周期,并且是“級(jí)聯(lián)”序列。正好在執(zhí)行前,PID3 exec需要序列功能塊(AI2-PID2)的輸出,由此根據(jù)該需要以逆向順序調(diào)度PID2 PUB。
6.PID2 PUB7.PID2 exec8.AI2 execC.序列ID#3和#6均涉及控制,未指定的部分以2-秒周期執(zhí)行。但是,序列ID#3優(yōu)先,因?yàn)樗强刂菩蛄卸鳬D#6是級(jí)聯(lián)序列。由于該序列的輸出由算術(shù)功能塊使用,故根據(jù)該需要以逆向順序?qū)ζ溥M(jìn)行調(diào)度。但是,因?yàn)锳I3正好在執(zhí)行算術(shù)功能塊之前發(fā)布它的輸出,所以AI4的發(fā)布后移進(jìn)行,以便它正好在AI3發(fā)布開始之前完成。
9.AI4 PUB10.AI4 execD.將涉及控制的唯一剩余序列標(biāo)識(shí)為序列#6。此級(jí)聯(lián)序列以PID1的發(fā)布結(jié)束,該發(fā)布為先前調(diào)度的PID2功能塊所需要。因此,將PID1 PUB調(diào)度為正好在PID2執(zhí)行之前完成。此外,還將PID1調(diào)度為正好在調(diào)度該發(fā)布之前完成;并將AI1塊調(diào)度為正好在PID1塊執(zhí)行之前執(zhí)行完成。
11.PID1 PUB12.PID1 exec13.AI1 execE.此時(shí),已沒有涉及控制且含未調(diào)度功能塊的序列。因此,接下來調(diào)度含未調(diào)度功能塊的監(jiān)視序列(即序列#2和#4)。因?yàn)锳I3、AI4及算術(shù)功能塊已經(jīng)得到調(diào)度,所以積分器功能塊是這兩個(gè)序列中剩下的唯一未調(diào)度功能塊。因此,接下來可以任選其一來調(diào)度。
因?yàn)樵摲e分器的輸入取決于算術(shù)功能塊的執(zhí)行,所以將其調(diào)度為盡可能在算術(shù)功能塊執(zhí)行完成之后執(zhí)行。但是,因?yàn)榉e分器駐留在與PID3和AO(它們先前已依據(jù)其較高優(yōu)先級(jí)作了調(diào)度)相同的單應(yīng)用處理器中,所以無法在AO完成執(zhí)行之后立刻調(diào)度積分器。
12.Integrator execF.最后,按照3.3,在反算發(fā)布的“可用”到“需要”的時(shí)間范圍內(nèi)調(diào)度反算發(fā)布,以使它們與其它發(fā)布相鄰。PID3是級(jí)聯(lián)控制塊中最里面的控制塊,因而它具有較高的優(yōu)先級(jí),然后調(diào)度PID2。(PID1無需發(fā)布它的反算輸出,因?yàn)闆]有功能塊需要它。)更具體地說,當(dāng)PID3完成執(zhí)行時(shí),PID3 BK就可供發(fā)布,并且其發(fā)布必須在PID2開始執(zhí)行之前完成。因此,對它的調(diào)度可以在PID3完成之后宏周期結(jié)束之前或宏周期開始一直到PID2開始執(zhí)行的時(shí)間(減去其發(fā)布時(shí)長)內(nèi)進(jìn)行。在這些范圍內(nèi)只有一個(gè)其它發(fā)布,即PID1的發(fā)布被調(diào)度。因?yàn)樗荒茉谀侵蟀l(fā)布(即太遲),所以正好在PID1PUB之前對其進(jìn)行調(diào)度。因此,此鄰接安排消除了根據(jù)3.3節(jié)的“潛在發(fā)布間隔”。
當(dāng)PID2完成執(zhí)行時(shí),PID2 BK就可供發(fā)布,并且它的發(fā)布必須在PID1開始執(zhí)行之前完成。對它的調(diào)度可以在PID2完成之后宏周期結(jié)束之前,或宏周期開始到PID1開始執(zhí)行的時(shí)間(減去其發(fā)布時(shí)長)內(nèi)進(jìn)行。在這些范圍內(nèi)只調(diào)度了一個(gè)其它發(fā)布,即PID2的發(fā)布。因?yàn)樗荒茉赑ID2發(fā)布之前發(fā)布(即它尚未就緒),所以正好在PID2的發(fā)布之后對其進(jìn)行調(diào)度,從而消除3.3節(jié)中的“潛在發(fā)布間隔”。
13.PID3 BK PUB14.PID2 BK PUB因此,優(yōu)化的鏈路調(diào)度表為
調(diào)度表功能 開始 長度 結(jié)束 發(fā)布間隔 可用間隔AI1 exec 0 30 30PID1 exec 30 60 90PID1 PUB 90 14 104 00AI4 exec 85 30 115AI4 PUB 11514 129 11 0AI2 exec 74 30 104PID2 exec 10460 164PID2 PUB 16414 178 21 0PID2-BK PUB 17814 192 00AI3 exec 99 30 129AI3 PUB 12914 143 00Arith exec14335 178Integrator exec 28335 318PID3 exec 17860 238PID3-BK PUB 76 14 90 384 369AO exec 23845 283416 3697.3改善的比率通過利用并行執(zhí)行以及將積分器和PID3-BK PUB的執(zhí)行移至最后控制元素的執(zhí)行之后,使最關(guān)鍵環(huán)路的等待時(shí)間改善了21%,以及使宏周期利用系數(shù)改善了43%。通過彼此相鄰地執(zhí)行發(fā)布,使發(fā)布有4%的改善。
等待時(shí)間系數(shù) 79%等待時(shí)間改善 21%發(fā)布間隔系數(shù) 96%發(fā)布的改善4%宏周期利用系數(shù)57%
宏周期改善 43%本發(fā)明主要作為一種優(yōu)化基金會(huì)現(xiàn)場總線鏈路調(diào)度的方法描述。但是,本領(lǐng)域技術(shù)人員會(huì)理解,本發(fā)明并不局限于這種特定的應(yīng)用領(lǐng)域,它還適用于任何基于周期性執(zhí)行的調(diào)度工作的通信網(wǎng)絡(luò)。
因此,本領(lǐng)域技術(shù)人員顯然清楚,可以對本發(fā)明進(jìn)行各種變更和修改而不背離所附權(quán)利要求書限定的本發(fā)明精神和范圍。
權(quán)利要求
1.一種為根據(jù)周期性執(zhí)行的調(diào)度進(jìn)行通信的網(wǎng)絡(luò)創(chuàng)建鏈路調(diào)度表的方法,所述方法包括如下步驟識(shí)別需要執(zhí)行的多個(gè)功能塊;將每個(gè)所述功能塊標(biāo)識(shí)為一個(gè)或多個(gè)組的成員;區(qū)分這些組的優(yōu)先級(jí),以使每個(gè)組具有相對于其它組的優(yōu)先級(jí);以及按基于每組優(yōu)先級(jí)的順序一次一組地調(diào)度至少含一個(gè)未調(diào)度功能塊的每個(gè)所述組,以在所述網(wǎng)絡(luò)上進(jìn)行通信。
2.如權(quán)利要求1的方法,其特征在于還包括如下步驟識(shí)別與每個(gè)功能塊相關(guān)聯(lián)的每個(gè)非反算發(fā)布。
3.如權(quán)利要求2的方法,其特征在于所述組調(diào)度還包括使每個(gè)組內(nèi)一個(gè)或多個(gè)元素之間的延遲最小。
4.如權(quán)利要求3的方法,其特征在于所述組調(diào)度還包括使某些組之間的延遲最小。
5.如權(quán)利要求4的方法,其特征在于所述組調(diào)度還包括使下列二者之間的延遲最小a)產(chǎn)生主連接輸出的功能塊的執(zhí)行完成與直接輸入所述產(chǎn)生主連接輸出的功能塊所產(chǎn)生的主連接輸出的功能塊的執(zhí)行開始之間;b)產(chǎn)生非反算發(fā)布的功能塊的執(zhí)行完成與所述產(chǎn)生非反算發(fā)布的功能塊所產(chǎn)生的非反算發(fā)布之間;以及c)輸入非反算發(fā)布的功能塊的執(zhí)行開始與所述輸入非反算發(fā)布的功能塊所輸入的非反算發(fā)布之間。
6.如權(quán)利要求5的方法,其特征在于使所述延遲最小的步驟受如下限制條件約束a)功能塊調(diào)度限制,其禁止與一個(gè)單應(yīng)用處理器設(shè)備相關(guān)聯(lián)的兩個(gè)功能塊的執(zhí)行時(shí)間重疊;以及b)發(fā)布調(diào)度限制,其禁止任何兩個(gè)發(fā)布的執(zhí)行時(shí)間重疊,由此禁止如下每種情況兩個(gè)非反算發(fā)布至少部分重疊;兩個(gè)反算發(fā)布至少部分重疊;以及一個(gè)非反算發(fā)布與一個(gè)反算發(fā)布至少部分重疊。
7.一種為根據(jù)周期性執(zhí)行的調(diào)度進(jìn)行通信的網(wǎng)絡(luò)創(chuàng)建鏈路調(diào)度表的方法,所述方法包括如下步驟識(shí)別需要執(zhí)行的多個(gè)功能塊;將每個(gè)所述功能塊標(biāo)識(shí)為一個(gè)或多個(gè)組的成員;基于至少下列一項(xiàng)區(qū)分這些組的優(yōu)先級(jí),以使每個(gè)組具有相對于其它所述組的優(yōu)先級(jí)與各相應(yīng)組關(guān)聯(lián)的組類型;與各相應(yīng)組關(guān)聯(lián)的周期長度;以及按基于每組優(yōu)先級(jí)的順序一次一組地調(diào)度至少含一個(gè)未調(diào)度功能塊的每個(gè)所述組,以在所述網(wǎng)絡(luò)上進(jìn)行通信。
8.如權(quán)利要求7的方法,其特征在于還進(jìn)一步基于組類型區(qū)分所述組的優(yōu)先級(jí),使得每個(gè)組具有在與各相應(yīng)組關(guān)聯(lián)的周期長度范圍內(nèi)相對于其它所述組的優(yōu)先級(jí)。
9.如權(quán)利要求8的方法,其特征在于區(qū)分所述組的優(yōu)先級(jí)的所述步驟基于與各相應(yīng)組關(guān)聯(lián)的周期長度和與各相應(yīng)組關(guān)聯(lián)的組類型,其中相對較短的每個(gè)所述周期長度具有高于相對較長的每個(gè)所述周期長度的優(yōu)先級(jí);屬于監(jiān)視類型的每個(gè)所述組具有低于不屬于監(jiān)視類型的每個(gè)所述組的優(yōu)先級(jí);以及當(dāng)級(jí)聯(lián)類型組和控制類型組具有相等大小的周期長度時(shí),所述控制類型組具有比所述級(jí)聯(lián)類型組高的優(yōu)先級(jí)。
10.如權(quán)利要求9的方法,其特征在于所述組調(diào)度步驟還包括在滿足如下條件時(shí),在所述調(diào)度中盡可能早地調(diào)度含有至少一個(gè)已調(diào)度功能塊的每個(gè)組當(dāng)該組中所有未調(diào)度塊均是獨(dú)立的,且所述獨(dú)立組中的每個(gè)未調(diào)度塊不產(chǎn)生被執(zhí)行時(shí)間在所述調(diào)度內(nèi)的功能塊直接輸入的主連接輸出;不產(chǎn)生被執(zhí)行時(shí)間在所述調(diào)度內(nèi)的功能塊直接輸入的非反算發(fā)布;不直接輸入執(zhí)行時(shí)間在所述調(diào)度內(nèi)的功能塊所產(chǎn)生的非反算發(fā)布;不直接輸入執(zhí)行時(shí)間在所述調(diào)度內(nèi)的功能塊所產(chǎn)生的主連接輸出。
11.如權(quán)利要求10的方法,其特征在于盡早調(diào)度的所述步驟還包括在所述調(diào)度內(nèi)調(diào)整每個(gè)獨(dú)立組中的未調(diào)度塊,以使每個(gè)獨(dú)立組內(nèi)的一個(gè)或多個(gè)元素之間的延遲最小。
12.如權(quán)利要求11的方法,其特征在于盡早調(diào)度的所述步驟還包括在所述調(diào)度內(nèi)調(diào)整每個(gè)獨(dú)立組中獨(dú)立的未調(diào)度塊,以使下列二者之間的延遲最小a)產(chǎn)生主連接輸出的功能塊的執(zhí)行完成與直接輸入所述產(chǎn)生主連接輸出的功能塊所產(chǎn)生的主連接輸出的功能塊的執(zhí)行開始之間;b)產(chǎn)生非反算發(fā)布的功能塊的執(zhí)行完成與所述產(chǎn)生非反算發(fā)布的功能塊所產(chǎn)生的非反算發(fā)布之間;以及c)輸入非反算發(fā)布的功能塊的執(zhí)行開始與所述輸入非反算發(fā)布的功能塊所輸入的非反算發(fā)布之間。
13.一種為根據(jù)周期性執(zhí)行的調(diào)度進(jìn)行通信的網(wǎng)絡(luò)創(chuàng)建鏈路調(diào)度表的方法,所述方法包括如下步驟識(shí)別需要執(zhí)行的多個(gè)功能塊;將每個(gè)所述功能塊標(biāo)識(shí)為一個(gè)或多個(gè)組的成員;基于至少下列一項(xiàng)區(qū)分這些組的優(yōu)先級(jí),以使每個(gè)組具有相對于其它組的優(yōu)先級(jí)與各相應(yīng)組關(guān)聯(lián)的組類型;與各相應(yīng)組關(guān)聯(lián)的周期長度;以及按基于每組優(yōu)先級(jí)的順序一次一組地調(diào)度至少含一個(gè)未調(diào)度功能塊的每個(gè)所述組;識(shí)別與需要執(zhí)行的各相應(yīng)功能塊關(guān)聯(lián)的任何反算發(fā)布;以及在所述調(diào)度表內(nèi)為每個(gè)反算發(fā)布指定在與所述相應(yīng)反算發(fā)布相關(guān)聯(lián)的合格時(shí)間窗口范圍內(nèi)的發(fā)布時(shí)間,以使至少第一潛在發(fā)布間隔最小,或使第二潛在發(fā)布間隔最大。
14.如權(quán)利要求13的方法,其特征在于還進(jìn)一步基于組類型區(qū)分所述組的優(yōu)先級(jí),使得每個(gè)組具有在與各相應(yīng)組關(guān)聯(lián)的周期長度范圍內(nèi)相對于其它所述組的優(yōu)先級(jí)。
15.如權(quán)利要求14的方法,其特征在于每個(gè)組是一個(gè)序列,并且每個(gè)序列是一組功能塊,其中與每個(gè)功能塊關(guān)聯(lián)的輸入取決于與直接在前功能塊相關(guān)聯(lián)的主連接輸出,所述序列開始位置處的功能塊除外。
16.如權(quán)利要求15的方法,其特征在于每個(gè)組是一個(gè)序列,以及每個(gè)序列是不輸入另一功能塊的主連接輸出且不產(chǎn)生被另一功能塊輸入的主連接輸出的單個(gè)功能塊。
17.如權(quán)利要求16的方法,其特征在于每個(gè)序列按如下方式之一構(gòu)成將不輸入另一個(gè)功能塊的主連接輸出的功能塊標(biāo)識(shí)為起始功能塊,沿從所述起始功能塊開始的功能塊路徑繼續(xù),使得除所述起始功能塊外,與每個(gè)功能塊相關(guān)聯(lián)的輸入取決于與直接在前功能塊相關(guān)聯(lián)的主連接輸出;以及判斷是否功能塊是單一功能塊,不輸入另一個(gè)功能塊的主連接輸出且不產(chǎn)生被另一個(gè)功能塊輸入的主連接輸出。
18.如權(quán)利要求17的方法,其特征在于所述識(shí)別的起始功能塊中的至少一個(gè)是輸入類功能塊。
19.如權(quán)利要求18的方法,其特征在于所述鏈路調(diào)度表在包含至少一個(gè)現(xiàn)場總線的混合網(wǎng)絡(luò)中傳送。
20.如權(quán)利要求19的方法,其特征在于所述現(xiàn)場總線是基金會(huì)TM現(xiàn)場總線。
21.如權(quán)利要求12的方法,其特征在于所述鏈路調(diào)度表在包含至少一個(gè)現(xiàn)場總線的混合網(wǎng)絡(luò)中傳送。
22.如權(quán)利要求21的方法,其特征在于所述現(xiàn)場總線是基金會(huì)TM現(xiàn)場總線。
23.如權(quán)利要求6的方法,其特征在于所述鏈路調(diào)度表在包含至少一個(gè)現(xiàn)場總線的混合網(wǎng)絡(luò)中傳送。
24.如權(quán)利要求23的方法,其特征在于所述現(xiàn)場總線是基金會(huì)TM現(xiàn)場總線。
全文摘要
公開了一種用于改進(jìn)通信網(wǎng)絡(luò)中所用鏈路調(diào)度的方法。本方法廣泛適用于基于調(diào)度通信的網(wǎng)絡(luò),在本文中通過基金會(huì)現(xiàn)場總線場景來描述。所述方法包括如下步驟按照每個(gè)應(yīng)用,根據(jù)功能塊序列及其相關(guān)發(fā)布的相對優(yōu)先級(jí)對它們進(jìn)行調(diào)度,使得下列二者之間的延遲最小某些功能塊之間、某些功能塊和發(fā)布之間;并且將某些發(fā)布分組。由此取得了一些優(yōu)點(diǎn)如縮減等待時(shí)間、縮減調(diào)度長度和提高通信容量。
文檔編號(hào)H04L12/56GK1729653SQ200380107211
公開日2006年2月1日 申請日期2003年10月22日 優(yōu)先權(quán)日2002年10月29日
發(fā)明者W·R·霍德森 申請人:霍尼韋爾國際公司