本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域,尤其涉及一種設(shè)備模擬器的通信方法及系統(tǒng)。
背景技術(shù):
隨著數(shù)據(jù)中心微模塊(micro data center,簡(jiǎn)稱MDC)技術(shù)的發(fā)展,大型數(shù)據(jù)中心的發(fā)展也越來越迅猛。modbus是一種工業(yè)控制技術(shù)中最常用的通訊協(xié)議,現(xiàn)在的modbus設(shè)備與數(shù)據(jù)采集器之間的通信傳輸,基本上都是通過modbus設(shè)備的端口接收數(shù)據(jù)采集器的碼流數(shù)據(jù),并在所述端口反饋匹配的碼流數(shù)據(jù)給所述數(shù)據(jù)采集器實(shí)現(xiàn)的,由于現(xiàn)在生產(chǎn)的各種modbus設(shè)備對(duì)應(yīng)的各種碼流數(shù)據(jù)格式可能各不相同,而每一種modbus設(shè)備與數(shù)據(jù)采集器進(jìn)行通信的碼流數(shù)據(jù)格式是一定的。當(dāng)需要與數(shù)據(jù)采集器進(jìn)行多種不同格式的碼流數(shù)據(jù)的通信傳輸時(shí),就需要配置多種不同的modbus設(shè)備,以形成多個(gè)端口與數(shù)據(jù)采集器進(jìn)行多種格式的碼流數(shù)據(jù)的通信傳輸,顯然,要配置多種不同的modbus設(shè)備與數(shù)據(jù)采集器進(jìn)行通信傳輸方式不夠智能化。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提出一種設(shè)備模擬器的通信方法及系統(tǒng),旨在解決配置多種不同的modbus設(shè)備與數(shù)據(jù)采集器進(jìn)行通信傳輸?shù)姆绞讲粔蛑悄芑募夹g(shù)問題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種設(shè)備模擬器的通信方法,所述設(shè)備模擬器的通信方法包括以下步驟:
在接收到數(shù)據(jù)采集器通過串口服務(wù)器發(fā)送的請(qǐng)求碼流時(shí),設(shè)備模擬器確定是否存儲(chǔ)有與接收的請(qǐng)求碼流匹配的預(yù)存請(qǐng)求碼流;
若存儲(chǔ)有所述預(yù)存請(qǐng)求碼流,所述設(shè)備模擬器根據(jù)所述預(yù)存請(qǐng)求碼流獲取所述預(yù)存請(qǐng)求碼流對(duì)應(yīng)的響應(yīng)碼流;
所述設(shè)備模擬器將所述響應(yīng)碼流通過所述串口服務(wù)器反饋給所述數(shù)據(jù)采集器。
優(yōu)選地,所述設(shè)備模擬器的通信方法還包括:
在接收到響應(yīng)碼流的更改指令時(shí),所述設(shè)備模擬器在預(yù)設(shè)的顯示界面顯示所述響應(yīng)碼流,以供用戶基于所述顯示界面更改所述響應(yīng)碼流;
在接收到響應(yīng)碼流的更改完成指令時(shí),所述設(shè)備模擬器存儲(chǔ)更改后的響應(yīng)碼流。
優(yōu)選地,所述在接收到數(shù)據(jù)采集器通過串口服務(wù)器發(fā)送的請(qǐng)求碼流時(shí),設(shè)備模擬器確定是否存儲(chǔ)有與接收的請(qǐng)求碼流匹配的預(yù)存請(qǐng)求碼流的步驟之前,所述設(shè)備模擬器的通信方法包括:
所述設(shè)備模擬器在啟動(dòng)時(shí),讀取預(yù)設(shè)的配置文件;
所述設(shè)備模擬器根據(jù)所述配置文件中的各個(gè)端口信息,建立所述設(shè)備模擬器的各個(gè)鏈路終端;
所述設(shè)備模擬器存儲(chǔ)各個(gè)端口信息與各個(gè)鏈路終端關(guān)聯(lián)關(guān)系。
優(yōu)選地,所述設(shè)備模擬器存儲(chǔ)各個(gè)端口信息與各個(gè)鏈路終端關(guān)聯(lián)關(guān)系的步驟之后,所述設(shè)備模擬器的通信方法還包括:
所述設(shè)備模擬器確定預(yù)設(shè)的碼流文件中各個(gè)請(qǐng)求碼流和響應(yīng)碼流的端口信息;
所述設(shè)備模擬器根據(jù)預(yù)存的端口信息與鏈路終端的關(guān)聯(lián)關(guān)系,將各個(gè)請(qǐng)求碼流和響應(yīng)碼流分別存儲(chǔ)至對(duì)應(yīng)的鏈路終端中。
優(yōu)選地,其特征在于,所述在接收到數(shù)據(jù)采集器通過串口服務(wù)器發(fā)送的請(qǐng)求碼流時(shí),設(shè)備模擬器確定是否存儲(chǔ)有與接收的請(qǐng)求碼流匹配的預(yù)存請(qǐng)求碼流的步驟之后,所述設(shè)備模擬器的通信方法還包括;
若未存儲(chǔ)有所述預(yù)存請(qǐng)求碼流,所述設(shè)備模擬器輸出告警信息。
此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種設(shè)備模擬器的通信系統(tǒng),所述設(shè)備模擬器的通信系統(tǒng)包括:
建立模塊,用于在接收到數(shù)據(jù)采集器通過串口服務(wù)器發(fā)送的請(qǐng)求碼流時(shí),確定是否存儲(chǔ)有與接收的請(qǐng)求碼流匹配的預(yù)存請(qǐng)求碼流;
獲取模塊,用于若存儲(chǔ)有所述預(yù)存請(qǐng)求碼流,根據(jù)所述預(yù)存請(qǐng)求碼流獲取所述預(yù)存請(qǐng)求碼流對(duì)應(yīng)的響應(yīng)碼流;
反饋模塊,用于將所述響應(yīng)碼流通過所述串口服務(wù)器反饋給所述數(shù)據(jù)采集器。
優(yōu)選地,所述設(shè)備模擬器的通信系統(tǒng)還包括:
顯示模塊,用于在接收到響應(yīng)碼流的更改指令時(shí),在預(yù)設(shè)的顯示界面顯示所述響應(yīng)碼流,以供用戶基于所述顯示界面更改所述響應(yīng)碼流;
第一存儲(chǔ)模塊,用于在接收到響應(yīng)碼流的更改完成指令時(shí),存儲(chǔ)更改后的響應(yīng)碼流。
優(yōu)選地,所述設(shè)備模擬器的通信系統(tǒng)還包括:
讀取模塊,用于在啟動(dòng)時(shí),讀取預(yù)設(shè)的配置文件;
所述建立模塊,還用于根據(jù)所述配置文件中的各個(gè)端口信息,建立所述設(shè)備模擬器的各個(gè)鏈路終端;
第二存儲(chǔ)模塊,用于存儲(chǔ)各個(gè)端口信息與各個(gè)鏈路終端關(guān)聯(lián)關(guān)系。
優(yōu)選地,所述設(shè)備模擬器的通信系統(tǒng)還包括:
確定模塊,用于確定預(yù)設(shè)的碼流文件中各個(gè)請(qǐng)求碼流和響應(yīng)碼流的端口信息;
所述第二存儲(chǔ)模塊,還用于根據(jù)預(yù)存的端口信息與鏈路終端的關(guān)聯(lián)關(guān)系,將各個(gè)請(qǐng)求碼流和響應(yīng)碼流分別存儲(chǔ)至對(duì)應(yīng)的鏈路終端中。
優(yōu)選地,所述設(shè)備模擬器的通信系統(tǒng)還包括:
輸出模塊,用于若未存儲(chǔ)有所述預(yù)存請(qǐng)求碼流,輸出告警信息。
本發(fā)明提出的設(shè)備模擬器的通信方法及系統(tǒng),在接收到數(shù)據(jù)采集器通過串口服務(wù)器發(fā)送的請(qǐng)求碼流時(shí),設(shè)備模擬器確定是否存儲(chǔ)有與所述請(qǐng)求碼流匹配的預(yù)存請(qǐng)求碼流;若存儲(chǔ)有所述預(yù)存請(qǐng)求碼流,則根據(jù)所述預(yù)存請(qǐng)求碼流獲取所述預(yù)存請(qǐng)求碼流對(duì)應(yīng)的響應(yīng)碼流,并直接將所述響應(yīng)碼流通過所述串口服務(wù)器反饋給所述數(shù)據(jù)采集器,而不是與數(shù)據(jù)采集器進(jìn)行多種不同格式的碼流數(shù)據(jù)的通信傳輸時(shí),要配置多種不同的modbus設(shè)備以形成多個(gè)端口與數(shù)據(jù)采集器進(jìn)行多種格式的碼流數(shù)據(jù)的通信傳輸,本方案通過設(shè)備模擬器的即可實(shí)現(xiàn)與數(shù)據(jù)采集器進(jìn)行多種不同格式的請(qǐng)求碼流的通信傳輸,提高了設(shè)備模擬器的通信方式的智能性。
附圖說明
圖1為本發(fā)明設(shè)備模擬器的通信方法第一實(shí)施例的流程示意圖;
圖2為本發(fā)明設(shè)備模擬器的通信方法第二實(shí)施例的流程示意圖;
圖3為本發(fā)明設(shè)備模擬器的通信方法第三實(shí)施例的流程示意圖;
圖4為本發(fā)明設(shè)備模擬器的通信系統(tǒng)第一實(shí)施例的功能模塊示意圖;
圖5為本發(fā)明設(shè)備模擬器的通信系統(tǒng)第二實(shí)施例的功能模塊示意圖;
圖6為本發(fā)明設(shè)備模擬器的通信系統(tǒng)第三實(shí)施例的功能模塊示意圖。
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明提供一種設(shè)備模擬器的通信方法。
參照?qǐng)D1,圖1為本發(fā)明設(shè)備模擬器的通信方法第一實(shí)施例的流程示意圖。
本實(shí)施例提出一種設(shè)備模擬器的通信方法,所述設(shè)備模擬器的通信方法包括:
步驟S10,在接收到數(shù)據(jù)采集器通過串口服務(wù)器發(fā)送的請(qǐng)求碼流時(shí),設(shè)備模擬器確定是否存儲(chǔ)有與接收的請(qǐng)求碼流匹配的預(yù)存請(qǐng)求碼流;
在本實(shí)施例中,所述設(shè)備模擬器啟動(dòng)后,先連接到一個(gè)串口服務(wù)器上,然后再通過所述串口服務(wù)器與數(shù)據(jù)采集器進(jìn)行數(shù)據(jù)交互。本實(shí)施例中,優(yōu)選所述串口服務(wù)器包括32個(gè)端口,用于將不同通信協(xié)議對(duì)應(yīng)的碼流在預(yù)設(shè)的端口進(jìn)行轉(zhuǎn)換,所述設(shè)備模擬器優(yōu)選包括modbus設(shè)備模擬器,所述設(shè)備模擬器先接收所述數(shù)據(jù)采集器通過串口服務(wù)器發(fā)送的鏈路建立請(qǐng)求,然后通過其總端口與所述數(shù)據(jù)采集器建立通信鏈路。而在所述步驟S10之前,所述設(shè)備模擬器的通信方法包括步驟:
所述設(shè)備模擬器在啟動(dòng)時(shí),讀取預(yù)設(shè)的配置文件;
所述設(shè)備模擬器根據(jù)所述配置文件中的各個(gè)端口信息,建立所述設(shè)備模擬器的各個(gè)鏈路終端;
所述設(shè)備模擬器存儲(chǔ)各個(gè)端口信息與各個(gè)鏈路終端關(guān)聯(lián)關(guān)系。
在本實(shí)施例中,所述設(shè)備模擬器在啟動(dòng)時(shí),先讀取預(yù)設(shè)的配置文件中,優(yōu)選所述配置文件的配置的內(nèi)容包括:1)設(shè)備模擬器的IP,值得注意的是, 此時(shí)要保證設(shè)備模擬器的IP與數(shù)據(jù)采集器的IP不同,避免引起IP沖突;2)碼流接收端口個(gè)數(shù),優(yōu)選配置所述設(shè)備模擬器的碼流接收端口為247個(gè)端口,每個(gè)端口都可以通過串口服務(wù)器和數(shù)據(jù)采集器進(jìn)行通信,也就是所述設(shè)備模擬器可以支持247條鏈路,這些鏈路可以是設(shè)備模擬器中各個(gè)從機(jī)地址不同的碼流請(qǐng)求,也即可同時(shí)支持247個(gè)不同的modbus設(shè)備的響應(yīng)碼流的同時(shí)上報(bào);3)已經(jīng)使用的端口個(gè)數(shù)、以及請(qǐng)求碼流和響應(yīng)碼流,這主要是為了與設(shè)備模擬器中的碼流文件對(duì)應(yīng),建立起所述碼流文件和設(shè)備模擬器之間的同步,并且配置端口作為監(jiān)聽端口,使得建立起來數(shù)據(jù)采集器到設(shè)備模擬器的鏈路能夠通信。在本實(shí)施例中,所述設(shè)備模擬器的碼流接收端口為247個(gè)端口,再通過串口服務(wù)器的擴(kuò)展,即通過串口服務(wù)器上32個(gè)端口的擴(kuò)展,每個(gè)端口都相當(dāng)于可以支持247條modbus設(shè)備的鏈路,一條鏈路可以模擬一個(gè)modbus設(shè)備,即最后設(shè)備模擬器可以同時(shí)支持達(dá)到7904個(gè)modbus設(shè)備的模擬。
在本實(shí)施例中,設(shè)備模擬器在讀取所述配置文件后,根據(jù)配置文件中端口的劃分,建立起多個(gè)鏈路終端作為監(jiān)聽端口,即所述設(shè)備模擬器根據(jù)所述配置文件建立所述設(shè)備模擬器對(duì)應(yīng)的各個(gè)端口,進(jìn)一步地,構(gòu)建設(shè)備模擬器的碼流文件,碼流文件是按照modbus協(xié)議的碼流格式進(jìn)行構(gòu)建,碼流文件中包含各個(gè)端口信息,modbus設(shè)備的從機(jī)地址、讀寫寄存器的功能碼、讀寫寄存器的起始地址、收發(fā)碼流數(shù)據(jù)段,CRC(Cyclic Redundancy Check,循環(huán)冗余校驗(yàn)碼)的翻轉(zhuǎn)校驗(yàn),其中對(duì)于收發(fā)碼流數(shù)據(jù)段的構(gòu)造,根據(jù)不同modbus設(shè)備的碼流響應(yīng)格式要求來進(jìn)行定義,可以劃分為:雙字節(jié)響應(yīng)高位在前低位在后、雙字節(jié)響應(yīng)低位在前高位在后、單字節(jié)響應(yīng)、雙字節(jié)響應(yīng)高位乘以10000加上低字節(jié),雙字節(jié)響應(yīng)按照補(bǔ)碼方式響應(yīng)等多種格式。然后,按照碼流文件的配置對(duì)設(shè)備模擬器的鏈路進(jìn)行配置,要求數(shù)據(jù)采集器的端口、modbus設(shè)備從機(jī)地址的配置要和設(shè)備模擬器的碼流文件里的設(shè)置保持一致,否則,鏈路不通,影響設(shè)備模擬器和數(shù)據(jù)采集器的交互。正是通過兼容不同的modbus設(shè)備的收發(fā)碼流數(shù)據(jù)段實(shí)現(xiàn)對(duì)各個(gè)modbus設(shè)備的對(duì)接支持。即根據(jù)所述配置文件中各個(gè)端口信息,建立所述設(shè)備模擬器的各個(gè)鏈路終端,并儲(chǔ)各個(gè)端口信息與各個(gè)鏈路終端關(guān)聯(lián)關(guān)系。
進(jìn)一步地,所述設(shè)備模擬器存儲(chǔ)各個(gè)端口信息與各個(gè)鏈路終端關(guān)聯(lián)關(guān)系的步驟之后,所述設(shè)備模擬器的通信方法還包括步驟:
所述設(shè)備模擬器確定預(yù)設(shè)的碼流文件中各個(gè)請(qǐng)求碼流和響應(yīng)碼流的端口信息;
所述設(shè)備模擬器根據(jù)預(yù)存的端口信息與鏈路終端的關(guān)聯(lián)關(guān)系,將各個(gè)請(qǐng)求碼流和響應(yīng)碼流分別存儲(chǔ)至對(duì)應(yīng)的鏈路終端中。
在本實(shí)施例中,在建立所述設(shè)備模擬器對(duì)應(yīng)的各個(gè)鏈路終端后,讀取碼流文件,然后,根據(jù)所述碼流文件中各個(gè)鏈路終端對(duì)應(yīng)的端口信息,將碼流文件中的請(qǐng)求碼流和響應(yīng)碼流分別存儲(chǔ)到對(duì)應(yīng)的鏈路終端中??梢岳斫獾氖牵鲦溌方K端為所述設(shè)備模擬器的存儲(chǔ)單元。
步驟S20,若存儲(chǔ)有所述預(yù)存請(qǐng)求碼流,所述設(shè)備模擬器根據(jù)所述預(yù)存請(qǐng)求碼流獲取所述預(yù)存請(qǐng)求碼流對(duì)應(yīng)的響應(yīng)碼流;
步驟S30,所述設(shè)備模擬器將所述響應(yīng)碼流通過所述串口服務(wù)器反饋給所述數(shù)據(jù)采集器。
在本實(shí)施例中,所述設(shè)備模擬器在接收到數(shù)據(jù)采集器通過串口服務(wù)器發(fā)送的請(qǐng)求碼流時(shí),確定所述請(qǐng)求碼流,然后將接收到的所述碼流格式與各個(gè)鏈路終端存儲(chǔ)的預(yù)存請(qǐng)求碼流進(jìn)行比對(duì),以確定鏈路終端中是否預(yù)存有與所述請(qǐng)求碼流匹配的預(yù)存請(qǐng)求碼流,若有所述預(yù)存請(qǐng)求碼流,則獲取所述鏈路終端中與所述預(yù)存請(qǐng)求碼流對(duì)應(yīng)的響應(yīng)碼流,并將所述響應(yīng)碼流通過所述串口服務(wù)器反饋給所述數(shù)據(jù)采集器??梢岳斫獾氖?,所述設(shè)備模擬器是已經(jīng)獲取實(shí)際設(shè)備的碼流數(shù)據(jù),構(gòu)建的就是真實(shí)設(shè)備和數(shù)據(jù)采集器對(duì)接的場(chǎng)景,即用實(shí)際設(shè)備的抓包碼流來代替實(shí)際設(shè)備,可以有效降低在測(cè)試環(huán)境下使用實(shí)際設(shè)備帶來的開發(fā)以及測(cè)試成本的消耗,同時(shí)可以協(xié)助測(cè)試數(shù)據(jù)采集器的穩(wěn)定性和準(zhǔn)確性,提高了現(xiàn)場(chǎng)人員的維護(hù)和定位效率。
可以理解的是,所述數(shù)據(jù)采集器在接收到所述設(shè)備模擬器反饋的響應(yīng)碼流時(shí),將接收到的所述響應(yīng)碼流進(jìn)行解析,最后將解析后的響應(yīng)碼流顯示在管控界面如web界面上用戶展示。而數(shù)據(jù)采集器在運(yùn)行之前,先配置數(shù)據(jù)采集器的IP和端口等信息,這個(gè)端口創(chuàng)建的目的是為了接收請(qǐng)求參數(shù)和告警,并把采集到的設(shè)備模擬器參數(shù)值和告警內(nèi)容存儲(chǔ)到數(shù)據(jù)庫(kù)中,并用于在web頁(yè)面上展示,以顯示所述設(shè)備模擬器的日志信息等等,同時(shí),通過所述端口還可確認(rèn)數(shù)據(jù)采集器和設(shè)備模擬器之間的鏈路是否建立成功,從而達(dá)到檢測(cè)上層數(shù)據(jù)采集器塊采集的是否正確的目的。數(shù)據(jù)采集器配置的設(shè)備信息與設(shè) 備模擬器的鏈路信息一致。也就是說數(shù)據(jù)采集器會(huì)根據(jù)接收到的設(shè)備信息,通過串口服務(wù)器,向設(shè)備模擬器發(fā)送請(qǐng)求碼流,然后在接收到來自設(shè)備模擬器的響應(yīng)碼流后,按照modbus協(xié)議進(jìn)行碼流解析,并把具體的參數(shù)和告警的內(nèi)容呈現(xiàn)在web頁(yè)面上;進(jìn)一步地,根據(jù)用戶在設(shè)備模擬器響應(yīng)碼流的數(shù)據(jù)段的參數(shù)值的修改,使得在頁(yè)面上展示的管控場(chǎng)景有所不同。本實(shí)施例中的所述設(shè)備模擬器相當(dāng)于模擬各種modbus設(shè)備,可以支持發(fā)射modbus協(xié)議設(shè)備的各種功能碼的請(qǐng)求碼流,降低開發(fā)人員的開發(fā)周期,縮短實(shí)際設(shè)備對(duì)接周期。通過串口服務(wù)器把RTU(Remote Terminal Unit,遠(yuǎn)程終端單元)格式的碼流和TCP(Transmission Control Protocol,傳輸控制協(xié)議)協(xié)議的碼流在端口上進(jìn)行轉(zhuǎn)換,來擴(kuò)展對(duì)多modbus設(shè)備的支持。從數(shù)據(jù)采集器管控系統(tǒng)上講,可以構(gòu)建不同現(xiàn)場(chǎng)場(chǎng)景,提高現(xiàn)場(chǎng)管控系統(tǒng)問題定位效率。
本實(shí)施例提出的設(shè)備模擬器的通信方法,在接收到數(shù)據(jù)采集器通過串口服務(wù)器發(fā)送的請(qǐng)求碼流時(shí),設(shè)備模擬器確定是否存儲(chǔ)有與所述請(qǐng)求碼流匹配的預(yù)存請(qǐng)求碼流;若存儲(chǔ)有所述預(yù)存請(qǐng)求碼流,則根據(jù)所述預(yù)存請(qǐng)求碼流獲取所述預(yù)存請(qǐng)求碼流對(duì)應(yīng)的響應(yīng)碼流,并直接將所述響應(yīng)碼流通過所述串口服務(wù)器反饋給所述數(shù)據(jù)采集器,而不是與數(shù)據(jù)采集器進(jìn)行多種不同格式的碼流數(shù)據(jù)的通信傳輸時(shí),要配置多種不同的modbus設(shè)備以形成多個(gè)端口與數(shù)據(jù)采集器進(jìn)行多種格式的碼流數(shù)據(jù)的通信傳輸,本方案通過設(shè)備模擬器的即可實(shí)現(xiàn)與數(shù)據(jù)采集器進(jìn)行多種不同格式的請(qǐng)求碼流的通信傳輸,提高了設(shè)備模擬器的通信方式的智能性。
進(jìn)一步地,為了增加設(shè)備模擬器的通信的智能性,基于第一實(shí)施例提出本發(fā)明設(shè)備模擬器的通信方法的第二實(shí)施例,在本實(shí)施例中,參照?qǐng)D2,所述設(shè)備模擬器的通信方法還包括:
步驟S40,在接收到響應(yīng)碼流的更改指令時(shí),所述設(shè)備模擬器在預(yù)設(shè)的顯示界面顯示所述響應(yīng)碼流,以供用戶基于所述顯示界面更改所述響應(yīng)碼流;
步驟S50,在接收到響應(yīng)碼流的更改完成指令時(shí),所述設(shè)備模擬器存儲(chǔ)更改后的響應(yīng)碼流。
在本實(shí)施例中,在接收到響應(yīng)碼流的更改指令時(shí),所述設(shè)備模擬器在預(yù)設(shè)的顯示界面顯示所述響應(yīng)碼流,以供用戶基于所述顯示界面更改所述響應(yīng) 碼流,如用戶對(duì)顯示的響應(yīng)碼流對(duì)應(yīng)的碼流數(shù)據(jù)進(jìn)行格式更改,最后,在接收到響應(yīng)碼流的更改完成指令時(shí),所述設(shè)備模擬器存儲(chǔ)更改后的響應(yīng)碼流。所述更改指令可通過與所述設(shè)備模擬器連接的終端發(fā)送,如用戶基于所述終端預(yù)設(shè)的界面輸入更改指令,并通過所述終端發(fā)送給所述設(shè)備模擬器,實(shí)現(xiàn)了可實(shí)時(shí)更改設(shè)備模擬器的碼流文件中響應(yīng)碼流的數(shù)據(jù)段的數(shù)值,使得接收到響應(yīng)碼流的數(shù)據(jù)采集器將所述接收到的響應(yīng)碼流發(fā)送給預(yù)設(shè)的管控界面,從而更新管控界面上展示的內(nèi)容。進(jìn)一步地,所述設(shè)備模擬器中的碼流數(shù)據(jù)可以按照modbus協(xié)議RTU模式下的標(biāo)準(zhǔn)格式對(duì)所述響應(yīng)碼流進(jìn)行靈活添加,使得數(shù)據(jù)采集器連接的管控界面上的參數(shù)和告警能實(shí)時(shí)變化,從而滿足不同測(cè)試場(chǎng)景的要求。
進(jìn)一步地,為了增加設(shè)備模擬器的通信的智能性,基于第一或第二實(shí)施例提出本發(fā)明設(shè)備模擬器的通信方法的第三實(shí)施例,在本實(shí)施例中,參照?qǐng)D3,所述步驟S10之后,所述設(shè)備模擬器的通信方法還包括;
步驟S60,若未存儲(chǔ)有所述預(yù)存請(qǐng)求碼流,所述設(shè)備模擬器輸出告警信息。
在本實(shí)施例中,若未存儲(chǔ)有所述預(yù)存請(qǐng)求碼流,說明所述設(shè)備模擬器中預(yù)存的請(qǐng)求碼流與所述數(shù)據(jù)采集器待采集的請(qǐng)求碼流都不匹配,認(rèn)為所述數(shù)據(jù)采集器發(fā)送的請(qǐng)求碼流是無效碼流,所述設(shè)備模擬器可不做處理,等待下一次請(qǐng)求碼流的到來;或者所述設(shè)備模擬器輸出告警信息,如所述設(shè)備模擬器通過連接的顯示界面輸出文字告警信息,或者通過連接的終端輸出語音告警信息。
本發(fā)明進(jìn)一步提供一種設(shè)備模擬器的通信系統(tǒng)。
參照?qǐng)D4,圖4為本發(fā)明設(shè)備模擬器的通信系統(tǒng)較佳實(shí)施例的功能模塊示意圖。
需要強(qiáng)調(diào)的是,對(duì)本領(lǐng)域的技術(shù)人員來說,圖4所示功能模塊圖僅僅是一個(gè)較佳實(shí)施例的示例圖,本領(lǐng)域的技術(shù)人員圍繞圖4所示的設(shè)備模擬器的通信系統(tǒng)的功能模塊,可輕易進(jìn)行新的功能模塊的補(bǔ)充;各功能模塊的名稱是自定義名稱,僅用于輔助理解該設(shè)備模擬器的通信系統(tǒng)的各個(gè)程序功能塊,不用于限定本發(fā)明的技術(shù)方案,本發(fā)明技術(shù)方案的核心是,各自定義名稱的 功能模塊所要達(dá)成的功能。
本實(shí)施例提出一種設(shè)備模擬器的通信系統(tǒng),所述設(shè)備模擬器的通信系統(tǒng)包括:
建立模塊10,用于在接收到數(shù)據(jù)采集器通過串口服務(wù)器發(fā)送的請(qǐng)求碼流時(shí),確定是否存儲(chǔ)有與接收的請(qǐng)求碼流匹配的預(yù)存請(qǐng)求碼流;
在本實(shí)施例中,所述設(shè)備模擬器啟動(dòng)后,先連接到一個(gè)串口服務(wù)器上,然后再通過所述串口服務(wù)器與數(shù)據(jù)采集器進(jìn)行數(shù)據(jù)交互。本實(shí)施例中,優(yōu)選所述串口服務(wù)器包括32個(gè)端口,用于將不同通信協(xié)議對(duì)應(yīng)的碼流在預(yù)設(shè)的端口進(jìn)行轉(zhuǎn)換,所述設(shè)備模擬器優(yōu)選包括modbus設(shè)備模擬器,所述建立模塊10先接收所述數(shù)據(jù)采集器通過串口服務(wù)器發(fā)送的鏈路建立請(qǐng)求,然后通過其總端口與所述數(shù)據(jù)采集器建立通信鏈路。
所述設(shè)備模擬器的通信系統(tǒng)還包括:
讀取模塊,用于在啟動(dòng)時(shí),讀取預(yù)設(shè)的配置文件;
所述建立模塊10,還用于根據(jù)所述配置文件中的各個(gè)端口信息,建立所述設(shè)備模擬器的各個(gè)鏈路終端;
第二存儲(chǔ)模塊,用于存儲(chǔ)各個(gè)端口信息與各個(gè)鏈路終端關(guān)聯(lián)關(guān)系。
在本實(shí)施例中,所述設(shè)備模擬器在啟動(dòng)時(shí),讀取模塊先讀取預(yù)設(shè)的配置文件中,優(yōu)選所述配置文件的配置的內(nèi)容包括:1)設(shè)備模擬器的IP,值得注意的是,此時(shí)要保證設(shè)備模擬器的IP與數(shù)據(jù)采集器的IP不同,避免引起IP沖突;2)碼流接收端口個(gè)數(shù),優(yōu)選配置所述設(shè)備模擬器的碼流接收端口為247個(gè)端口,每個(gè)端口都可以通過串口服務(wù)器和數(shù)據(jù)采集器進(jìn)行通信,也就是所述設(shè)備模擬器可以支持247條鏈路,這些鏈路可以是設(shè)備模擬器中各個(gè)從機(jī)地址不同的碼流請(qǐng)求,也即可同時(shí)支持247個(gè)不同的modbus設(shè)備的響應(yīng)碼流的同時(shí)上報(bào);3)已經(jīng)使用的端口個(gè)數(shù)、以及請(qǐng)求碼流和響應(yīng)碼流,這主要是為了與設(shè)備模擬器中的碼流文件對(duì)應(yīng),以供所述建立模塊10建立起所述碼流文件和設(shè)備模擬器之間的同步,并且配置端口作為監(jiān)聽端口,使得所述建立模塊10建立起來數(shù)據(jù)采集器到設(shè)備模擬器的鏈路能夠通信。在本實(shí)施例中,所述設(shè)備模擬器的碼流接收端口為247個(gè)端口,再通過串口服務(wù)器的擴(kuò)展,即通過串口服務(wù)器上32個(gè)端口的擴(kuò)展,每個(gè)端口都相當(dāng)于可以支持247條modbus設(shè)備的鏈路,一條鏈路可以模擬一個(gè)modbus設(shè)備,即最后設(shè)備模擬 器可以同時(shí)支持達(dá)到7904個(gè)modbus設(shè)備的模擬。
在本實(shí)施例中,所述讀取模塊在讀取所述配置文件后,根據(jù)配置文件中端口的劃分,所述建立模塊10建立起多個(gè)鏈路終端作為監(jiān)聽端口,即所述建立模塊10根據(jù)所述配置文件建立所述設(shè)備模擬器對(duì)應(yīng)的各個(gè)端口,進(jìn)一步地,構(gòu)建設(shè)備模擬器的碼流文件,碼流文件是按照modbus協(xié)議的碼流格式進(jìn)行構(gòu)建,碼流文件中包含各個(gè)端口信息,modbus設(shè)備的從機(jī)地址、讀寫寄存器的功能碼、讀寫寄存器的起始地址、收發(fā)碼流數(shù)據(jù)段,CRC(Cyclic Redundancy Check,循環(huán)冗余校驗(yàn)碼)的翻轉(zhuǎn)校驗(yàn),其中對(duì)于收發(fā)碼流數(shù)據(jù)段的構(gòu)造,根據(jù)不同modbus設(shè)備的碼流響應(yīng)格式要求來進(jìn)行定義,可以劃分為:雙字節(jié)響應(yīng)高位在前低位在后、雙字節(jié)響應(yīng)低位在前高位在后、單字節(jié)響應(yīng)、雙字節(jié)響應(yīng)高位乘以10000加上低字節(jié),雙字節(jié)響應(yīng)按照補(bǔ)碼方式響應(yīng)等多種格式。然后,按照碼流文件的配置對(duì)設(shè)備模擬器的鏈路進(jìn)行配置,要求數(shù)據(jù)采集器的端口、modbus設(shè)備從機(jī)地址的配置要和設(shè)備模擬器的碼流文件里的設(shè)置保持一致,否則,鏈路不通,影響設(shè)備模擬器和數(shù)據(jù)采集器的交互。正是通過兼容不同的modbus設(shè)備的收發(fā)碼流數(shù)據(jù)段實(shí)現(xiàn)對(duì)各個(gè)modbus設(shè)備的對(duì)接支持。即根據(jù)所述配置文件中各個(gè)端口信息,所述建立模塊10建立所述設(shè)備模擬器的各個(gè)鏈路終端,并且所述第二存儲(chǔ)模塊儲(chǔ)各個(gè)端口信息與各個(gè)鏈路終端關(guān)聯(lián)關(guān)系。
進(jìn)一步地,所述設(shè)備模擬器的通信系統(tǒng)還包括:
確定模塊,用于確定預(yù)設(shè)的碼流文件中各個(gè)請(qǐng)求碼流和響應(yīng)碼流的端口信息;
所述第二存儲(chǔ)模塊,還用于根據(jù)預(yù)存的端口信息與鏈路終端的關(guān)聯(lián)關(guān)系,將各個(gè)請(qǐng)求碼流和響應(yīng)碼流分別存儲(chǔ)至對(duì)應(yīng)的鏈路終端中。
在本實(shí)施例中,在所述建立模塊10建立所述設(shè)備模擬器對(duì)應(yīng)的各個(gè)鏈路終端后,所述讀取模塊讀取碼流文件,然后,所述第二存儲(chǔ)模塊根據(jù)所述碼流文件中各個(gè)鏈路終端對(duì)應(yīng)的端口信息,將碼流文件中的請(qǐng)求碼流和響應(yīng)碼流分別存儲(chǔ)到對(duì)應(yīng)的鏈路終端中??梢岳斫獾氖?,所述鏈路終端為所述設(shè)備模擬器的存儲(chǔ)單元。
獲取模塊20,用于若存儲(chǔ)有所述預(yù)存請(qǐng)求碼流,根據(jù)所述預(yù)存請(qǐng)求碼流獲取所述預(yù)存請(qǐng)求碼流對(duì)應(yīng)的響應(yīng)碼流;
反饋模塊30,用于將所述響應(yīng)碼流通過所述串口服務(wù)器反饋給所述數(shù)據(jù)采集器。
在本實(shí)施例中,所述確定模塊在接收到數(shù)據(jù)采集器通過串口服務(wù)器發(fā)送的請(qǐng)求碼流時(shí),確定所述請(qǐng)求碼流,然后將接收到的所述碼流格式與各個(gè)鏈路終端存儲(chǔ)的預(yù)存請(qǐng)求碼流進(jìn)行比對(duì),以確定鏈路終端中是否預(yù)存有與所述請(qǐng)求碼流匹配的預(yù)存請(qǐng)求碼流,若有所述預(yù)存請(qǐng)求碼流,則獲取所述鏈路終端中與所述預(yù)存請(qǐng)求碼流對(duì)應(yīng)的響應(yīng)碼流,并且所述反饋模塊30將所述響應(yīng)碼流通過所述串口服務(wù)器反饋給所述數(shù)據(jù)采集器??梢岳斫獾氖?,所述設(shè)備模擬器是已經(jīng)獲取實(shí)際設(shè)備的碼流數(shù)據(jù),構(gòu)建的就是真實(shí)設(shè)備和數(shù)據(jù)采集器對(duì)接的場(chǎng)景,即用實(shí)際設(shè)備的抓包碼流來代替實(shí)際設(shè)備,可以有效降低在測(cè)試環(huán)境下使用實(shí)際設(shè)備帶來的開發(fā)以及測(cè)試成本的消耗,同時(shí)可以協(xié)助測(cè)試數(shù)據(jù)采集器的穩(wěn)定性和準(zhǔn)確性,提高了現(xiàn)場(chǎng)人員的維護(hù)和定位效率。
可以理解的是,所述數(shù)據(jù)采集器在接收到所述設(shè)備模擬器反饋的響應(yīng)碼流時(shí),將接收到的所述響應(yīng)碼流進(jìn)行解析,最后將解析后的響應(yīng)碼流顯示在管控界面如web界面上用戶展示。而數(shù)據(jù)采集器在運(yùn)行之前,先配置數(shù)據(jù)采集器的IP和端口等信息,這個(gè)端口創(chuàng)建的目的是為了接收請(qǐng)求參數(shù)和告警,并把采集到的設(shè)備模擬器參數(shù)值和告警內(nèi)容存儲(chǔ)到數(shù)據(jù)庫(kù)中,并用于在web頁(yè)面上展示,以顯示所述設(shè)備模擬器的日志信息等等,同時(shí),通過所述端口還可確認(rèn)數(shù)據(jù)采集器和設(shè)備模擬器之間的鏈路是否建立成功,從而達(dá)到檢測(cè)上層數(shù)據(jù)采集器塊采集的是否正確的目的。數(shù)據(jù)采集器配置的設(shè)備信息與設(shè)備模擬器的鏈路信息一致。也就是說數(shù)據(jù)采集器會(huì)根據(jù)接收到的設(shè)備信息,通過串口服務(wù)器,向設(shè)備模擬器發(fā)送請(qǐng)求碼流,然后在接收到來自設(shè)備模擬器的響應(yīng)碼流后,按照modbus協(xié)議進(jìn)行碼流解析,并把具體的參數(shù)和告警的內(nèi)容呈現(xiàn)在web頁(yè)面上;進(jìn)一步地,根據(jù)用戶在設(shè)備模擬器響應(yīng)碼流的數(shù)據(jù)段的參數(shù)值的修改,使得在頁(yè)面上展示的管控場(chǎng)景有所不同。本實(shí)施例中的所述設(shè)備模擬器相當(dāng)于模擬各種modbus設(shè)備,可以支持發(fā)射modbus協(xié)議設(shè)備的各種功能碼的請(qǐng)求碼流,降低開發(fā)人員的開發(fā)周期,縮短實(shí)際設(shè)備對(duì)接周期。通過串口服務(wù)器把RTU(Remote Terminal Unit,遠(yuǎn)程終端單元)格式的碼流和TCP(Transmission Control Protocol,傳輸控制協(xié)議)協(xié)議的碼流在端口上進(jìn)行轉(zhuǎn)換,來擴(kuò)展對(duì)多modbus設(shè)備的支持。從數(shù)據(jù)采集器管控系統(tǒng)上講, 可以構(gòu)建不同現(xiàn)場(chǎng)場(chǎng)景,提高現(xiàn)場(chǎng)管控系統(tǒng)問題定位效率。
本實(shí)施例提出的設(shè)備模擬器的通信系統(tǒng),在接收到數(shù)據(jù)采集器通過串口服務(wù)器發(fā)送的請(qǐng)求碼流時(shí),設(shè)備模擬器確定是否存儲(chǔ)有與所述請(qǐng)求碼流匹配的預(yù)存請(qǐng)求碼流;若存儲(chǔ)有所述預(yù)存請(qǐng)求碼流,則根據(jù)所述預(yù)存請(qǐng)求碼流獲取所述預(yù)存請(qǐng)求碼流對(duì)應(yīng)的響應(yīng)碼流,并直接將所述響應(yīng)碼流通過所述串口服務(wù)器反饋給所述數(shù)據(jù)采集器,而不是與數(shù)據(jù)采集器進(jìn)行多種不同格式的碼流數(shù)據(jù)的通信傳輸時(shí),要配置多種不同的modbus設(shè)備以形成多個(gè)端口與數(shù)據(jù)采集器進(jìn)行多種格式的碼流數(shù)據(jù)的通信傳輸,本方案通過設(shè)備模擬器的即可實(shí)現(xiàn)與數(shù)據(jù)采集器進(jìn)行多種不同格式的請(qǐng)求碼流的通信傳輸,提高了設(shè)備模擬器的通信方式的智能性。
進(jìn)一步地,為了增加設(shè)備模擬器的通信的智能性,基于第一實(shí)施例提出本發(fā)明設(shè)備模擬器的通信系統(tǒng)的第二實(shí)施例,在本實(shí)施例中,參照?qǐng)D5,所述設(shè)備模擬器的通信系統(tǒng)還包括:
顯示模塊40,用于在接收到響應(yīng)碼流的更改指令時(shí),在預(yù)設(shè)的顯示界面顯示所述響應(yīng)碼流,以供用戶基于所述顯示界面更改所述響應(yīng)碼流;
第一存儲(chǔ)模塊50,用于在接收到響應(yīng)碼流的更改完成指令時(shí),存儲(chǔ)更改后的響應(yīng)碼流。
在本實(shí)施例中,在接收到響應(yīng)碼流的更改指令時(shí),所述顯示模塊40在預(yù)設(shè)的顯示界面顯示所述響應(yīng)碼流,以供用戶基于所述顯示界面更改所述響應(yīng)碼流,如用戶對(duì)顯示的響應(yīng)碼流對(duì)應(yīng)的碼流數(shù)據(jù)進(jìn)行格式更改,最后,在接收到響應(yīng)碼流的更改完成指令時(shí),所述第一存儲(chǔ)模塊50存儲(chǔ)更改后的響應(yīng)碼流。所述更改指令可通過與所述設(shè)備模擬器連接的終端發(fā)送,如用戶基于所述終端預(yù)設(shè)的界面輸入更改指令,并通過所述終端發(fā)送給所述設(shè)備模擬器,實(shí)現(xiàn)了可實(shí)時(shí)更改設(shè)備模擬器的碼流文件中響應(yīng)碼流的數(shù)據(jù)段的數(shù)值,使得接收到響應(yīng)碼流的數(shù)據(jù)采集器將所述接收到的響應(yīng)碼流發(fā)送給預(yù)設(shè)的管控界面,從而更新管控界面上展示的內(nèi)容。進(jìn)一步地,所述設(shè)備模擬器中的碼流數(shù)據(jù)可以按照modbus協(xié)議RTU模式下的標(biāo)準(zhǔn)格式對(duì)所述響應(yīng)碼流進(jìn)行靈活添加,使得數(shù)據(jù)采集器連接的管控界面上的參數(shù)和告警能實(shí)時(shí)變化,從而滿足不同測(cè)試場(chǎng)景的要求。
進(jìn)一步地,為了增加設(shè)備模擬器的通信的智能性,基于第一或第二實(shí)施例提出本發(fā)明設(shè)備模擬器的通信系統(tǒng)的第三實(shí)施例,在本實(shí)施例中,參照?qǐng)D6,所述設(shè)備模擬器的通信系統(tǒng)還包括:
輸出模塊60,用于若未存儲(chǔ)有所述預(yù)存請(qǐng)求碼流,輸出告警信息。
在本實(shí)施例中,若未存儲(chǔ)有所述預(yù)存請(qǐng)求碼流,說明所述設(shè)備模擬器中預(yù)存的請(qǐng)求碼流與所述數(shù)據(jù)采集器待采集的請(qǐng)求碼流都不匹配,認(rèn)為所述數(shù)據(jù)采集器發(fā)送的請(qǐng)求碼流是無效碼流,所述設(shè)備模擬器可不做處理,等待下一次請(qǐng)求碼流的到來;或者所述輸出模塊60輸出告警信息,如所述設(shè)備模擬器通過連接的顯示界面輸出文字告警信息,或者通過連接的終端輸出語音告警信息。
需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其它變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者系統(tǒng)不僅包括那些要素,而且還包括沒有明確列出的其它要素,或者是還包括為這種過程、方法、物品或者系統(tǒng)所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括該要素的過程、方法、物品或者系統(tǒng)中還存在另外的相同要素。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是 利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其它相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。