專利名稱:工控系統(tǒng)中的數(shù)據(jù)傳輸方法及工控子系統(tǒng)、工控系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及工業(yè)自動化控制領域,尤其涉及一種工控系統(tǒng)中的數(shù)據(jù)傳輸方法及工控子系統(tǒng)、工控系統(tǒng)。
背景技術:
在現(xiàn)代工控系統(tǒng)中,系統(tǒng)的復雜度越來越高,整個系統(tǒng)的功能往往需要由多個子系統(tǒng)協(xié)同工作才能完成,每個子系統(tǒng)是一個相對獨立的系統(tǒng),有自己的微控制器和存儲器,可能使用不同的開發(fā)工具和研發(fā)團隊,使得各個子系統(tǒng)之間如何實現(xiàn)可靠交互成為工控系統(tǒng)的技術難點。舉例來說,在現(xiàn)有技術方案中,人機界面子系統(tǒng)(Human Man-machineInterface,簡稱HMI)和主控子系統(tǒng)(Main Control System,簡稱MCS)之間需要進行許多交互來配合完成整個系統(tǒng)的功能,例如用戶通過HMI輸入機器的控制命令,需要把該命令通知MCS,MCS按照要求執(zhí)行該命令,并把執(zhí)行的結(jié)果反饋給HMI,同時把結(jié)果輸出給用戶。目前,諸如此類的交互往往采用具備可靠傳輸特性的硬件鏈路層,如控制器局域網(wǎng)總線(Controller Area Network,簡稱CAN),數(shù)據(jù)包的可靠發(fā)送由硬件鏈路層處理,上層軟件按照硬件提供的接口發(fā)送數(shù)據(jù)包,雖然降低了軟件的研發(fā)成本,但由于需要額外的硬件接口,提高了硬件成本。但是,采用硬件成本低的不可靠鏈路,如普通的并行總線或串行總線,又無法保證子系統(tǒng)之間數(shù)據(jù)包的可靠傳輸。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種工控系統(tǒng)中的數(shù)據(jù)傳輸方法及工控子系統(tǒng)、工控系統(tǒng),用以解決現(xiàn)有技術中無法保證采用不可靠鏈路時工控子系統(tǒng)之間數(shù)據(jù)包可靠傳輸?shù)膯栴}。一方面,本發(fā)明實施例提供一種工控系統(tǒng)中的數(shù)據(jù)傳輸方法,包括:第一工控子系統(tǒng)將數(shù)據(jù)包通過不可靠鏈路發(fā)送給第二工控子系統(tǒng),所述數(shù)據(jù)包的包頭攜帶第一序號;若在預設時間內(nèi)接收到所述第二工控子系統(tǒng)返回的確認包,且所述確認包攜帶所述第一序號,則將下一數(shù)據(jù)包發(fā)送給所述第二工控子系統(tǒng)。另一方面,本發(fā)明實施例提供一種工控系統(tǒng)中的數(shù)據(jù)傳輸方法,包括:第二工控子系統(tǒng)通過不可靠鏈路接收第一工控子系統(tǒng)發(fā)送的數(shù)據(jù)包,所述數(shù)據(jù)包的包頭攜帶第一序號;生成所述數(shù)據(jù)包的確認包,所述確認包攜帶所述第一序號;將所述確認包發(fā)送給所述第一工控子系統(tǒng),以使所述第一工控子系統(tǒng)發(fā)送下一數(shù)據(jù)包。另一方面,本發(fā)明實施例提供一種工控子系統(tǒng),包括:第一發(fā)送模塊,用于將數(shù)據(jù)包通過不可靠鏈路發(fā)送給另一工控子系統(tǒng),所述數(shù)據(jù)包的包頭攜帶第一序號;
第一接收模塊,用于若在預設時間內(nèi)接收到所述另一工控子系統(tǒng)返回的確認包,且所述確認包攜帶所述第一序號,則指示所述第一發(fā)送模塊將下一數(shù)據(jù)包發(fā)送給所述另一工控子系統(tǒng)。另一方面,本發(fā)明實施例提供另一種工控子系統(tǒng),包括:第二接收模塊,用于通過不可靠鏈路接收另一工控子系統(tǒng)發(fā)送的數(shù)據(jù)包,所述數(shù)據(jù)包的包頭攜帶第一序號;生成模塊,用于生成所述數(shù)據(jù)包的確認包,所述確認包攜帶所述第一序號;第二發(fā)送模塊,用于將所述確認包發(fā)送給所述另一工控子系統(tǒng),以使所述另一工控子系統(tǒng)發(fā)送下一數(shù)據(jù)包。再一方面,本發(fā)明實施例提供一種工控系統(tǒng),包括:上述的兩種工控子系統(tǒng),所述兩種工控子系統(tǒng)之間通過不可靠鏈路連接。本發(fā)明實施例采用第一工控子系統(tǒng)將攜帶第一序號的數(shù)據(jù)包通過不可靠鏈路發(fā)送給第二工控子系統(tǒng),若在預設時間內(nèi)接收到所述第二工控子系統(tǒng)返回的攜帶所述第一序號的確認包,則將下一數(shù)據(jù)包發(fā)送給所述第二工控子系統(tǒng)的技術手段,使得工控子系統(tǒng)之間在不可靠的硬件通訊鏈路上實現(xiàn)可靠數(shù)據(jù)通訊,降低硬件成本,提高硬件通訊鏈路選擇的靈活性。
圖1為本發(fā)明實施例一提供的一種工控系統(tǒng)中的數(shù)據(jù)傳輸方法的流程示意圖;圖2為為本發(fā)明實施例二提供的一種工控系統(tǒng)中的數(shù)據(jù)傳輸方法的流程示意圖;圖3為本發(fā)明實施例三提供的一種工控子系統(tǒng)的結(jié)構示意圖;圖4為本發(fā)明實施例四提供的一種工控子系統(tǒng)的結(jié)構示意圖;圖5為本發(fā)明實施例五提供的一種工控系統(tǒng)的結(jié)構示意圖;圖6為本發(fā)明實施例的一種包格式的示意圖;圖7為本發(fā)明實施例的一種具體應用的流程示意圖。
具體實施例方式下面通過附圖和實施例,對本發(fā)明的技術方案做進一步的詳細說明。圖1為本發(fā)明實施例一提供的一種工控系統(tǒng)中的數(shù)據(jù)傳輸方法的流程示意圖,如圖1所示,該方法包括:步驟101、第一工控子系統(tǒng)將數(shù)據(jù)包通過不可靠鏈路發(fā)送給第二工控子系統(tǒng),所述數(shù)據(jù)包的包頭攜帶第一序號。舉例來說,第一工控子系統(tǒng)可以是HMI或MCS,相應地,第二工控子系統(tǒng)可以是MCS或HMI。具體地,每個數(shù)據(jù)包可以有一個唯一的第一序號。不可靠鏈路可以是串行通信方式,如RS232,或并行通信方式,如基于FIFO的并行通信。步驟102、若在預設時間內(nèi)接收到所述第二工控子系統(tǒng)返回的確認包,且所述確認包攜帶所述第一序號,則將下一數(shù)據(jù)包發(fā)送給所述第二工控子系統(tǒng)。具體地,所述確認包可以采用與所述數(shù)據(jù)包不同的包格式??蛇x地,所述確認包也可以采用與所述數(shù)據(jù)包一樣的包格式,且通過包頭中的包標志位區(qū)分。第一工控子系統(tǒng)可以根據(jù)不同的包格式或是包頭中的包標志位確認接收到的是數(shù)據(jù)包還是確認包。進一步地,為了在不可靠鏈路上兼容可靠傳輸和不可靠傳輸,所述數(shù)據(jù)包的包頭還包括可靠標志位,步驟101之前還包括:確定所述數(shù)據(jù)包需可靠傳輸;將所述可靠標志位置位,以使所述第二工控子系統(tǒng)接收到所述數(shù)據(jù)包后返回所述確認包。舉例來說,若所述數(shù)據(jù)包需可靠傳輸,則將所述可靠標志位置為0,以使所述第二工控子系統(tǒng)接收到所述數(shù)據(jù)包后返回所述確認包。若所述數(shù)據(jù)包無需可靠傳輸,則將所述可靠標志位置為1,第二工控子系統(tǒng)在收到可靠標志位為I的數(shù)據(jù)包時不返回確認包。這樣,當數(shù)據(jù)包無需可靠傳輸時,可以通過可靠標志位通知接收方無需返回確認包,適應高速大量的數(shù)據(jù)傳輸,提高通信響應速度。進一步地,為了使子系統(tǒng)進程之間點對點通信,所述數(shù)據(jù)包的包頭還包括通道標識位,步驟101之前還包括:確定所述數(shù)據(jù)包對應的發(fā)送進程和接收進程;根據(jù)所述發(fā)送進程和接收進程確定所述數(shù)據(jù)包對應的通道標識;將所述通道標識添加到所述通道標志位。舉例來說,第一工控子系統(tǒng)確定數(shù)據(jù)包的發(fā)送進程為A,接收進程為B,查找進程與通道的映射關系確定對應的通道標識為1,將通道標識I添加到包頭的通道標識位,第二工控子系統(tǒng)接收數(shù)據(jù)包,根據(jù)通道標識確定對應的接收進程B來處理數(shù)據(jù)包,通過通道標識位,實現(xiàn)發(fā)送進程A與接收進程B的點對點通信,降低應用程序研發(fā)成本。進一步地,為了驗證接收數(shù)據(jù)包的準確性,所述數(shù)據(jù)包的包頭還包括包校驗位,步驟101之前還包括:根據(jù)所述數(shù)據(jù)包,得到包校驗碼;將所述包校驗碼插入所述包校驗位。對應地,舉例來說,第二工控子系統(tǒng)在收到數(shù)據(jù)包之后,提取包校驗碼;第二工控子系統(tǒng)根據(jù)收到的數(shù)據(jù)包,得到包校驗碼;將提取的包校驗碼與得到的包校驗碼進行比較,若相同,則校驗正確,返回確認包給第一工控子系統(tǒng),否則校驗錯誤,丟棄數(shù)據(jù)包,從而保證第一工控子系統(tǒng)收到正確的數(shù)據(jù)包。進一步地,為了快速校驗出錯誤的數(shù)據(jù)包,所述數(shù)據(jù)包的包頭還包括包頭校驗位,步驟101之前還包括:根據(jù)所述數(shù)據(jù)包的包頭,得到包頭校驗碼; 將所述包頭校驗碼插入所述包頭校驗位。舉例來說,第二工控子系統(tǒng)在收到數(shù)據(jù)包之后,提取包頭校驗碼;第二工控子系統(tǒng)根據(jù)收到的數(shù)據(jù)包,得到包頭校驗碼;將提取的包頭校驗碼與得到的包頭校驗碼進行比較,若不同,則第二工控子系統(tǒng)接收數(shù)據(jù)包失敗,并無需再進一步校驗數(shù)據(jù)包的準確性,從而可以快速有效的校驗出錯誤的數(shù)據(jù)包。另外,步驟101之后,若第一工控子系統(tǒng)未在預設時間內(nèi)接收到所述第二工控子系統(tǒng)返回的所述確認包,則再次發(fā)送所述數(shù)據(jù)包。進一步地,為了避免重復多次發(fā)送相同的數(shù)據(jù)包,可以設定數(shù)據(jù)包的發(fā)送次數(shù)閾值。具體地,所述再次發(fā)送所述數(shù)據(jù)包具體包括:若所述數(shù)據(jù)包的發(fā)送次數(shù)未超過預設的閾值,則再次發(fā)送所述數(shù)據(jù)包。若所述數(shù)據(jù)包的發(fā)送次數(shù)超過所述閾值,則確認發(fā)送所述數(shù)據(jù)包失敗,發(fā)送所述下一數(shù)據(jù)包。本發(fā)明實施例采用第一工控子系統(tǒng)將攜帶第一序號的數(shù)據(jù)包通過不可靠鏈路發(fā)送給第二工控子系統(tǒng),若在預設時間內(nèi)接收到所述第二工控子系統(tǒng)返回的攜帶所述第一序號的確認包,則將下一數(shù)據(jù)包發(fā)送給所述第二工控子系統(tǒng)的技術手段,使得工控子系統(tǒng)之間在不可靠的硬件通訊鏈路上實現(xiàn)可靠數(shù)據(jù)通訊,降低硬件成本,提高硬件通訊鏈路選擇的靈活性。進一步地,還可以兼容不可靠數(shù)據(jù)的傳輸,提高響應速度,提供應用程序進程間的點對點通訊,降低應用程序的研發(fā)成本。圖2為為本發(fā)明實施例二提供的一種工控系統(tǒng)中的數(shù)據(jù)傳輸方法的流程示意圖,如圖2所示,該方法包括:步驟201、第二工控子系統(tǒng)通過不可靠鏈路接收第一工控子系統(tǒng)發(fā)送的數(shù)據(jù)包,所述數(shù)據(jù)包的包頭攜帶第一序號。舉例來說,第二工控子系統(tǒng)可以是HMI或MCS,相應地,第一工控子系統(tǒng)可以是MCS或HMI。具體地,每個數(shù)據(jù)包可以有一個唯一的第一序號。步驟202、生成所述數(shù)據(jù)包的確認包,所述確認包攜帶所述第一序號。所述確認包可以采用與所述數(shù)據(jù)包不同的包格式??蛇x地,所述確認包也可以采用與所述數(shù)據(jù)包一樣的包格式,且通過包頭中的包標識位區(qū)分。第二工控子系統(tǒng)可以根據(jù)不同的包格式或是包頭中的包標識位確認接收到的是數(shù)據(jù)包還是確認包。步驟203、將所述確認包發(fā)送給所述第一工控子系統(tǒng),以使所述第一工控子系統(tǒng)發(fā)送下一數(shù)據(jù)包。進一步地,為了在不可靠鏈路上兼容可靠傳輸和不可靠傳輸,所述數(shù)據(jù)包的包頭還包括可靠標識位,在步驟202之前還包括:根據(jù)所述可靠標識位確定所述數(shù)據(jù)包需可靠傳輸。舉例來說,若所述可靠標識位被置為0,則確定所述數(shù)據(jù)包需可靠傳輸,生成所述確認包并返回給第一工控子系統(tǒng)。若所述可靠標識位被置為1,則確定所述數(shù)據(jù)包無需可靠傳輸,不返回確認包。這樣,當數(shù)據(jù)包無需可靠傳輸時,發(fā)送方可以通過可靠標識位通知接收方無需返回確認包,適應高速大量的數(shù)據(jù)傳輸,提高通信響應速度。進一步地,為了使子系統(tǒng)進程之間點對點通信,所述數(shù)據(jù)包的包頭還包括通道標識位,步驟201之后還包括:根據(jù)所述通道標識位中的通道標識確定接收進程;調(diào)用所述接收進程處理所述數(shù)據(jù)包。舉例來說,第二工控子系統(tǒng)在收到數(shù)據(jù)包之后,從通道標志位中提取通道標識1,查找進程與通道的映射關系確定通道標識I對應的接收進程為B,第二工控子系統(tǒng)將數(shù)據(jù)包交給對應的接收進程B去處理。進一步地,為了驗證接收的數(shù)據(jù)包的準確性,所述數(shù)據(jù)包的包頭還包括包校驗位,在步驟202之前還包括:根據(jù)所述包校驗位中的包校驗碼對所述數(shù)據(jù)包進行校驗,確認校驗通過。
舉例來說,第二工控子系統(tǒng)在收到數(shù)據(jù)包之后,從包檢驗位提取包校驗碼,將提取的包校驗碼與根據(jù)數(shù)據(jù)包計算得到的包校驗碼進行比較,若不同,則確認接收到的數(shù)據(jù)包錯誤,若相同,則確認接收到的數(shù)據(jù)包正確,執(zhí)行步驟202。進一步地,為了快速校驗出錯誤的數(shù)據(jù)包,所述數(shù)據(jù)包的包頭還包括包頭校驗位,在步驟202之前還包括:根據(jù)所述包頭校驗位中的包頭校驗碼對所述數(shù)據(jù)包的包頭進行校驗,若對所述數(shù)據(jù)包的包頭的校驗通過,則根據(jù)所述包校驗位對所述數(shù)據(jù)包進行校驗,若對所述數(shù)據(jù)包的包頭的校驗不通過,則丟棄所述數(shù)據(jù)包。舉例來說,第二工控子系統(tǒng)在收到數(shù)據(jù)包之后,從包頭校驗位提取包頭校驗碼,將提取的包頭校驗碼與根據(jù)數(shù)據(jù)包的包頭計算得到的包頭校驗碼進行比較,若不同,則確認接收到的數(shù)據(jù)包錯誤,無需再進一步根據(jù)包校驗位進行校驗,從而可以快速有效的校驗出錯誤的數(shù)據(jù)包。進一步地,為了對端驗證接收的確認包的準確性,所述確認包的包頭還包括包校驗位,在步驟203之前還包括:根據(jù)所述確認包,得到包校驗碼;將所述包校驗碼插入所述確認包的包校驗位。對應地,舉例來說,第一工控子系統(tǒng)在收到確認包之后,提取包校驗碼;第一工控子系統(tǒng)根據(jù)收到的確認包,計算得到包校驗碼;將提取的包校驗碼與計算得到的包校驗碼進行比較,若相同,則校驗正確,第一工控子系統(tǒng)確認接收到確認包正確,否則校驗錯誤,第一工控子系統(tǒng)丟棄確認包,從而保證第一工控子系統(tǒng)收到正確的確認包。進一步地,為了對端快速校驗出錯誤的確認包,所述確認包的包頭還包括包頭校驗位,在步驟203之前還包括:根據(jù)所述確認包的包頭,得到包頭校驗碼;將所述包頭校驗碼插入所述確認包的包頭校驗位。對應地,舉例來說,第一工控子系統(tǒng)在收到確認包之后,提取包頭校驗碼;第一工控子系統(tǒng)根據(jù)收到的確認包,計算得到包頭校驗碼;將提取的包頭校驗碼與計算得到的包頭校驗碼進行比較,若不同,則第一工控子系統(tǒng)接收確認包失敗,并無需再進一步校驗確認包的準確性,從而可以快速有效的校驗出錯誤的確認包。本發(fā)明實施例采用第二工控子系統(tǒng)通過不可靠鏈路接收第一工控子系統(tǒng)發(fā)送的攜帶第一序號的數(shù)據(jù)包,將攜帶所述第一序號的確認包返回所述第一工控子系統(tǒng)以使所述第一工控子系統(tǒng)發(fā)送下一數(shù)據(jù)包的技術手段,使得工控子系統(tǒng)之間在不可靠的硬件通訊鏈路上實現(xiàn)可靠數(shù)據(jù)通訊,降低硬件成本,提高硬件通訊鏈路選擇的靈活性。進一步地,還可以兼容不可靠數(shù)據(jù)的傳輸,提高響應速度,提供應用程序進程間的點對點通訊,降低應用程序的研發(fā)成本。圖3為本發(fā)明實施例三提供的一種工控子系統(tǒng)的結(jié)構示意圖,如圖3所示,該工控子系統(tǒng)包括:第一發(fā)送模塊31,用于將數(shù)據(jù)包通過不可靠鏈路發(fā)送給另一工控子系統(tǒng),所述數(shù)據(jù)包的包頭攜帶第一序號;第一接收模塊32,用于若在預設時間內(nèi)接收到所述另一工控子系統(tǒng)返回的確認包,且所述確認包攜帶所述第一序號,則指示所述第一發(fā)送模塊將下一數(shù)據(jù)包發(fā)送給所述另一工控子統(tǒng)。進一步地,所述數(shù)據(jù)包的包頭還包括可靠標識位,所述工控子系統(tǒng)還包括:第一確認模塊,用于在第一發(fā)送模塊31發(fā)送所述數(shù)據(jù)包之前,確定所述數(shù)據(jù)包需可靠傳輸;置位模塊,用于將所述可靠標識位置位,以使所述另一工控子系統(tǒng)接收到所述數(shù)據(jù)包后返回所述確認包。進一步地,所述數(shù)據(jù)包的包頭還包括通道標識位,所述工控子系統(tǒng)還包括:第一通道模塊,用于在第一發(fā)送模塊31發(fā)送所述數(shù)據(jù)包之前,確定所述數(shù)據(jù)包對應的發(fā)送進程和接收進程,根據(jù)所述發(fā)送進程和接收進程確定所述數(shù)據(jù)包對應的通道標識,將所述通道標識添加到所述通道標識位。進一步地,所述數(shù)據(jù)包的包頭還包括包校驗位,所述工控子系統(tǒng)還包括:第一校驗模塊,用于在第一發(fā)送模塊31發(fā)送所述數(shù)據(jù)包之前,根據(jù)所述數(shù)據(jù)包,得到包校驗碼,將所述包校驗碼插入所述包校驗位。進一步地,所述數(shù)據(jù)包的包頭還包括包頭校驗位,所述第一校驗模塊還用于,在第一發(fā)送模塊31發(fā)送所述數(shù)據(jù)包之前,根據(jù)所述數(shù)據(jù)包的包頭,得到包頭校驗碼,將所述包頭校驗碼插入所述包頭校驗位。本實施例的具體實現(xiàn)參照本發(fā)明實施例一提供的一種工控系統(tǒng)中的數(shù)據(jù)傳輸方法。本發(fā)明實施例采用第一工控子系統(tǒng)將攜帶第一序號的數(shù)據(jù)包通過不可靠鏈路發(fā)送給第二工控子系統(tǒng),若在預設時間內(nèi)接收到所述第二工控子系統(tǒng)返回的攜帶所述第一序號的確認包,則將下一數(shù)據(jù)包發(fā)送給所述第二工控子系統(tǒng)的技術手段,使得工控子系統(tǒng)之間在不可靠的硬件通訊鏈路上實現(xiàn)可靠數(shù)據(jù)通訊,降低硬件成本,提高硬件通訊鏈路選擇的靈活性。圖4為本發(fā)明實施例四提供的一種工控子系統(tǒng)的結(jié)構示意圖,如圖4所示,該工控子系統(tǒng)包括:第二接收模塊41,用于通過不可靠鏈路接收另一工控子系統(tǒng)發(fā)送的數(shù)據(jù)包,所述數(shù)據(jù)包的包頭攜帶第一序號。生成模塊42,用于生成所述數(shù)據(jù)包的確認包,所述確認包攜帶所述第一序號;第二發(fā)送模塊43,用于將所述確認包發(fā)送給所述另一工控子系統(tǒng),以使所述另一工控子系統(tǒng)發(fā)送下一數(shù)據(jù)包。進一步地,所述數(shù)據(jù)包的包頭還包括可靠標識位,所述工控子系統(tǒng)還包括:第二確認模塊,用于在生成模塊42生成所述數(shù)據(jù)包的確認包之前,確認所述數(shù)據(jù)
包需可靠傳輸。進一步地,所述數(shù)據(jù)包的包頭還包括通道標識位,所述工控子系統(tǒng)還包括:第二通道模塊,用于第二接收模塊41接收所述數(shù)據(jù)包之后,根據(jù)所述通道標識位中的通道標識確定接收進程;調(diào)用模塊,用于所述接收進程處理所述數(shù)據(jù)包。進一步地,所述數(shù)據(jù)包的包頭還包括包校驗位,所述工控子系統(tǒng)還包括:第二校驗模塊,用于在生成模塊42生成所述確認包之前,根據(jù)所述包校驗位中的包校驗碼對所述數(shù)據(jù)包進行校驗,確認校驗通過。
進一步地,所述數(shù)據(jù)包的包頭還包括包頭校驗位,所述第二校驗模塊還用于,根據(jù)所述包頭校驗位中的包頭校驗碼對所述數(shù)據(jù)包的包頭進行校驗,若對所述數(shù)據(jù)包的包頭的校驗通過,則根據(jù)所述包校驗位對所述數(shù)據(jù)包進行校驗,若對所述數(shù)據(jù)包的包頭的校驗不通過,則丟棄所述數(shù)據(jù)包。本實施例的具體實現(xiàn)參照本發(fā)明實施例二提供的一種工控系統(tǒng)中的數(shù)據(jù)傳輸方法。本發(fā)明實施例采用第二工控子系統(tǒng)通過不可靠鏈路接收第一工控子系統(tǒng)發(fā)送的攜帶第一序號的數(shù)據(jù)包,將攜帶所述第一序號的確認包返回所述第一工控子系統(tǒng)以使所述第一工控子系統(tǒng)發(fā)送下一數(shù)據(jù)包的技術手段,使得工控子系統(tǒng)之間在不可靠的硬件通訊鏈路上實現(xiàn)可靠數(shù)據(jù)通訊,降低硬件成本,提高硬件通訊鏈路選擇的靈活性。圖5為本發(fā)明實施例五提供的一種工控系統(tǒng)的結(jié)構示意圖,如圖5所示,該工控系統(tǒng)包括:工控子系統(tǒng)51和工控子系統(tǒng)52,工控子系統(tǒng)51和工控子系統(tǒng)52之間通過不可靠鏈路連接,其中,工控子系統(tǒng)51和工控子系統(tǒng)52分別為如本發(fā)明實施例三和實施例四提供的工控子系統(tǒng)。圖6為本發(fā)明實施例的一種包格式的示意圖。應用中,本發(fā)明實施例中的數(shù)據(jù)包和確認包均可以采用如圖6所示的包格式,如圖6所示,頭長度為16位,表示從包的起始位置到確認包序號結(jié)束位置的長度,用來確定包頭校驗碼在整個數(shù)據(jù)包中的偏移位置。版本為4位,表示當前傳輸層協(xié)議的版本。標志為四位,第一位為包標識位,表示是確認包還是數(shù)據(jù)包,進一步地,如果是確認包,則數(shù)據(jù)內(nèi)容的長度為O ;第二位為可靠標識位,表示傳輸類型,O表示可靠傳輸,I表示不可靠傳輸;第三位為復位標識,在發(fā)送方和接收方需要重新對數(shù)據(jù)通道進行同步時使用;第四位為保留位。通道標識位為16位,用于發(fā)送方填入與發(fā)送進程和接收進程對應的通道標識;包數(shù)據(jù)長度為16位,表示數(shù)據(jù)內(nèi)容的長度;數(shù)據(jù)包序號為16位,用于發(fā)送方填入數(shù)據(jù)包的序號,以便接收方驗證發(fā)送方是否重復發(fā)送數(shù)據(jù)包;確認包序號為16位,用于接收方填入確認包的序號,以便發(fā)送方確定與該確認包對應的數(shù)據(jù)包;包頭校驗位為16位,用來接收方快速驗證數(shù)據(jù)包或發(fā)送方快速驗證確認包的正確性;包校驗位為16位,用來接收方驗證數(shù)據(jù)包或發(fā)送方驗證確認包的正確性。圖7為本發(fā)明實施例的一種具體應用的流程示意圖。如圖7所示,包括:701、發(fā)送數(shù)據(jù)包。具體地,第一工控子系統(tǒng)通過不可靠鏈路向第二工控子系統(tǒng)發(fā)送數(shù)據(jù)包。702、判斷是否可靠傳輸,若是執(zhí)行704,若否執(zhí)行703 ;703、發(fā)送結(jié)束。具體地,若為不可靠傳輸,則無需等待確認包,認為本次數(shù)據(jù)包的發(fā)送流程結(jié)束,可以發(fā)送下一數(shù)據(jù)包。704、等待確認包。具體地,如為可靠傳輸,發(fā)送數(shù)據(jù)包之后,需要等待確認包。705、判斷在預設時間內(nèi)是否接收到確認包,若是執(zhí)行708,若否執(zhí)行706。706、重發(fā)數(shù)據(jù)包。具體地,如果在預設時間內(nèi)沒有接收到確認包,則再次發(fā)送上一次的數(shù)據(jù)包。707、如果重發(fā)多次都未收到確認包,執(zhí)行714。
708、從確認包提取包校驗碼。具體地,如果第一工控子系統(tǒng)收到確認包,則檢查包中校驗碼。709、判斷提取的包校驗碼是否與根據(jù)確認包計算得到的包校驗碼相同,若是執(zhí)行710,否則執(zhí)行713。710、提取確認包序號,判斷確認包序號是否與本次發(fā)送的數(shù)據(jù)包的序號相同,若是則執(zhí)行711,若否則執(zhí)行712。711、確認發(fā)送成功,執(zhí)行703。712、判斷確認包序號是否與上次發(fā)送的數(shù)據(jù)包的序號相同,若是則執(zhí)行713、若否則執(zhí)行714。713、丟棄所述確認包,執(zhí)行704。714、確認發(fā)送失敗,執(zhí)行703。
權利要求
1.一種工控系統(tǒng)中的數(shù)據(jù)傳輸方法,其特征在于,包括: 第一工控子系統(tǒng)將數(shù)據(jù)包通過不可靠鏈路發(fā)送給第二工控子系統(tǒng),所述數(shù)據(jù)包的包頭攜帶第一序號; 若在預設時間內(nèi)接收到所述第二工控子系統(tǒng)返回的確認包,且所述確認包攜帶所述第一序號,則將下一數(shù)據(jù)包發(fā)送給所述第二工控子系統(tǒng)。
2.根據(jù)權利要求1所述的方法,其特征在于,所述數(shù)據(jù)包的包頭還包括可靠標識位,所述第一工控子系統(tǒng)將數(shù)據(jù)包通過不可靠鏈路發(fā)送給第二工控子系統(tǒng)之前包括: 確定所述數(shù)據(jù)包需可靠傳輸; 將所述可靠標識位置位,以使所述第二工控子系統(tǒng)接收到所述數(shù)據(jù)包后返回所述確認包。
3.根據(jù)權利要求1或2所述的方法,其特征在于,所述數(shù)據(jù)包的包頭還包括通道標識位,所述第一工控子系統(tǒng)將數(shù)據(jù)包通過不可靠鏈路發(fā)送給第二工控子系統(tǒng)之前還包括: 確定所述數(shù)據(jù)包對應的發(fā)送進程和接收進程; 根據(jù)所述發(fā)送進程和接收進程確定所述數(shù)據(jù)包對應的通道標識; 將所述通道標識添加到所述 通道標識位。
4.根據(jù)權利要求1所述的方法,其特征在于,所述數(shù)據(jù)包的包頭還包括包校驗位,所述第一工控子系統(tǒng)將數(shù)據(jù)包通過不可靠鏈路發(fā)送給第二工控子系統(tǒng)之前還包括: 根據(jù)所述數(shù)據(jù)包,得到包校驗碼; 將所述包校驗碼插入所述包校驗位。
5.根據(jù)權利要求4所述的方法,其特征在于,所述數(shù)據(jù)包的包頭還包括包頭校驗位,所述第一工控子系統(tǒng)將數(shù)據(jù)包通過不可靠鏈路發(fā)送給第二工控子系統(tǒng)之前還包括: 根據(jù)所述數(shù)據(jù)包的包頭,得到包頭校驗碼; 將所述包頭校驗碼插入所述包頭校驗位。
6.根據(jù)權利要求1所述的方法,其特征在于,還包括: 若第一工控子系統(tǒng)未在預設時間內(nèi)接收到所述第二工控子系統(tǒng)返回的所述確認包,則再次發(fā)送所述數(shù)據(jù)包。
7.根據(jù)權利要求6所述的方法,其特征在于,所述再次發(fā)送所述數(shù)據(jù)包具體包括: 若所述數(shù)據(jù)包的發(fā)送次數(shù)未超過預設的閾值,則再次發(fā)送所述數(shù)據(jù)包。
8.根據(jù)權利要求7所述的方法,其特征在于,還包括: 若所述數(shù)據(jù)包的發(fā)送次數(shù)超過所述閾值,則確認發(fā)送所述數(shù)據(jù)包失敗,發(fā)送所述下一數(shù)據(jù)包。
9.一種工控系統(tǒng)中的數(shù)據(jù)傳輸方法,其特征在于,包括: 第二工控子系統(tǒng)通過不可靠鏈路接收第一工控子系統(tǒng)發(fā)送的數(shù)據(jù)包,所述數(shù)據(jù)包的包頭攜帶第一序號; 生成所述數(shù)據(jù)包的確認包,所述確認包攜帶所述第一序號; 將所述確認包發(fā)送給所述第一工控子系統(tǒng),以使所述第一工控子系統(tǒng)發(fā)送下一數(shù)據(jù)包。
10.根據(jù)權利要求9所述的方法,其特征在于,所述數(shù)據(jù)包的包頭還包括可靠標識位,所述生成所述數(shù)據(jù)包的確認包之前還包括:根據(jù)所述可靠標識位確定所述數(shù)據(jù)包需可靠傳輸。
11.根據(jù)權利要求9或10所述的方法,其特征在于,所述數(shù)據(jù)包的包頭還包括通道標識位,所述第二工控子系統(tǒng)通過不可靠鏈路接收第一工控子系統(tǒng)發(fā)送的數(shù)據(jù)包之后還包括: 根據(jù)所述通道標識位中的通道標識確定接收進程; 調(diào)用所述接收進程處理所述數(shù)據(jù)包。
12.根據(jù)權利要求9所述的方法,其特征在于,所述數(shù)據(jù)包的包頭還包括包校驗位,所述生成所述數(shù)據(jù)包的確認包之前還包括: 根據(jù)所述包校驗位中的包校驗碼對所述數(shù)據(jù)包進行校驗,確認校驗通過。
13.根據(jù)權利要求12所述的方法,其特征在于,所述數(shù)據(jù)包的包頭還包括包頭校驗位,所述根據(jù)所述包校驗位對所述數(shù)據(jù)包進行校驗具體包括: 根據(jù)所述包頭校驗位中的包頭校驗碼對所述數(shù)據(jù)包的包頭進行校驗,若對所述數(shù)據(jù)包的包頭的校驗通過,則根據(jù)所述包校驗位對所述數(shù)據(jù)包進行校驗,若對所述數(shù)據(jù)包的包頭的校驗不通過,則丟棄所述數(shù)據(jù)包。
14.根據(jù)權利要求9所述的方法,其特征在于,所述確認包的包頭還包括包校驗位,所述將所述確認包發(fā)送給所述第一工控子系統(tǒng)之前包括: 根據(jù)所述確認包,得到包校驗碼; 將所述包校驗碼插入所述包校驗位。
15.根據(jù)權利要求9所述的方法,其特征在于,所述確認包的包頭還包括包頭校驗位,所述將所述確認包發(fā)送給所述第一工控子系統(tǒng)之前還包括: 根據(jù)所述確認包的包頭,得到包頭校驗碼; 將所述包頭校驗碼插入所述包頭校驗位。
16.一種工控子系統(tǒng),其特征在于,包括: 第一發(fā)送模塊,用于將數(shù)據(jù)包通過不可靠鏈路發(fā)送給另一工控子系統(tǒng),所述數(shù)據(jù)包的包頭攜帶第一序號; 第一接收模塊,用于若在預設時間內(nèi)接收到所述另一工控子系統(tǒng)返回的確認包,且所述確認包攜帶所述第一序號,則指示所述第一發(fā)送模塊將下一數(shù)據(jù)包發(fā)送給所述另一工控子系統(tǒng)。
17.根據(jù)權利要求16的工控子系統(tǒng),其特征在于,所述數(shù)據(jù)包的包頭還包括可靠標識位,所述工控子系統(tǒng)還包括: 第一確認模塊,用于在所述第一發(fā)送模塊發(fā)送所述數(shù)據(jù)包之前,確定所述數(shù)據(jù)包需可靠傳輸; 置位模塊,用于將所述可靠標識位置位,以使所述另一工控子系統(tǒng)接收到所述數(shù)據(jù)包后返回所述確認包。
18.根據(jù)權利要求16或17的工控子系統(tǒng),其特征在于,所述數(shù)據(jù)包的包頭還包括通道標識位,所述工控子系統(tǒng)還包括: 第一通道模塊,用于在所述第一發(fā)送模塊發(fā)送所述數(shù)據(jù)包之前,確定所述數(shù)據(jù)包對應的發(fā)送進程和接收進程,根據(jù)所述發(fā)送進程和接收進程確定所述數(shù)據(jù)包對應的通道標識,將所述通道標識添加到所述通道標識位。
19.根據(jù)權利要求16所述的工控子系統(tǒng),其特征在于,所述數(shù)據(jù)包的包頭還包括包校驗位,所述工控子系統(tǒng)還包括: 第一校驗模塊,用于在所述第一發(fā)送模塊發(fā)送所述數(shù)據(jù)包之前,根據(jù)所述數(shù)據(jù)包,得到包校驗碼,將所述包校驗碼插入所述包校驗位。
20.根據(jù)權利要求19所述的工控子系統(tǒng),其特征在于,所述數(shù)據(jù)包的包頭還包括包頭校驗位,所述第一校驗模塊還用于, 在所述第一發(fā)送模塊發(fā)送所述數(shù)據(jù)包之前,根據(jù)所述數(shù)據(jù)包的包頭,得到包頭校驗碼,將所述包頭校驗碼插入所述包頭校驗位。
21.—種工控子系統(tǒng),其特征在于,包括: 第二接收模塊,用于通過不可靠鏈路接收另一工控子系統(tǒng)發(fā)送的數(shù)據(jù)包,所述數(shù)據(jù)包的包頭攜帶第一序號; 生成模塊,用于生成所述數(shù)據(jù)包的確認包,所述確認包攜帶所述第一序號; 第二發(fā)送模塊,用于將所述確認包發(fā)送給所述另一工控子系統(tǒng),以使所述另一工控子系統(tǒng)發(fā)送下一數(shù)據(jù)包。
22.根據(jù)權利要求21所述的工控子系統(tǒng),其特征在于,所述數(shù)據(jù)包的包頭還包括可靠標識位,所述工控子系統(tǒng)還包括: 第二確認模塊,用于在所述 生成模塊生成所述數(shù)據(jù)包的確認包之前,確認所述數(shù)據(jù)包需可靠傳輸。
23.根據(jù)權利要求21或22所述的工控子系統(tǒng),其特征在于,所述數(shù)據(jù)包的包頭還包括通道標識位,所述工控子系統(tǒng)還包括: 第二通道模塊,用于所述第二接收模塊接收所述數(shù)據(jù)包之后,根據(jù)所述通道標識位中的通道標識確定接收進程; 調(diào)用模塊,用于所述接收進程處理所述數(shù)據(jù)包。
24.根據(jù)權利要求21所述的工控子系統(tǒng),其特征在于,所述數(shù)據(jù)包的包頭還包括包校驗位,所述工控子系統(tǒng)還包括: 第二校驗模塊,用于在所述生成模塊生成所述確認包之前,根據(jù)所述包校驗位中的包校驗碼對所述數(shù)據(jù)包進行校驗,確認校驗通過。
25.根據(jù)權利要求24所述的工控子系統(tǒng),其特征在于,所述數(shù)據(jù)包的包頭還包括包頭校驗位,所述第二校驗模塊還用于, 根據(jù)所述包頭校驗位中的包頭校驗碼對所述數(shù)據(jù)包的包頭進行校驗,若對所述數(shù)據(jù)包的包頭的校驗通過,則根據(jù)所述包校驗位對所述數(shù)據(jù)包進行校驗,若對所述數(shù)據(jù)包的包頭的校驗不通過,則丟棄所述數(shù)據(jù)包。
26.—種工控系統(tǒng),其特征在于,包括:如權利要求16-20中任一項所述的工控子系統(tǒng)和如權利要求21-25中任一項所述的工控子系統(tǒng),所述工控子系統(tǒng)之間通過不可靠鏈路連接。
全文摘要
本發(fā)明提供的工控系統(tǒng)中的數(shù)據(jù)傳輸方法及工控子系統(tǒng)、工控系統(tǒng),其方法包括第一工控子系統(tǒng)將數(shù)據(jù)包通過不可靠鏈路發(fā)送給第二工控子系統(tǒng),所述數(shù)據(jù)包的包頭攜帶第一序號;若在預設時間內(nèi)接收到所述第二工控子系統(tǒng)返回的確認包,且所述確認包攜帶所述第一序號,則將下一數(shù)據(jù)包發(fā)送給所述第二工控子系統(tǒng)。第二工控子系統(tǒng)通過不可靠鏈路接收第一工控子系統(tǒng)發(fā)送的數(shù)據(jù)包,所述數(shù)據(jù)包的包頭攜帶第一序號;生成所述數(shù)據(jù)包的確認包,所述確認包攜帶所述第一序號;將所述確認包發(fā)送給所述第一工控子系統(tǒng),以使所述第一工控子系統(tǒng)發(fā)送下一數(shù)據(jù)包。本發(fā)明可以實現(xiàn)工控子系統(tǒng)之間在不可靠的硬件通訊鏈路上實現(xiàn)可靠數(shù)據(jù)通訊,降低硬件成本。
文檔編號G05B19/418GK103199966SQ201210004918
公開日2013年7月10日 申請日期2012年1月9日 優(yōu)先權日2012年1月9日
發(fā)明者劉濤 申請人:北京大豪科技股份有限公司