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