本技術(shù)涉及工業(yè)通信網(wǎng)絡(luò),尤其涉及一種數(shù)據(jù)傳輸方法、系統(tǒng)、設(shè)備以及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
背景技術(shù):
1、隨著工業(yè)通信網(wǎng)絡(luò)技術(shù)的持續(xù)發(fā)展,用戶對(duì)工業(yè)網(wǎng)絡(luò)場(chǎng)景下的數(shù)據(jù)傳輸效率提出了更高的要求。
2、現(xiàn)有工業(yè)網(wǎng)絡(luò)中的數(shù)據(jù)傳輸方式,如無應(yīng)答多次重復(fù)發(fā)數(shù)據(jù)、停等協(xié)議(超時(shí)重傳)以及arq(automatic?repeat?request,自動(dòng)重傳請(qǐng)求)等,均存在一定的局限性。其中,無應(yīng)答多次重復(fù)發(fā)送數(shù)據(jù)方式通過復(fù)制并多次發(fā)送數(shù)據(jù)以確保接收,這種方法雖然簡(jiǎn)單易行,但會(huì)大幅度削減帶寬資源。停等協(xié)議則要求發(fā)送方在收到接收方的ack(acknowledgment,確認(rèn)字符)前不發(fā)送新數(shù)據(jù)段,這種方式雖然能夠確保數(shù)據(jù)傳輸?shù)目煽啃?,但整體通信效率較低,無法滿足高效傳輸?shù)男枨?。而arq方式則是在接收方檢測(cè)到錯(cuò)誤或超時(shí)后請(qǐng)求發(fā)送方重發(fā)數(shù)據(jù),但這種方式并不能保證數(shù)據(jù)傳輸?shù)捻樞蛐?,特別是在網(wǎng)絡(luò)存在多路徑或阻塞的情況下,數(shù)據(jù)交互的順序可能會(huì)變得混亂,從而影響數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和可靠性。
3、因此,在確保數(shù)據(jù)傳輸可靠性的同時(shí),如何提高工業(yè)網(wǎng)絡(luò)場(chǎng)景下的數(shù)據(jù)傳輸效率是目前亟待解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)的主要目的在于提供一種數(shù)據(jù)傳輸方法、系統(tǒng)、設(shè)備以及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),旨在確保數(shù)據(jù)傳輸可靠性的同時(shí),提高工業(yè)網(wǎng)絡(luò)場(chǎng)景下的數(shù)據(jù)傳輸效率。
2、為實(shí)現(xiàn)上述目的,本技術(shù)提供一種數(shù)據(jù)傳輸方法,所述數(shù)據(jù)傳輸方法應(yīng)用于控制器,所述數(shù)據(jù)傳輸方法包括:
3、通過預(yù)設(shè)的發(fā)送窗口從通信數(shù)據(jù)序列中指定以幀序號(hào)順序排列的多組通信數(shù)據(jù)幀作為待發(fā)數(shù)據(jù)序列,并按照所述幀序號(hào)順序?qū)⑺龃l(fā)數(shù)據(jù)序列中每一所述通信數(shù)據(jù)幀發(fā)送至目標(biāo)節(jié)點(diǎn);
4、響應(yīng)于所述目標(biāo)節(jié)點(diǎn)在預(yù)設(shè)的超時(shí)等待時(shí)間內(nèi)發(fā)送的數(shù)據(jù)環(huán)回結(jié)果,依據(jù)所述數(shù)據(jù)環(huán)回結(jié)果和所述待發(fā)數(shù)據(jù)序列確定所述發(fā)送窗口的更新數(shù)據(jù)序列,并依據(jù)所述更新數(shù)據(jù)序列進(jìn)行數(shù)據(jù)傳輸。
5、在一實(shí)施方式中,所述數(shù)據(jù)環(huán)回結(jié)果為所述待發(fā)數(shù)據(jù)序列中與當(dāng)前數(shù)據(jù)幀相同的環(huán)回?cái)?shù)據(jù)幀;所述依據(jù)所述數(shù)據(jù)環(huán)回結(jié)果和所述待發(fā)數(shù)據(jù)序列確定更新數(shù)據(jù)序列的步驟包括:
6、響應(yīng)于所述數(shù)據(jù)環(huán)回結(jié)果,將所述待發(fā)數(shù)據(jù)序列中最終數(shù)據(jù)幀的下一個(gè)通信數(shù)據(jù)幀作為目標(biāo)數(shù)據(jù)幀;
7、將當(dāng)前數(shù)據(jù)幀的下一個(gè)通信數(shù)據(jù)幀作為下一個(gè)當(dāng)前數(shù)據(jù)幀,并以幀序號(hào)順序排序?qū)⑾乱粋€(gè)所述當(dāng)前數(shù)據(jù)幀到所述目標(biāo)數(shù)據(jù)幀的數(shù)據(jù)序列作為所述發(fā)送窗口的更新數(shù)據(jù)序列。
8、在一實(shí)施方式中,所述依據(jù)所述更新數(shù)據(jù)序列進(jìn)行數(shù)據(jù)傳輸?shù)牟襟E包括:
9、在向所述目標(biāo)節(jié)點(diǎn)發(fā)送所述更新數(shù)據(jù)序列中幀序號(hào)最大的通信數(shù)據(jù)幀后,將所述更新數(shù)據(jù)序列作為下一個(gè)待發(fā)數(shù)據(jù)序列,返回執(zhí)行所述響應(yīng)于所述目標(biāo)節(jié)點(diǎn)在預(yù)設(shè)超時(shí)等待時(shí)間內(nèi)發(fā)送的所述待發(fā)數(shù)據(jù)序列的數(shù)據(jù)環(huán)回結(jié)果的步驟;
10、直至所述發(fā)送窗口的更新數(shù)據(jù)序列為空集時(shí),則確定基于所述發(fā)送窗口完成所述待發(fā)數(shù)據(jù)序列的數(shù)據(jù)傳輸。
11、在一實(shí)施方式中,在所述按照所述幀序號(hào)順序?qū)⑺龃l(fā)數(shù)據(jù)序列中每一所述通信數(shù)據(jù)幀發(fā)送至目標(biāo)節(jié)點(diǎn)的步驟之后,所述數(shù)據(jù)傳輸方法還包括:
12、在所述超時(shí)等待時(shí)間內(nèi)未接收到所述目標(biāo)節(jié)點(diǎn)發(fā)送的所述數(shù)據(jù)環(huán)回結(jié)果時(shí),將當(dāng)前數(shù)據(jù)幀重新發(fā)送至所述目標(biāo)節(jié)點(diǎn),并累計(jì)所述當(dāng)前數(shù)據(jù)幀的重復(fù)發(fā)送次數(shù);
13、檢測(cè)在所述重復(fù)發(fā)送次數(shù)未超過預(yù)設(shè)的重傳次數(shù)閾值時(shí)是否接收到所述目標(biāo)節(jié)點(diǎn)在所述超時(shí)等待時(shí)間內(nèi)發(fā)送的所述數(shù)據(jù)環(huán)回結(jié)果;
14、若是,則返回執(zhí)行依據(jù)所述數(shù)據(jù)環(huán)回結(jié)果和所述待發(fā)數(shù)據(jù)序列確定所述發(fā)送窗口的更新數(shù)據(jù)序列的步驟;
15、若否,則停止執(zhí)行所述將所述當(dāng)前數(shù)據(jù)幀重新發(fā)送至所述目標(biāo)節(jié)點(diǎn)的步驟,依據(jù)所述待發(fā)數(shù)據(jù)序列中除所述當(dāng)前數(shù)據(jù)幀之外的其它數(shù)據(jù)幀進(jìn)行數(shù)據(jù)傳輸。
16、在一實(shí)施方式中,所述依據(jù)所述待發(fā)數(shù)據(jù)序列中除所述當(dāng)前數(shù)據(jù)幀之外的其它數(shù)據(jù)幀進(jìn)行數(shù)據(jù)傳輸?shù)牟襟E包括:
17、確定所述待發(fā)數(shù)據(jù)序列中除所述當(dāng)前數(shù)據(jù)幀之外的其它數(shù)據(jù)幀,在所述超時(shí)等待時(shí)間內(nèi)接收到所述其它數(shù)據(jù)幀對(duì)應(yīng)的數(shù)據(jù)環(huán)回幀后,向所述目標(biāo)節(jié)點(diǎn)發(fā)送所述當(dāng)前數(shù)據(jù)幀進(jìn)行數(shù)據(jù)傳輸。
18、在一實(shí)施方式中,所述向所述目標(biāo)節(jié)點(diǎn)發(fā)送所述當(dāng)前數(shù)據(jù)幀進(jìn)行數(shù)據(jù)傳輸?shù)牟襟E包括:
19、當(dāng)所述目標(biāo)節(jié)點(diǎn)返回與所述當(dāng)前數(shù)據(jù)幀相同的環(huán)回?cái)?shù)據(jù)幀時(shí),維持所述發(fā)送窗口的待發(fā)數(shù)據(jù)序列不變;
20、直至所述目標(biāo)節(jié)點(diǎn)將緩存至預(yù)設(shè)的接收緩存區(qū)中的所述其它數(shù)據(jù)幀按照幀序號(hào)順序依次出棧后,將所述待發(fā)數(shù)據(jù)序列中最終數(shù)據(jù)幀的下一個(gè)通信數(shù)據(jù)幀作為下一個(gè)當(dāng)前數(shù)據(jù)幀;
21、以幀序號(hào)順序排序?qū)⑾乱粋€(gè)所述當(dāng)前數(shù)據(jù)幀到目的數(shù)據(jù)幀的數(shù)據(jù)序列作為下一個(gè)待發(fā)數(shù)據(jù)序列,返回執(zhí)行所述按照所述幀序號(hào)順序?qū)⑺龃l(fā)數(shù)據(jù)序列中每一所述通信數(shù)據(jù)幀發(fā)送至目標(biāo)節(jié)點(diǎn)的步驟,所述目的數(shù)據(jù)幀為幀序號(hào)為所述發(fā)送窗口的數(shù)據(jù)容量的通信數(shù)據(jù)幀。
22、在一實(shí)施方式中,所述數(shù)據(jù)環(huán)回結(jié)果為所述待發(fā)數(shù)據(jù)序列中與當(dāng)前數(shù)據(jù)幀相同的環(huán)回?cái)?shù)據(jù)幀,所述數(shù)據(jù)傳輸方法還包括:
23、向所述目標(biāo)節(jié)點(diǎn)發(fā)送數(shù)據(jù)問詢請(qǐng)求,并依據(jù)所述目標(biāo)節(jié)點(diǎn)對(duì)所述數(shù)據(jù)問詢請(qǐng)求做出的響應(yīng),按照幀序號(hào)順序發(fā)送所述待發(fā)數(shù)據(jù)序列中每一所述通信數(shù)據(jù)幀對(duì)應(yīng)的數(shù)據(jù)讀取請(qǐng)求至所述目標(biāo)節(jié)點(diǎn);
24、若在所述超時(shí)等待時(shí)間內(nèi)接收到所述目標(biāo)節(jié)點(diǎn)發(fā)送的數(shù)據(jù)環(huán)回結(jié)果,執(zhí)行所述依據(jù)所述數(shù)據(jù)環(huán)回結(jié)果和所述待發(fā)數(shù)據(jù)序列確定所述發(fā)送窗口的更新數(shù)據(jù)序列的步驟,并將所述更新數(shù)據(jù)序列作為下一個(gè)待發(fā)數(shù)據(jù)幀,返回執(zhí)行所述按照幀序號(hào)順序發(fā)送所述待發(fā)數(shù)據(jù)序列中每一所述通信數(shù)據(jù)幀對(duì)應(yīng)的數(shù)據(jù)讀取請(qǐng)求至所述目標(biāo)節(jié)點(diǎn)的步驟。
25、在一實(shí)施方式中,在所述按照幀序號(hào)順序發(fā)送所述待發(fā)數(shù)據(jù)序列中每一所述通信數(shù)據(jù)幀對(duì)應(yīng)的數(shù)據(jù)讀取請(qǐng)求至所述目標(biāo)節(jié)點(diǎn)的步驟之后,所述數(shù)據(jù)傳輸方法還包括:
26、若在所述超時(shí)等待時(shí)間內(nèi)未接收到所述目標(biāo)節(jié)點(diǎn)對(duì)所述待發(fā)數(shù)據(jù)序列中的目標(biāo)讀取請(qǐng)求做出的響應(yīng),向所述目標(biāo)節(jié)點(diǎn)重新發(fā)送所述目標(biāo)讀取請(qǐng)求,所述目標(biāo)讀取請(qǐng)求為多個(gè)所述數(shù)據(jù)讀取請(qǐng)求中的任意一個(gè)數(shù)據(jù)讀取請(qǐng)求;
27、響應(yīng)于所述目標(biāo)節(jié)點(diǎn)返回的所述目標(biāo)讀取請(qǐng)求的目標(biāo)環(huán)回結(jié)果,向所述目標(biāo)節(jié)點(diǎn)發(fā)送幀序號(hào)為目標(biāo)序次的通信數(shù)據(jù)幀對(duì)應(yīng)的數(shù)據(jù)讀取請(qǐng)求;其中,
28、所述目標(biāo)環(huán)回結(jié)果被設(shè)置為確定所述目標(biāo)讀取請(qǐng)求指定的通信數(shù)據(jù)幀已接收,所述目標(biāo)序次是依據(jù)所述發(fā)送窗口的數(shù)據(jù)容量疊加所述目標(biāo)讀取請(qǐng)求指向的幀序號(hào)序次得到的。
29、此外,為實(shí)現(xiàn)上述目的,本技術(shù)還提供一種數(shù)據(jù)傳輸方法,所述數(shù)據(jù)傳輸方法應(yīng)用于目標(biāo)節(jié)點(diǎn),所述數(shù)據(jù)傳輸方法包括:
30、接收控制器按照幀序號(hào)順序發(fā)送的待發(fā)數(shù)據(jù)序列中的每一通信數(shù)據(jù)幀,并在預(yù)設(shè)的超時(shí)等待時(shí)間內(nèi)發(fā)送數(shù)據(jù)環(huán)回結(jié)果至所述控制器。
31、在一實(shí)施方式中,所述數(shù)據(jù)傳輸方法還包括:
32、響應(yīng)于所述控制器的數(shù)據(jù)問詢請(qǐng)求,接收所述控制器按照幀序號(hào)順序發(fā)送的所述待發(fā)數(shù)據(jù)序列中每一所述通信數(shù)據(jù)幀對(duì)應(yīng)的數(shù)據(jù)讀取請(qǐng)求;
33、直至讀取到所述待發(fā)數(shù)據(jù)序列中最終數(shù)據(jù)幀的下一個(gè)通信數(shù)據(jù)幀的數(shù)據(jù)讀取請(qǐng)求時(shí),則確定在所述超時(shí)等待時(shí)間內(nèi)將與當(dāng)前數(shù)據(jù)幀相同的環(huán)回?cái)?shù)據(jù)幀作為數(shù)據(jù)環(huán)回結(jié)果已上傳至所述控制器,所述數(shù)據(jù)環(huán)回結(jié)果被設(shè)置為確定所述當(dāng)前數(shù)據(jù)幀已接收。
34、在一實(shí)施方式中,在所述接收所述控制器按照幀序號(hào)順序發(fā)送的所述待發(fā)數(shù)據(jù)序列中每一所述通信數(shù)據(jù)幀對(duì)應(yīng)的數(shù)據(jù)讀取請(qǐng)求的步驟之后,所述數(shù)據(jù)傳輸方法包括:
35、若所述控制器未接收到目標(biāo)節(jié)點(diǎn)對(duì)所述待發(fā)數(shù)據(jù)序列中的目標(biāo)讀取請(qǐng)求做出的響應(yīng),接收到所述控制器重新發(fā)送的所述目標(biāo)讀取請(qǐng)求,所述目標(biāo)讀取請(qǐng)求為多個(gè)所述數(shù)據(jù)讀取請(qǐng)求中的任意一個(gè)數(shù)據(jù)讀取請(qǐng)求;
36、響應(yīng)于所述目標(biāo)讀取請(qǐng)求,將與所述目標(biāo)讀取請(qǐng)求指定的通信數(shù)據(jù)幀相同的環(huán)回?cái)?shù)據(jù)幀作為目標(biāo)環(huán)回結(jié)果發(fā)送給所述控制器,所述目標(biāo)環(huán)回結(jié)果被設(shè)置為確定所述目標(biāo)讀取請(qǐng)求指定的通信數(shù)據(jù)幀已接收。
37、此外,為實(shí)現(xiàn)上述目的,本技術(shù)還提供一種數(shù)據(jù)傳輸系統(tǒng),所述數(shù)據(jù)傳輸系統(tǒng)至少包括通信連接的控制器和目標(biāo)節(jié)點(diǎn);
38、所述控制器用于,通過預(yù)設(shè)的發(fā)送窗口從通信數(shù)據(jù)序列中指定以幀序號(hào)順序排列的多組通信數(shù)據(jù)幀作為待發(fā)數(shù)據(jù)序列,并按照所述幀序號(hào)順序?qū)⑺龃l(fā)數(shù)據(jù)序列中每一所述通信數(shù)據(jù)幀發(fā)送至目標(biāo)節(jié)點(diǎn);響應(yīng)于所述目標(biāo)節(jié)點(diǎn)在預(yù)設(shè)的超時(shí)等待時(shí)間內(nèi)發(fā)送的數(shù)據(jù)環(huán)回結(jié)果,依據(jù)所述數(shù)據(jù)環(huán)回結(jié)果和所述待發(fā)數(shù)據(jù)序列確定所述發(fā)送窗口的更新數(shù)據(jù)序列,并依據(jù)所述更新數(shù)據(jù)序列進(jìn)行數(shù)據(jù)傳輸;
39、所述目標(biāo)節(jié)點(diǎn)用于,接收所述控制器按照幀序號(hào)順序發(fā)送的待發(fā)數(shù)據(jù)序列中的每一通信數(shù)據(jù)幀,并在預(yù)設(shè)的超時(shí)等待時(shí)間內(nèi)發(fā)送所述數(shù)據(jù)環(huán)回結(jié)果至所述控制器。
40、本技術(shù)數(shù)據(jù)傳輸系統(tǒng)的各個(gè)功能設(shè)備在運(yùn)行時(shí)實(shí)現(xiàn)如上所述的本技術(shù)數(shù)據(jù)傳輸方法的步驟。
41、此外,為實(shí)現(xiàn)上述目的,本技術(shù)還提供一種設(shè)備,所述設(shè)備包括存儲(chǔ)器、處理器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的數(shù)據(jù)傳輸程序,所述數(shù)據(jù)傳輸程序被所述處理器執(zhí)行時(shí)實(shí)現(xiàn)上述數(shù)據(jù)傳輸方法的步驟。
42、此外,為實(shí)現(xiàn)上述目的,本技術(shù)還提供一種存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有數(shù)據(jù)傳輸程序,所述數(shù)據(jù)傳輸程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述的數(shù)據(jù)傳輸方法的步驟。
43、本技術(shù)提供了一種數(shù)據(jù)傳輸方法對(duì)現(xiàn)有工業(yè)網(wǎng)絡(luò)中的數(shù)據(jù)傳輸方式進(jìn)行了針對(duì)性優(yōu)化。具體的,本技術(shù)設(shè)置的預(yù)設(shè)的發(fā)送窗口可以依據(jù)工業(yè)網(wǎng)絡(luò)場(chǎng)景的網(wǎng)絡(luò)狀態(tài)和數(shù)據(jù)傳輸需求從通信數(shù)據(jù)序列中指定以幀序號(hào)順序排列的多組通信數(shù)據(jù)幀作為待發(fā)數(shù)據(jù)序列,并按照幀序號(hào)順序?qū)⒋l(fā)數(shù)據(jù)序列中每一通信數(shù)據(jù)幀發(fā)送至目標(biāo)節(jié)點(diǎn),以確保數(shù)據(jù)傳輸?shù)挠行蛐院瓦B貫性;接下來,在目標(biāo)節(jié)點(diǎn)在預(yù)設(shè)的超時(shí)等待時(shí)間內(nèi)將與當(dāng)前數(shù)據(jù)幀(即多組通信數(shù)據(jù)幀中幀序號(hào)最小的通信數(shù)據(jù)幀)相同的環(huán)回?cái)?shù)據(jù)幀作為數(shù)據(jù)環(huán)回結(jié)果反饋至控制器進(jìn)行確認(rèn),以便控制器能夠迅速驗(yàn)證數(shù)據(jù)傳輸?shù)耐暾?;接下來,控制器能夠基于?shù)據(jù)環(huán)回結(jié)果快速調(diào)整發(fā)生窗口的更新數(shù)據(jù)序列,排除待發(fā)數(shù)據(jù)序列中依據(jù)數(shù)據(jù)環(huán)回結(jié)果確認(rèn)無誤的通信數(shù)據(jù)幀,僅在發(fā)送窗口中保留待發(fā)送的新數(shù)據(jù)幀序列(即更新數(shù)據(jù)序列),并依據(jù)更新數(shù)據(jù)序列進(jìn)行數(shù)據(jù)傳輸,實(shí)現(xiàn)了對(duì)數(shù)據(jù)傳輸過程的動(dòng)態(tài)調(diào)整和優(yōu)化,克服了現(xiàn)有數(shù)據(jù)傳輸方式(如無應(yīng)答多次重復(fù)發(fā)數(shù)據(jù)、停等協(xié)議以及arq)的固有缺陷,顯著提高了工業(yè)網(wǎng)絡(luò)場(chǎng)景下的數(shù)據(jù)傳輸效率,實(shí)現(xiàn)了高效的帶寬利用,還保證了數(shù)據(jù)傳輸?shù)挠行蚪换ズ涂煽總鬏?,滿足了工業(yè)網(wǎng)絡(luò)場(chǎng)景對(duì)高效、可靠數(shù)據(jù)傳輸?shù)钠惹行枨蟆?/p>