一種用于大數(shù)據(jù)量高速率通訊的數(shù)據(jù)優(yōu)化方法
【專利摘要】一種用于大數(shù)據(jù)量高速率通訊的數(shù)據(jù)優(yōu)化方法:將通訊數(shù)據(jù)點(diǎn)按照所需刷新周期的長(zhǎng)短進(jìn)行分組,分別采用不同的定時(shí)器;參與通訊的雙方均將通訊的數(shù)據(jù)提取到一個(gè)單獨(dú)的內(nèi)存區(qū)域,供通訊接口程序訪問(wèn);第一次通訊時(shí)將所有輸出點(diǎn)打包一起傳送,之后判斷每一個(gè)點(diǎn)與上一次發(fā)送的值相比是否發(fā)生了變化,僅將發(fā)生了變化的點(diǎn)打包一起傳送。本發(fā)明由于綜合了數(shù)據(jù)存儲(chǔ)與訪問(wèn)優(yōu)化、數(shù)據(jù)分組、以及數(shù)值變化驅(qū)動(dòng)傳輸多種優(yōu)化措施,因此可以同時(shí)滿足大數(shù)據(jù)量通訊和高刷新速率通訊的要求,非常適合于兩個(gè)仿真系統(tǒng)之間的大數(shù)據(jù)量通訊。在同等通訊數(shù)據(jù)量的情況下,本發(fā)明可以降低通訊對(duì)硬件性能的要求,從而節(jié)約硬件成本。
【專利說(shuō)明】一種用于大數(shù)據(jù)量高速率通訊的數(shù)據(jù)優(yōu)化方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種數(shù)據(jù)優(yōu)化方法,尤其是涉及一種用于大數(shù)據(jù)量高速通訊的數(shù)據(jù)優(yōu)化方法。
【背景技術(shù)】
[0002]在對(duì)大型復(fù)雜系統(tǒng)進(jìn)行模擬仿真時(shí),常常將系統(tǒng)劃分為若干個(gè)子系統(tǒng)。對(duì)這些子系統(tǒng)需要采用不同的軟硬件系統(tǒng)進(jìn)行仿真,有些子系統(tǒng)還需要直接采用實(shí)物與其他子系統(tǒng)進(jìn)行連接,構(gòu)成半實(shí)物仿真系統(tǒng)。這導(dǎo)致了這些子系統(tǒng)之間需要交換龐大的數(shù)據(jù)量。同時(shí),在要求實(shí)時(shí)性的仿真系統(tǒng)中,需要在一個(gè)仿真時(shí)間步長(zhǎng)內(nèi)完成所有的數(shù)據(jù)交換,因此對(duì)數(shù)據(jù)刷新速率的要求也非常高。
[0003]僅僅依靠提高硬件的傳輸速度有時(shí)無(wú)法達(dá)到大數(shù)據(jù)量和高刷新速率的通訊要求,而即使能達(dá)到這一要求,也需要付出昂貴的硬件成本。通過(guò)通訊軟件對(duì)通訊的數(shù)據(jù)做一些優(yōu)化處理,往往能夠提高通訊的效率。一般的通訊軟件也會(huì)對(duì)數(shù)據(jù)進(jìn)行優(yōu)化處理,但往往只是局限于通訊數(shù)據(jù)的重新組織、變換等相對(duì)單一的措施,不能充分地挖掘數(shù)據(jù)優(yōu)化的潛力。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所要解決的技術(shù)問(wèn)題,就是提供一種能充分地挖掘數(shù)據(jù)優(yōu)化潛力的用于大數(shù)據(jù)量高速通訊的數(shù)據(jù)優(yōu)化方法。
[0005]一種用于大數(shù)據(jù)量高速率通訊的數(shù)據(jù)優(yōu)化方法,其特征在于包括如下步驟:
[0006]I)將所有要參與通訊的數(shù)據(jù)點(diǎn)按照所需要的刷新周期的長(zhǎng)短進(jìn)行分組,分組數(shù)以及每一組對(duì)應(yīng)的刷新周期通過(guò)一個(gè)配置文件來(lái)指定;每一個(gè)數(shù)據(jù)點(diǎn)屬于哪一個(gè)組由一個(gè)點(diǎn)對(duì)照表文件來(lái)指定,定義通訊點(diǎn)信息,包括I/o類型、點(diǎn)名及所屬分組;點(diǎn)對(duì)照表文件還指定對(duì)應(yīng)的通訊雙方的數(shù)據(jù)點(diǎn)名;
[0007]2)參與通訊的雙方均將需要通訊的數(shù)據(jù)提取到一個(gè)單獨(dú)的內(nèi)存區(qū)域,供通訊接口程序訪問(wèn);
[0008]3)通訊程序初始化時(shí)讀取配置文件及點(diǎn)對(duì)照表文件,獲取到每一個(gè)通訊數(shù)據(jù)點(diǎn)的內(nèi)存訪問(wèn)地址,并按照分組設(shè)置分別保存這些通訊數(shù)據(jù)點(diǎn)的內(nèi)存地址;然后根據(jù)每一組對(duì)應(yīng)的刷新周期啟動(dòng)定時(shí)器;對(duì)于刷新周期小于10毫秒的組,采用高精度的多媒體定時(shí)器,其余的組采用普通的定時(shí)器;
[0009]4)在每一組定時(shí)器所觸發(fā)的處理函數(shù)中,直接從內(nèi)存地址中批量讀取需要發(fā)送出去的數(shù)據(jù)點(diǎn)的數(shù)值,將所有需要傳送的數(shù)據(jù)打包一起傳送;
[0010]5)接收到對(duì)方發(fā)送來(lái)的數(shù)據(jù)后,批量地用直接內(nèi)存訪問(wèn)的方式將收到的數(shù)據(jù)寫(xiě)入相應(yīng)的數(shù)據(jù)點(diǎn);
[0011]6)從第二次通訊開(kāi)始直到通訊結(jié)束,先判斷每一個(gè)點(diǎn)與上一次發(fā)送的值相比是否發(fā)生了變化,如果發(fā)生了變化,則將該點(diǎn)加入到需要傳送的點(diǎn)的列表,否則不將該點(diǎn)加入需要傳送的點(diǎn)的列表;判斷完成后重復(fù)步驟4)、步驟5)和本步驟;其中,對(duì)于模擬量點(diǎn)的判斷,在點(diǎn)對(duì)照表文件中定義其精度值,如果本次數(shù)值與上次傳送的值的差的絕對(duì)值小于該精度值,則認(rèn)為該點(diǎn)的數(shù)值沒(méi)有發(fā)生變化;反之,則認(rèn)為該點(diǎn)的數(shù)值發(fā)生了變化。
[0012]有益效果:本發(fā)明具有以下優(yōu)點(diǎn):
[0013]I)由于該方法綜合了數(shù)據(jù)存儲(chǔ)與訪問(wèn)優(yōu)化、數(shù)據(jù)分組、以及數(shù)值變化驅(qū)動(dòng)傳輸多種優(yōu)化措施,因此可以同時(shí)滿足大數(shù)據(jù)量通訊和高刷新速率通訊的要求,非常適合于兩個(gè)仿真系統(tǒng)之間的大數(shù)據(jù)量通訊。
[0014]2)在同等通訊數(shù)據(jù)量的情況下,可以降低通訊對(duì)硬件性能的要求,從而節(jié)約硬件成本。
【專利附圖】
【附圖說(shuō)明】
[0015]附圖為本優(yōu)化處理方法的流程圖。
【具體實(shí)施方式】
[0016]參見(jiàn)附圖,本發(fā)明的對(duì)通訊數(shù)據(jù)的優(yōu)化處理方法實(shí)施例,包括如下步驟:
[0017]I)將所有要參與通訊的數(shù)據(jù)點(diǎn)按照所需要的刷新周期的長(zhǎng)短進(jìn)行分組,分組數(shù)以及每一組對(duì)應(yīng)的刷新周期通過(guò)一個(gè)配置文件來(lái)指定;每一個(gè)數(shù)據(jù)點(diǎn)屬于哪一個(gè)組由一個(gè)點(diǎn)對(duì)照表文件來(lái)指定;點(diǎn)對(duì)照表文件還指定對(duì)應(yīng)的通訊雙方的數(shù)據(jù)點(diǎn)名;
[0018]2)參與通訊的雙方均將需要通訊的數(shù)據(jù)提取到一個(gè)單獨(dú)的內(nèi)存區(qū)域,供通訊接口程序訪問(wèn),以縮短通訊程序的數(shù)據(jù)訪問(wèn)時(shí)間;
[0019]3)通訊程序初始化時(shí)讀取配置文件及點(diǎn)對(duì)照表文件,獲取到每一個(gè)通訊數(shù)據(jù)點(diǎn)的內(nèi)存訪問(wèn)地址,并按照分組設(shè)置分別保存這些通訊數(shù)據(jù)點(diǎn)的內(nèi)存地址;然后根據(jù)每一組對(duì)應(yīng)的刷新周期啟動(dòng)定時(shí)器,對(duì)于刷新周期小于10毫秒的組,采用高精度的多媒體定時(shí)器,其余的組采用普通的定時(shí)器;
[0020]4)在每一組定時(shí)器所觸發(fā)的處理函數(shù)中,直接從內(nèi)存地址中批量讀取需要發(fā)送出去的數(shù)據(jù)點(diǎn)的數(shù)值,將所有需要傳送的數(shù)據(jù)打包一起傳送;
[0021]5)接收到對(duì)方發(fā)送來(lái)的數(shù)據(jù)后,批量地用直接內(nèi)存訪問(wèn)的方式將收到的數(shù)據(jù)寫(xiě)入相應(yīng)的數(shù)據(jù)點(diǎn);
[0022]6)從第二次通訊開(kāi)始直到通訊結(jié)束,先判斷每一個(gè)點(diǎn)與上一次發(fā)送的值相比是否發(fā)生了變化,如果發(fā)生了變化,則將該點(diǎn)加入到需要傳送的點(diǎn)的列表,否則不將該點(diǎn)加入需要傳送的點(diǎn)的列表。判斷完成后重復(fù)步驟4)、步驟5)和本步驟。其中,對(duì)于模擬量點(diǎn)的判斷,在點(diǎn)對(duì)照表文件中定義其精度值,如果本次數(shù)值與上次傳送的值的差的絕對(duì)值小于該精度值,則認(rèn)為該點(diǎn)的數(shù)值沒(méi)有發(fā)生變化;反之,則認(rèn)為該點(diǎn)的數(shù)值發(fā)生了變化。
[0023]實(shí)施例:
[0024]實(shí)施例為一套發(fā)電廠仿真系統(tǒng)。將自動(dòng)控制系統(tǒng)DCS從整個(gè)發(fā)電廠系統(tǒng)中分離出來(lái),用一套虛擬DCS軟件來(lái)模擬,其余部分,即被控系統(tǒng)用另一套仿真系統(tǒng)來(lái)模擬。兩個(gè)仿真系統(tǒng)之間有大量的數(shù)據(jù)需要通訊。
[0025]I)通過(guò)配置文件,將所有要通訊的數(shù)據(jù)分為兩組,其中一組的刷新周期為10毫秒,另外一組的刷新周期為100毫秒。同時(shí)建立對(duì)照表文件,將所有要通訊的點(diǎn)寫(xiě)在對(duì)照表文件中。[0026]點(diǎn)對(duì)照表文件的每一行分為4列,分別為點(diǎn)的輸入/輸出類型、自動(dòng)控制系統(tǒng)DCS中的點(diǎn)名、被控系統(tǒng)仿真系統(tǒng)中的點(diǎn)名,以及所屬的組號(hào)。其中輸入/輸出類型有為4種:開(kāi)關(guān)量輸入D1、開(kāi)關(guān)量輸出D0、模擬量輸入Al及模擬量輸出A0。如下表1所不:
[0027]表1.通訊點(diǎn)對(duì)照表
【權(quán)利要求】
1.一種用于大數(shù)據(jù)量高速率通訊的數(shù)據(jù)優(yōu)化方法,其特征在于包括如下步驟: 1)將所有要參與通訊的數(shù)據(jù)點(diǎn)按照所需要的刷新周期的長(zhǎng)短進(jìn)行分組,分組數(shù)以及每一組對(duì)應(yīng)的刷新周期通過(guò)一個(gè)配置文件來(lái)指定;每一個(gè)數(shù)據(jù)點(diǎn)屬于哪一個(gè)組由一個(gè)點(diǎn)對(duì)照表文件來(lái)指定,定義通訊點(diǎn)信息:包括I/o類型、點(diǎn)名及所屬分組;點(diǎn)對(duì)照表文件還指定對(duì)應(yīng)的通訊雙方的數(shù)據(jù)點(diǎn)名; 2)參與通訊的雙方均將需要通訊的數(shù)據(jù)提取到一個(gè)單獨(dú)的內(nèi)存區(qū)域,供通訊接口程序訪問(wèn),以縮短通訊程序的數(shù)據(jù)訪問(wèn)時(shí)間; 3)通訊程序初始化時(shí)讀取配置文件及點(diǎn)對(duì)照表文件,獲取到每一個(gè)通訊數(shù)據(jù)點(diǎn)的內(nèi)存訪問(wèn)地址,并按照分組設(shè)置分別保存這些通訊數(shù)據(jù)點(diǎn)的內(nèi)存地址;然后根據(jù)每一組對(duì)應(yīng)的刷新周期啟動(dòng)定時(shí)器;對(duì)于刷新周期小于10毫秒的組,采用高精度的多媒體定時(shí)器,其余的組采用普通的定時(shí)器; 4)在每一組定時(shí)器所觸發(fā)的處理函數(shù)中,直接從內(nèi)存地址中批量讀取需要發(fā)送出去的數(shù)據(jù)點(diǎn)的數(shù)值,將所有需要傳送的數(shù)據(jù)打包一起傳送; 5)接收到對(duì)方發(fā)送來(lái)的數(shù)據(jù)后,批量地用直接內(nèi)存訪問(wèn)的方式將收到的數(shù)據(jù)寫(xiě)入相應(yīng)的數(shù)據(jù)點(diǎn); 6)從第二次通訊開(kāi)始直到通訊結(jié)束,先判斷每一個(gè)點(diǎn)與上一次發(fā)送的值相比是否發(fā)生了變化,如果發(fā)生了變化,則將該點(diǎn)加入到需要傳送的點(diǎn)的列表,否則不將該點(diǎn)加入需要傳送的點(diǎn)的列表;判斷完成后重復(fù)步驟4)、步驟5)和本步驟;其中,對(duì)于模擬量點(diǎn)的判斷,在點(diǎn)對(duì)照表文件中定義其精度值,如果本次數(shù)值與上次傳送的值的差的絕對(duì)值小于該精度值,則認(rèn)為該點(diǎn)的數(shù)值沒(méi)有發(fā)生變化;反之,則認(rèn)為該點(diǎn)的數(shù)值發(fā)生了變化。
【文檔編號(hào)】G06F13/38GK103514132SQ201310416433
【公開(kāi)日】2014年1月15日 申請(qǐng)日期:2013年9月12日 優(yōu)先權(quán)日:2013年9月12日
【發(fā)明者】闞偉民, 朱亞清, 肖小清, 譚金, 陳曉科, 張勇, 焦斌斌, 程芳真 申請(qǐng)人:廣東電網(wǎng)公司電力科學(xué)研究院, 北京恒和大風(fēng)軟件技術(shù)有限公司