基于虛擬傳感器的rtu傳感器適配層及其設(shè)計(jì)方法
【專利摘要】本發(fā)明提供一種基于虛擬傳感器的RTU傳感器適配層,所述適配層包括虛擬傳感器、算法映射表、處理算法和端口映射表,通過端口映射將虛擬傳感器與物理傳感器的端口一一對(duì)應(yīng);通過算法映射將物理傳感器與虛擬傳感器關(guān)聯(lián)在一起;處理算法則控制物理傳感器完成原始數(shù)據(jù)的采集,并轉(zhuǎn)換成統(tǒng)一的數(shù)據(jù)形式存儲(chǔ)到虛擬傳感器中。本發(fā)明的有益效果是可以將不同物理接口、不同協(xié)議的同類型的傳感器抽象為一種虛擬傳感器,為上層軟件提供一種統(tǒng)一的接口,從而簡(jiǎn)化RTU的設(shè)計(jì);具有良好的可擴(kuò)展性,增加對(duì)新傳感器的支持只需在適配層添加一種處理算法,增大了傳統(tǒng)RTU的應(yīng)用范圍和使用靈活性;具有良好的并行處理能力,支持同時(shí)對(duì)多個(gè)傳感器進(jìn)行數(shù)據(jù)采集。
【專利說明】基于虛擬傳感器的RTU傳感器適配層及其設(shè)計(jì)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及水利行業(yè)數(shù)據(jù)傳輸設(shè)備領(lǐng)域,具體來講是基于虛擬傳感器的RTU(REMOTE TERMINAL UNIT)傳感器適配層及其設(shè)計(jì)方法。
[0002]
【背景技術(shù)】
[0003]水利傳感器種類繁多,每種傳感器都需要連接RTU用于傳輸數(shù)據(jù)。按照被測(cè)物理量類型的不同、工作原理的不同、輸出信號(hào)類型的不同可以劃分出多種多樣的傳感器(如水位傳感器、流量傳感器、流速傳感器等),每一種傳感器都有自己的引腳結(jié)構(gòu)、工作時(shí)序、與RTU的連接方法,當(dāng)數(shù)據(jù)采集系統(tǒng)需要采集多種數(shù)據(jù)時(shí),需要針對(duì)不用的傳感器設(shè)計(jì)不同的連接電路。
[0004]傳感器設(shè)計(jì)不統(tǒng)一,缺少通用性。即使是同一種類的傳感器也有不同的引腳設(shè)計(jì)和輸出信號(hào)類型,有的是三個(gè)引腳、有的是四個(gè)引腳、有的是數(shù)字輸出、有的是模擬輸出,造成需要采集一種物理數(shù)據(jù)時(shí)還要考慮多種連接方式,缺少通用性。
[0005]兼容性差,成本高?;跓o線傳感器網(wǎng)絡(luò)的數(shù)據(jù)采集系統(tǒng)需要采集各種類型的數(shù)據(jù),不同的數(shù)據(jù)采集對(duì)應(yīng)不同的傳感器、不同的連接電路、不斷的更改、焊接電路,系統(tǒng)兼容性差,同時(shí)也浪費(fèi)了不必要的資源。
[0006]目前專利號(hào)“200510038579”的中國(guó)專利申請(qǐng)中,使用URAT (通用異步收發(fā)器)控制器,能實(shí)現(xiàn)RS232和RS485接口的自動(dòng)切換,可靠性和靈活性高,但是該方法需要用到專用的芯片,成本過高,適合用于終端設(shè)備,同時(shí)它不能提供RS485接口的全雙工接口,在只作為傳輸轉(zhuǎn)接,默認(rèn)連接的場(chǎng)合中并不適用。
[0007]
【發(fā)明內(nèi)容】
[0008]本發(fā)明為了克服現(xiàn)有技術(shù)的缺點(diǎn),簡(jiǎn)化RTU的設(shè)計(jì),增強(qiáng)RTU的通用性,本發(fā)明提供一種基于虛擬傳感器的RTU適配層。
[0009]本發(fā)明提供一種基于虛擬傳感器的RTU傳感器適配層,所述適配層包括虛擬傳感器、算法映射表、處理算法和端口映射表,通過端口映射將虛擬傳感器與物理傳感器的端口一一對(duì)應(yīng);通過算法映射將物理傳感器與虛擬傳感器關(guān)聯(lián)在一起;處理算法則控制物理傳感器完成原始數(shù)據(jù)的采集,并轉(zhuǎn)換成統(tǒng)一的數(shù)據(jù)形式存儲(chǔ)到虛擬傳感器中。
[0010]本發(fā)明還提供一種利用虛擬傳感器采集物理數(shù)據(jù)的方法,所述方法采用上述適配層,所述方法包括以下步驟:
1)虛擬傳感器在進(jìn)入數(shù)據(jù)讀取狀態(tài)會(huì)查詢端口映射表找到與其相關(guān)聯(lián)的物理傳感器的端口并向物理傳感器發(fā)送數(shù)據(jù)讀取命令;
2)物理傳感器收到數(shù)據(jù)讀取命令后發(fā)送采集的數(shù)據(jù),與其相連的物理端口對(duì)應(yīng)的驅(qū)動(dòng)程序會(huì)收到一幀數(shù)據(jù)并從中得到設(shè)備地址信息;3)通過輪詢虛擬傳感器的地址信息,得知接收數(shù)據(jù)屬于哪個(gè)虛擬傳感器;
4)根據(jù)對(duì)應(yīng)虛擬傳感器的處理算法類型,通過算法映射得到對(duì)應(yīng)的數(shù)據(jù)處理方法,將接收數(shù)據(jù)的原始采集信息轉(zhuǎn)換成統(tǒng)一的數(shù)據(jù)形式存放的虛擬傳感器中,并計(jì)算校驗(yàn)信息以備數(shù)據(jù)讀取時(shí)驗(yàn)證數(shù)據(jù)的正確性。
[0011]本發(fā)明的有益效果:可以將不同物理接口、不同協(xié)議的同類型的傳感器抽象為一種虛擬傳感器,為上層軟件提供一種統(tǒng)一的接口,從而簡(jiǎn)化RTU的設(shè)計(jì);具有良好的可擴(kuò)展性,增加對(duì)新傳感器的支持只需在適配層添加一種處理算法,增大了傳統(tǒng)RTU的應(yīng)用范圍和使用靈活性;具有良好的并行處理能力,支持同時(shí)對(duì)多個(gè)傳感器進(jìn)行數(shù)據(jù)采集。
[0012]
【專利附圖】
【附圖說明】
[0013]圖1為本發(fā)明中RTU傳感器適配層的結(jié)構(gòu)示意圖;
圖2為本發(fā)明中虛擬傳感器的數(shù)據(jù)結(jié)構(gòu)示意圖;
圖3為本發(fā)明中處理算法的數(shù)據(jù)結(jié)構(gòu)示意圖;
圖4為本發(fā)明中物理端口管理的結(jié)構(gòu)示意圖;
圖5為本發(fā)明中管理線程控制下虛擬傳感器的狀態(tài)轉(zhuǎn)換圖;
圖6為本發(fā)明中多個(gè)虛擬傳感器并行數(shù)據(jù)采集過程示意圖。
[0014]【【具體實(shí)施方式】】
以下內(nèi)容結(jié)合說明書附圖對(duì)本發(fā)明的【具體實(shí)施方式】作詳細(xì)說明:
參見附圖1,一種基于虛擬傳感器的RTU傳感器適配層,包括虛擬傳感器、算法映射、處理算法、端口映射等,其中端口映射提供根據(jù)指定的傳感器端口類型和端口號(hào)匹配具體物理端口的方法,通過端口映射,虛擬傳感器與物理傳感器的端口一一對(duì)應(yīng);算法映射提供根據(jù)指定的算法類型匹配具體的處理算法的方法,通過算法映射,將物理傳感器與虛擬傳感器關(guān)聯(lián)在一起;處理算法則控制物理傳感器完成原始數(shù)據(jù)的采集,并轉(zhuǎn)換成統(tǒng)一的數(shù)據(jù)形式存儲(chǔ)到虛擬傳感器中。
[0015]虛擬傳感器的轉(zhuǎn)換算法可根據(jù)配置所述虛擬傳感器的結(jié)構(gòu)參數(shù)來選擇正確的轉(zhuǎn)換算法來完成將物理層讀取的水溫?cái)?shù)據(jù)、水壓數(shù)據(jù)或是水質(zhì)數(shù)據(jù)等原始數(shù)據(jù)或電信號(hào)轉(zhuǎn)換成統(tǒng)一的數(shù)據(jù)形式。例如,對(duì)應(yīng)流量,統(tǒng)一數(shù)據(jù)為瞬時(shí)流量、累計(jì)流量,這些統(tǒng)一的數(shù)據(jù)都是和具體的傳感器相關(guān)聯(lián)的;又如水位采集時(shí),可能接入的水位計(jì)有很多種,采集的電信號(hào)也有很多種,但是經(jīng)過處理后得到的都是水位高程值;傳感器適配層通過以下步驟實(shí)現(xiàn):1、適配層初始化;2、創(chuàng)建維護(hù)管理線程;3、創(chuàng)建數(shù)據(jù)處理線程。
[0016]1.適配層初始化:主要完成創(chuàng)建初始化同步時(shí)鐘機(jī)制、創(chuàng)建并配置虛擬傳感器、創(chuàng)建端口管理對(duì)象并初始化端口映射表、創(chuàng)建處理算法對(duì)象并初始化處理算法映射表;
創(chuàng)建并配置虛擬傳感器主要完成虛擬傳感器對(duì)象的創(chuàng)建,并根據(jù)存儲(chǔ)在固態(tài)存儲(chǔ)設(shè)備中的配置參數(shù)對(duì)虛擬傳感器進(jìn)行初始配置,然后將新創(chuàng)建的一系列虛擬傳感器對(duì)象組成數(shù)組或鏈表的形式以便于統(tǒng)一管理;
創(chuàng)建端口管理對(duì)象并初始化端口映射表主要完成創(chuàng)建并初始化端口管理對(duì)象,端口管理對(duì)象包含對(duì)物理端口進(jìn)行操作的方法和控制參數(shù),與具體的物理端口相對(duì)應(yīng),然后將新創(chuàng)建的一系列端口管理對(duì)象組成數(shù)組或鏈表的形式以便于統(tǒng)一管理; 創(chuàng)建處理算法對(duì)象并初始化處理算法映射表主要完成創(chuàng)建并初始化處理算法對(duì)象,處理算法對(duì)象包括數(shù)據(jù)采集的控制方法和控制參數(shù),通常與具體傳感器相關(guān)聯(lián),然后將新創(chuàng)建的一系列處理算法對(duì)象組成數(shù)組或鏈表的形式以便于統(tǒng)一管理;
2、創(chuàng)建維護(hù)管理線程:
維護(hù)管理線程完成對(duì)數(shù)據(jù)采集過程的統(tǒng)一控制管理,基于同步時(shí)鐘控制各個(gè)虛擬傳感器在數(shù)據(jù)采集過程的狀態(tài)轉(zhuǎn)換,具體過程見下文;
3、創(chuàng)建數(shù)據(jù)處理線程:
數(shù)據(jù)處理線程主要完成對(duì)采集數(shù)據(jù)處理的控制,具體過程見下文;
不同種類的虛擬傳感器具有類型相關(guān)的特定數(shù)據(jù),一個(gè)虛擬傳感器是一個(gè)獨(dú)立的對(duì)象,并且與物理傳感器相對(duì)應(yīng),系統(tǒng)中可以包含多個(gè)虛擬傳感器對(duì)象;虛擬傳感器的基本結(jié)構(gòu)如圖2所示。其中:
傳感器類型:指定該虛擬傳感器的種類,例如:水位、流量、流速等;
傳感器端口類型和端口號(hào):指定該虛擬傳感器對(duì)應(yīng)的物理傳感器接口 ;
傳感器地址:用于區(qū)分支持modbus協(xié)議的RS485接口的不同傳感器;處理算法類型:指定控制物理傳感器完成數(shù)據(jù)采集的協(xié)議方法以及將采集的原始數(shù)據(jù)轉(zhuǎn)換成統(tǒng)一格式數(shù)據(jù)并存儲(chǔ)到虛擬傳感器中的方法;
傳感器其它參數(shù):與傳感器相關(guān)的其它參數(shù)信息;其它參數(shù)指的是和這個(gè)傳感器的數(shù)據(jù)采集和數(shù)據(jù)處理相關(guān)的參數(shù),例如采集周期,數(shù)據(jù)存儲(chǔ)周期,數(shù)據(jù)上報(bào)周期等;
傳感器數(shù)據(jù):屬于特定傳感器的統(tǒng)一數(shù)據(jù),該數(shù)據(jù)由處理算法對(duì)原始采集數(shù)據(jù)進(jìn)行處理生成;
校驗(yàn)信息:防止虛擬傳感器數(shù)據(jù)被意外修改,保證其正確性的校驗(yàn)信息;
不同處理算法對(duì)應(yīng)不同的時(shí)間參數(shù)和方法,但是不同的處理算法的基本結(jié)構(gòu)都是相同的;一種處理算法是一個(gè)獨(dú)立的對(duì)象,系統(tǒng)中可以包含多種處理算法對(duì)象,這些處理算法對(duì)象以數(shù)組或鏈表的形式組織在一起,一個(gè)處理算法對(duì)象可以通過算法映射被匹配查詢,處理算法的基本結(jié)構(gòu)如圖3所示。其中:
算法標(biāo)識(shí):指定算法的名稱標(biāo)識(shí);
開機(jī)預(yù)熱時(shí)間參數(shù):指定從設(shè)備上電到設(shè)備穩(wěn)定的時(shí)鐘計(jì)數(shù)值;
數(shù)據(jù)采集時(shí)間參數(shù):指定從設(shè)備接收到數(shù)據(jù)采集命令到設(shè)備完成數(shù)據(jù)采集的時(shí)鐘計(jì)數(shù)
值;
數(shù)據(jù)讀取時(shí)間參數(shù):指定從設(shè)備接收到數(shù)據(jù)讀取命令到完成數(shù)據(jù)讀取的時(shí)鐘計(jì)數(shù)值; 數(shù)據(jù)采集方法:完成向指定設(shè)備發(fā)送數(shù)據(jù)采集命令的方法;
數(shù)據(jù)讀取方法:完成向指定設(shè)備發(fā)送數(shù)據(jù)讀取命令或從指定設(shè)備讀取數(shù)據(jù)的方法; 數(shù)據(jù)處理方法:完成將采集的原始數(shù)據(jù)轉(zhuǎn)換成統(tǒng)一數(shù)據(jù)形式的方法。
[0017]不同物理端口對(duì)應(yīng)不同的端口管理方法,它們以相同的基本結(jié)構(gòu)組織在一起形成一個(gè)特定的對(duì)象,每個(gè)端口管理對(duì)象與特定的物理端口相對(duì)應(yīng),這些端口管理對(duì)象以數(shù)組或鏈表的形式組織在一起,一個(gè)端口管理對(duì)象可以通過端口映射被匹配查詢,物理端口管理的基本結(jié)構(gòu)如圖4所示。
[0018]以上描述了傳感器適配層主要的數(shù)據(jù)結(jié)構(gòu)對(duì)象,傳感器適配層還包括一個(gè)管理線程用于控制數(shù)據(jù)采集過程和一系列的控制管理數(shù)據(jù)處理的方法;傳感器適配層中所有虛擬傳感器的數(shù)據(jù)采集過程都由一個(gè)管理線程進(jìn)行統(tǒng)一控制,而對(duì)接收數(shù)據(jù)處理的管理與具體的物理端口類型相關(guān),通常每個(gè)物理端口都對(duì)應(yīng)一個(gè)接收數(shù)據(jù)的處理過程;
虛擬傳感器的數(shù)據(jù)采集過程:
虛擬傳感器不單純是一個(gè)數(shù)據(jù)結(jié)構(gòu),在管理線程的控制下虛擬傳感器會(huì)經(jīng)歷一個(gè)動(dòng)態(tài)的狀態(tài)變化過程;在管理線程控制下虛擬傳感器的狀態(tài)轉(zhuǎn)換圖如圖5所示。
[0019]虛擬傳感器通常處于關(guān)機(jī)狀態(tài),當(dāng)收到啟動(dòng)采集通知時(shí),虛擬傳感器根據(jù)端口類型和端口號(hào),通過端口映射執(zhí)行與其對(duì)應(yīng)物理端口的開機(jī)方法;根據(jù)處理算法類型,通過算法映射得到開機(jī)預(yù)熱時(shí)間參數(shù)并設(shè)置該時(shí)間參數(shù),此時(shí)虛擬傳感器由關(guān)機(jī)狀態(tài)轉(zhuǎn)入啟動(dòng)預(yù)熱狀態(tài);
各虛擬傳感器的狀態(tài)轉(zhuǎn)換由統(tǒng)一的時(shí)鐘源觸發(fā),每經(jīng)歷一個(gè)時(shí)鐘周期其設(shè)定的時(shí)間參數(shù)計(jì)數(shù)值減1,當(dāng)開機(jī)預(yù)熱時(shí)間參數(shù)計(jì)數(shù)值發(fā)生由I到O變化時(shí)預(yù)熱完成,虛擬傳感器根據(jù)處理算法類型,通過算法映射得到數(shù)據(jù)采集時(shí)間參數(shù)和數(shù)據(jù)采集命令并設(shè)置該時(shí)間參數(shù),根據(jù)端口類型和端口號(hào),通過端口映射執(zhí)行與其對(duì)應(yīng)物理端口的寫方法將數(shù)據(jù)采集命令發(fā)送給物理傳感器,此時(shí)虛擬傳感器由啟動(dòng)預(yù)熱狀態(tài)轉(zhuǎn)入數(shù)據(jù)采集狀態(tài);
當(dāng)數(shù)據(jù)采集時(shí)間參數(shù)計(jì)數(shù)值發(fā)生由I到O變化時(shí)數(shù)據(jù)采集完成,虛擬傳感器根據(jù)處理算法類型,通過算法映射得到數(shù)據(jù)讀取時(shí)間參數(shù)和數(shù)據(jù)讀取命令并設(shè)置該時(shí)間參數(shù),根據(jù)端口類型和端口號(hào),通過端口映射執(zhí)行與其對(duì)應(yīng)物理端口的寫方法將數(shù)據(jù)讀取命令發(fā)送給物理傳感器,此時(shí)虛擬傳感器由數(shù)據(jù)采集狀態(tài)轉(zhuǎn)入數(shù)據(jù)讀取狀態(tài);
在數(shù)據(jù)讀取狀態(tài)中,如果數(shù)據(jù)讀取成功,數(shù)據(jù)采集時(shí)間參數(shù)清零O并設(shè)置數(shù)據(jù)采集成功標(biāo)志,然后根據(jù)端口類型和端口號(hào),通過端口映射執(zhí)行與其對(duì)應(yīng)物理端口的關(guān)機(jī)方法關(guān)閉物理端口,此時(shí)虛擬傳感器轉(zhuǎn)入關(guān)機(jī)狀態(tài),完成一次數(shù)據(jù)采集周期;
在數(shù)據(jù)讀取狀態(tài)中,如果數(shù)據(jù)讀取失敗并且失敗次數(shù)小于3,虛擬傳感器根據(jù)處理算法類型,通過算法映射得到數(shù)據(jù)采集時(shí)間參數(shù)和數(shù)據(jù)采集命令并設(shè)置該時(shí)間參數(shù),根據(jù)端口類型和端口號(hào),通過端口映射執(zhí)行與其對(duì)應(yīng)物理端口的寫方法將數(shù)據(jù)采集命令發(fā)送給物理傳感器,虛擬傳感器由數(shù)據(jù)讀取狀態(tài)轉(zhuǎn)入數(shù)據(jù)采集狀態(tài);如果數(shù)據(jù)讀取失敗并且失敗次數(shù)等于3,設(shè)置數(shù)據(jù)采集失敗標(biāo)志,然后根據(jù)端口類型和端口號(hào),通過端口映射執(zhí)行與其對(duì)應(yīng)物理端口的關(guān)機(jī)方法關(guān)閉物理端口,此時(shí)虛擬傳感器轉(zhuǎn)入關(guān)機(jī)狀態(tài),完成一次數(shù)據(jù)采集周期;
數(shù)據(jù)處理的控制管理:
通常每個(gè)物理端口都對(duì)應(yīng)一個(gè)對(duì)接收數(shù)據(jù)進(jìn)行管理的方法;下面以支持modbus協(xié)議的物理端口為例進(jìn)行說明;虛擬傳感器在進(jìn)入數(shù)據(jù)讀取狀態(tài)會(huì)向物理傳感器發(fā)送數(shù)據(jù)讀取命令,物理傳感器收到數(shù)據(jù)讀取命令后會(huì)發(fā)送采集的數(shù)據(jù),與其相連的物理端口對(duì)應(yīng)的驅(qū)動(dòng)程序會(huì)收到一幀數(shù)據(jù),對(duì)于滿足modbus協(xié)議數(shù)據(jù)幀可以從中得到設(shè)備地址信息,通過輪詢虛擬傳感器的傳感器地址信息,可以得知接收數(shù)據(jù)屬于哪個(gè)虛擬傳感器,根據(jù)對(duì)應(yīng)虛擬傳感器的處理算法類型,通過算法映射得到對(duì)應(yīng)的數(shù)據(jù)處理方法,將接收數(shù)據(jù)的原始采集信息轉(zhuǎn)換成統(tǒng)一的數(shù)據(jù)形式存放的虛擬傳感器中,并計(jì)算校驗(yàn)信息以備數(shù)據(jù)讀取時(shí)驗(yàn)證數(shù)據(jù)的正確性;對(duì)于不支持多地址的物理端口,物理傳感器與虛擬傳感器是唯一對(duì)應(yīng)的,可直接根據(jù)對(duì)應(yīng)虛擬傳感器的處理算法類型,通過算法映射得到對(duì)應(yīng)的數(shù)據(jù)處理方法,將接收數(shù)據(jù)的原始采集信息轉(zhuǎn)換成統(tǒng)一的數(shù)據(jù)形式存放的虛擬傳感器中。以上描述了一個(gè)虛擬傳感器在一次數(shù)據(jù)采集過程中的各狀態(tài)轉(zhuǎn)換關(guān)系;通過合理的設(shè)置時(shí)間參數(shù)值和通知各個(gè)傳感器數(shù)據(jù)采集的時(shí)間間隔,在統(tǒng)一時(shí)鐘的控制下,多個(gè)虛擬傳感器可以并行完成數(shù)據(jù)采集并且各個(gè)虛擬傳感器相互之間不會(huì)發(fā)生沖突。
[0020]由于目前傳感器的設(shè)計(jì)還沒有統(tǒng)一的標(biāo)準(zhǔn),對(duì)于4_20mA和脈沖型的物理接口,RTU還無法自動(dòng)識(shí)別物理傳感器的產(chǎn)品型號(hào)信息,對(duì)應(yīng)滿足modbus協(xié)議的智能傳感器,多數(shù)廠家沒有對(duì)43 (0x2B)功能碼即讀設(shè)備識(shí)別碼進(jìn)行設(shè)置,因而RTU無法自動(dòng)完成對(duì)虛擬傳感器的配置;在使用中需要手動(dòng)預(yù)先配置虛擬傳感器的傳感器類型、傳感器的端口類型、傳感器編號(hào)、傳感器地址和處理算法等信息;當(dāng)需要進(jìn)行數(shù)據(jù)采集時(shí),將虛擬傳感器對(duì)象的指針作為消息發(fā)送給維護(hù)管理線程,在維護(hù)管理線程的控制下,虛擬傳感器經(jīng)歷4個(gè)狀態(tài)轉(zhuǎn)換完成一次數(shù)據(jù)采集;數(shù)據(jù)處理的控制管理部分將完成對(duì)原始采集數(shù)據(jù)的處理,并轉(zhuǎn)換成預(yù)定的數(shù)據(jù)形式存儲(chǔ)到虛擬傳感器的數(shù)據(jù)區(qū);
如果規(guī)定所有支持標(biāo)準(zhǔn)modbus協(xié)議的傳感器生產(chǎn)廠家必須設(shè)置設(shè)備識(shí)別碼的相關(guān)信息,RTU可以試探性向所有物理端口發(fā)送所有地址信息的讀設(shè)備識(shí)別碼(功能碼43)命令;RTU可以根據(jù)返回的應(yīng)答信息自動(dòng)配置傳感器類型、傳感器的端口類型、傳感器編號(hào)、傳感器地址和處理算法等信息;大大簡(jiǎn)化操作。
[0021]本發(fā)明可以將不同物理接口、不同協(xié)議的同類型的傳感器抽象為一種虛擬傳感器,為上層軟件提供一種統(tǒng)一的接口,從而簡(jiǎn)化RTU的設(shè)計(jì);具有良好的可擴(kuò)展性,增加對(duì)新傳感器的支持只需在適配層添加一種處理算法,增大了傳統(tǒng)RTU的應(yīng)用范圍和使用靈活性;具有良好的并行處理能力,支持同時(shí)對(duì)多個(gè)傳感器進(jìn)行數(shù)據(jù)采集。可以使RTU適配多種水利行業(yè)中的傳感器,大大增強(qiáng)了 RTU的應(yīng)用范圍和使用靈活性。
【權(quán)利要求】
1.一種基于虛擬傳感器的RTU傳感器適配層,其特征在于,所述適配層包括虛擬傳感器、算法映射表、處理算法和端口映射表,通過端口映射將虛擬傳感器與物理傳感器的端口一一對(duì)應(yīng);通過算法映射將物理傳感器與虛擬傳感器關(guān)聯(lián)在一起;處理算法則控制物理傳感器完成原始數(shù)據(jù)的采集,并轉(zhuǎn)換成統(tǒng)一的數(shù)據(jù)形式存儲(chǔ)到虛擬傳感器中。
2.根據(jù)權(quán)利要求1所述的傳感器適配層,其特征在于,具有端口映射表的外部接口包括RS-232、RS-485、SD1-12和脈沖接口等,以便適應(yīng)多種物理傳感器能接入RTU上。
3.根據(jù)權(quán)利要求1所述的傳感器適配層,其特征在于,所述處理算法包括多種傳感器的轉(zhuǎn)換算法,根據(jù)調(diào)適微處理器來選擇正確的轉(zhuǎn)換算法來完成將物理層讀取的水溫?cái)?shù)據(jù)、水壓數(shù)據(jù)或水質(zhì)數(shù)據(jù),將其轉(zhuǎn)換成適合傳送的電信號(hào)。
4.根據(jù)權(quán)利要求1所述的傳感器適配層,其特征在于,所述虛擬傳感器的基本結(jié)構(gòu)包括該虛擬傳感器的類型、地址、其它參數(shù)、傳感器數(shù)據(jù)及校驗(yàn)信息,其中其他參數(shù)是指虛擬傳感器的數(shù)據(jù)采集和數(shù)據(jù)處理相關(guān)的參數(shù)。
5.根據(jù)權(quán)利要求1所述的傳感器適配層,其特征在于,其中處理算法表中的處理算法的基本結(jié)構(gòu)包括:算法標(biāo)識(shí)、開機(jī)預(yù)熱時(shí)間參數(shù)、數(shù)據(jù)采集時(shí)間參數(shù)、數(shù)據(jù)讀取時(shí)間參數(shù)、數(shù)據(jù)采集方法、數(shù)據(jù)讀取方法、數(shù)據(jù)處理方法。
6.根據(jù)權(quán)利要求1所述的傳感器適配層的創(chuàng)建步驟,其特征在于,所述步驟包括: I)適配層初始化;2)創(chuàng)建維護(hù)管理線程;3)創(chuàng)建數(shù)據(jù)處理線程; 其中所述適配層初始化需要?jiǎng)?chuàng)建初始化同步時(shí)鐘機(jī)制、創(chuàng)建并配置虛擬傳感器、創(chuàng)建端口管理對(duì)象并初始化端口映射表、創(chuàng)建處理算法對(duì)象并初始化處理算法映射表;所述維護(hù)管理線程完成對(duì)數(shù)據(jù)采集過程的統(tǒng)一控制管理,基于同步時(shí)鐘控制各個(gè)虛擬傳感器在數(shù)據(jù)采集過程的狀態(tài)轉(zhuǎn)換;所述數(shù)據(jù)處理線程主要完成對(duì)采集數(shù)據(jù)處理的控制。`
7.根據(jù)權(quán)利要求6所述的創(chuàng)建步驟,其特征在于,在所述管理線程的控制下虛擬傳感器會(huì)經(jīng)歷一個(gè)動(dòng)態(tài)的狀態(tài)變化過程,該過程包括開機(jī)預(yù)熱、數(shù)據(jù)采集、數(shù)據(jù)讀取、數(shù)據(jù)處理和關(guān)機(jī)。
8.根據(jù)權(quán)利要求7所述的創(chuàng)建步驟,其特征在于,在數(shù)據(jù)讀取狀態(tài)中,如果數(shù)據(jù)讀取失敗并且失敗次數(shù)小于3,虛擬傳感器根據(jù)處理算法類型,通過算法映射得到數(shù)據(jù)采集時(shí)間參數(shù)和數(shù)據(jù)采集命令并設(shè)置該時(shí)間參數(shù),根據(jù)端口類型和端口號(hào),通過端口映射執(zhí)行與其對(duì)應(yīng)物理端口的寫方法將數(shù)據(jù)采集命令發(fā)送給物理傳感器,虛擬傳感器由數(shù)據(jù)讀取狀態(tài)轉(zhuǎn)入數(shù)據(jù)采集狀態(tài);如果數(shù)據(jù)讀取失敗并且失敗次數(shù)等于3,設(shè)置數(shù)據(jù)采集失敗標(biāo)志,然后根據(jù)端口類型和端口號(hào),通過端口映射執(zhí)行與其對(duì)應(yīng)物理端口的關(guān)機(jī)方法關(guān)閉物理端口,此時(shí)虛擬傳感器轉(zhuǎn)入關(guān)機(jī)狀態(tài),完成一次數(shù)據(jù)采集周期。
9.一種利用虛擬傳感器采集物理數(shù)據(jù)的方法,其特征在于,所述方法采用權(quán)利要求1-5之一所述的適配層,其特征在于,所述方法包括以下步驟: 1)虛擬傳感器在進(jìn)入數(shù)據(jù)讀取狀態(tài)會(huì)查詢端口映射表找到與其相關(guān)聯(lián)的物理傳感器的端口并向物理傳感器發(fā)送數(shù)據(jù)讀取命令; 2)物理傳感器收到數(shù)據(jù)讀取命令后發(fā)送采集的數(shù)據(jù),與其相連的物理端口對(duì)應(yīng)的驅(qū)動(dòng)程序會(huì)收到一幀數(shù)據(jù)并從中得到設(shè)備地址信息; 3)通過輪詢虛擬傳感器的地址信息,得知接收數(shù)據(jù)屬于哪個(gè)虛擬傳感器; 4)根據(jù)對(duì)應(yīng)虛擬傳感器的處理算法類型,通過算法映射得到對(duì)應(yīng)的數(shù)據(jù)處理方法,將接收數(shù)據(jù)的原始采集信息轉(zhuǎn)換成統(tǒng)一的數(shù)據(jù)形式存放的虛擬傳感器中, 并計(jì)算校驗(yàn)信息以備數(shù)據(jù)讀取時(shí)驗(yàn)證數(shù)據(jù)的正確性。
【文檔編號(hào)】G06F9/455GK103677838SQ201310693568
【公開日】2014年3月26日 申請(qǐng)日期:2013年12月17日 優(yōu)先權(quán)日:2013年12月17日
【發(fā)明者】吳玉曉, 李海增, 董金鑫, 賈美, 楊建軍, 吳超, 吳江 申請(qǐng)人:北京奧特美克科技股份有限公司