国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于線程池的多串口通訊系統(tǒng)及方法

      文檔序號:6376833閱讀:395來源:國知局
      專利名稱:一種基于線程池的多串口通訊系統(tǒng)及方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及工業(yè)控制串口通訊領(lǐng)域,特別是涉及一種基于線程池的多串口通訊系統(tǒng)及方法。
      背景技術(shù)
      在當(dāng)今的工業(yè)控制領(lǐng)域,串口通訊是計算機與其他設(shè)備進行數(shù)據(jù)通訊時經(jīng)常使用的方法,具有使用靈活、數(shù)據(jù)傳輸可靠等幾個優(yōu)點,特別是在實時監(jiān)控系統(tǒng)中得到廣泛應(yīng)用,由于工業(yè)控制領(lǐng)域大批量操作的需求,多串口通訊的穩(wěn)定高效就顯得尤為重要。
      為滿足需求,一般采用線程池來管理多串口通訊的多線程應(yīng)用。然而,目前對于利用多串口卡擴展出來的單一通道多串口,由于各串口使用同一通信通道收發(fā)數(shù)據(jù),如果應(yīng)用程序單元對各串口不能做出合理的同步措施,極易出現(xiàn)通道堵塞,造成串口收發(fā)數(shù)據(jù)成功率偏低。發(fā)明內(nèi)容
      本發(fā)明所要解決的技術(shù)問題是提供一種基于線程池的多串口通訊系統(tǒng)及方法,以解決單一通道多串口通訊時,串口收發(fā)數(shù)據(jù)成功率偏低的技術(shù)問題。
      為實現(xiàn)上述發(fā)明目的,本發(fā)明提供一種基于線程池的多串口通訊系統(tǒng),包括終端、 帶多串口卡的設(shè)備以及基于線程池的應(yīng)用單元;
      所述帶多串口卡的設(shè)備,用于與所述終端和所述基于線程池的應(yīng)用單元進行通信,所述多串口卡,用于擴展出多路串口,供所述終端連接,串口之間實施同步;
      所述基于線程池的應(yīng)用單元,用于通過所述帶多串口卡的設(shè)備下發(fā)控制指令或傳遞數(shù)據(jù)給所述終端,并接收所述終端的回復(fù)信息,包括線程池、線程池構(gòu)建模塊和執(zhí)行任務(wù)配置模塊,所述線程池構(gòu)建模塊用于根據(jù)所述執(zhí)行任務(wù)配置模塊配置的任務(wù)線程構(gòu)建線程池,所述執(zhí)行任務(wù)配置模塊配置的任務(wù)線程包括主線程、串口操作控制線程以及串口收發(fā)報文執(zhí)行線程,各種線程之間進行異步調(diào)用。
      本發(fā)明還提供一種基于線程池的多串口通訊方法,包括如下步驟
      建立所述終端與所述帶多串口卡設(shè)備的串口連接;
      所述執(zhí)行任務(wù)配置模塊配置任務(wù)線程;
      所述線程池構(gòu)建模塊依據(jù)主線程構(gòu)建線程池;
      所述基于線程池的應(yīng)用單元啟動線程池的主線程,由主線程控制其它任務(wù)線程的執(zhí)行。
      優(yōu)選的有,上述方法中,還包括所述終端通過專用串口線連接至所述帶多串口卡的設(shè)備的串口,所述基于線程池的應(yīng)用單元通過串口程序開發(fā)工具包進行串口的開閉、數(shù)據(jù)讀寫,實現(xiàn)與所述終端的通訊,對應(yīng)線程池實現(xiàn)多個串口并行操作。
      優(yōu)選的有,上述方法中,還包括所述基于線程池的應(yīng)用單元在對串口進行開閉、 數(shù)據(jù)讀寫操作時,對各個串口實施同步;
      各個串口實施同步是指與終端連接的所有串口都打開以后,再進行數(shù)據(jù)讀寫,所有串口的數(shù)據(jù)讀與都完成以后,最終才關(guān)閉各個串口。
      優(yōu)選的有,上述方法中,還包括在其它所有串口完成相同操作之前,本串口對應(yīng)線程被阻塞,待其它所有串口也完成相同操作之后,才能開始下一步操作。
      優(yōu)選的有,上述方法中,還包括線程池中所述的三類任務(wù)線程主線程、串口操作控制線程以及串口收發(fā)報文執(zhí)行線程,主線程負責(zé)為每個串口創(chuàng)建串口操作控制線程, 串口操作控制線程負責(zé)串口開閉、生成下發(fā)報文以及處理回復(fù)報文,串口收發(fā)報文執(zhí)行線程專門負責(zé)通過輸入輸出流來下發(fā)報文并接收回復(fù)報文;
      所述的三類任務(wù)線程之間存在異步調(diào)用關(guān)系,串口操作控制線程異步獲取串口收發(fā)報文執(zhí)行線程返回的下發(fā)成功標志位及回復(fù)報文,主線程異步獲取串口操作控制線程返回的下發(fā)完成標志位。
      由上述方案可以看出,本發(fā)明中有兩種機制來保證基于線程池的多串口通訊,在高效的同時也能有序、穩(wěn)定。第一,各個串口之間在做相同操作時實施同步,只有當(dāng)所有串口都完成這一操作時,才能一起進行下一操作;第二,線程池中的任務(wù)線程分為三類主線程、串口操作控制線程及串口收發(fā)報文執(zhí)行線程,這三類任務(wù)線程之間既獨立完成各自功能又存在依賴,主線程根據(jù)所述終端的數(shù)量來創(chuàng)建對應(yīng)數(shù)量 的串口操作控制線程,串口操作控制線程負責(zé)串口的打開、關(guān)閉,以及串口下發(fā)報文的生成、回復(fù)報文的處理,而串口收發(fā)數(shù)據(jù)執(zhí)行線程只用來通過輸入輸出流下發(fā)和接收報文數(shù)據(jù),三類任務(wù)線程之間的交互, 采用異步調(diào)用模式,這樣,既權(quán)責(zé)分明,又顯高效。


      為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
      圖I為本發(fā)明系統(tǒng)結(jié)構(gòu)示意圖2為本發(fā)明應(yīng)用單元結(jié)構(gòu)示意圖3為本發(fā)明實施例中流程示意圖。
      具體實施方式
      為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式
      對本發(fā)明作進一步詳細的說明。顯然,所描述的實施例僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
      如圖1,圖2所示,本發(fā)明提供一種基于線程池的多串口通訊系統(tǒng),包括終端、帶多串口卡的設(shè)備以及基于線程池的應(yīng)用單元,其中
      所述帶多串口卡的設(shè)備,用于與所述終端和所述基于線程池的應(yīng)用單元進行通信,所述多串口卡,用于擴展出多路串口,供所述終端連接,串口之間實施同步;
      所述基于線程池的應(yīng)用單元,用于通過所述帶多串口卡的設(shè)備下發(fā)控制指令或傳遞數(shù)據(jù)給所述終端,并接收所述終端的回復(fù)信息,包括線程池、線程池構(gòu)建模塊和執(zhí)行任務(wù)配置模塊,所述線程池構(gòu)建模塊用于根據(jù)所述執(zhí)行任務(wù)配置模塊配置的任務(wù)線程構(gòu)建線程池,所述執(zhí)行任務(wù)配置模塊配置的任務(wù)線程包括主線程、串口操作控制線程以及串口收發(fā)報文執(zhí)行線程,各種線程之間進行異步調(diào)用。
      上述系統(tǒng)的工作過程參見圖3,將多個所述終端通過專用串口線連接至所述帶多串口卡的設(shè)備后,所述基于線程池的應(yīng)用單元工作步驟具體如以下
      步驟S301,線程池構(gòu)建模塊根據(jù)執(zhí)行任務(wù)配置模塊配置的主線程,構(gòu)建線程池,并啟動主線程;
      步驟S302,主線程在線程池中創(chuàng)建并啟動與終端相同數(shù)量的串口操作控制線程;
      步驟S303,每個串口操作控制線程在線程池中創(chuàng)建并啟動對應(yīng)的串口收發(fā)報文執(zhí)行線程;
      步驟S304,主線程判定是否收到所有串口操作控制線程操作完成的標志;若還未收到所有的標志,則執(zhí)行S305 ;否則,結(jié)束整個系統(tǒng)的處理過程;
      步驟S305,各個串口操作控制線程并行的打開串口,此處進行同步控制,只有當(dāng)所有串口都打開以后,才開始生成下發(fā)報文數(shù)據(jù),并傳遞給對應(yīng)的串口收發(fā)報文執(zhí)行線程;
      步驟S306,各個串口收發(fā)報文執(zhí)行線程下發(fā)報文數(shù)據(jù),并接收回復(fù)數(shù)據(jù);
      步驟S307,將回復(fù)數(shù)據(jù)異步返回給對應(yīng)的串口操作控制線程;
      步驟S308,各個串口操作控制線程異步返回完成標志給主線程,當(dāng)所有完成標志位都返回以后,串口操作控制線程關(guān)閉各個串口,整個系統(tǒng)的處理過程結(jié)束。
      以上所述僅是本發(fā)明的具體實施方式
      ,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。
      權(quán)利要求
      1.一種基于線程池的多串口通訊系統(tǒng),其特征在于,包括終端、帶多串口卡的設(shè)備以及基于線程池的應(yīng)用單元,所述帶多串口卡的設(shè)備用于與所述終端和所述基于線程池的應(yīng)用單元進行通信,所述多串口卡用于擴展出多路串口,供所述終端連接,所述基于線程池的應(yīng)用單元通過所述帶多串口卡的設(shè)備下發(fā)控制指令或傳遞數(shù)據(jù)給所述終端,并接收所述終端的回復(fù)信息,包括線程池、線程池構(gòu)建模塊和執(zhí)行任務(wù)配置模塊,所述線程池構(gòu)建模塊用于根據(jù)所述執(zhí)行任務(wù)配置模塊配置的任務(wù)線程構(gòu)建線程池,所述執(zhí)行任務(wù)配置模塊配置的任務(wù)線程包括主線程、串口操作控制線程以及串口收發(fā)報文執(zhí)行線程。
      2.根據(jù)權(quán)利要求I所述的基于線程池的多串口通訊系統(tǒng),其特征在于,還包括 所述終端可以是工業(yè)控制領(lǐng)域任何支持串口通訊方式的終端,所述多串口卡可以是插在PCI插槽中的任何多串口卡,本發(fā)明中不作限制。
      3.一種應(yīng)用上述任一權(quán)利要求所述基于線程池的多串口通訊方法,包括如下步驟 建立所述終端與所述帶多串口卡設(shè)備的串口連接; 所述執(zhí)行任務(wù)配置模塊配置任務(wù)線程; 所述線程池構(gòu)建模塊依據(jù)主線程構(gòu)建線程池; 所述基于線程池的應(yīng)用單元啟動線程池的主線程,由主線程控制其它任務(wù)線程的創(chuàng)建執(zhí)行。
      4.根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括 所述終端通過專用串口線連接至所述帶多串口卡的設(shè)備擴展出的多路串口,所述基于線程池的應(yīng)用單元通過串口程序開發(fā)工具包進行串口的開閉、數(shù)據(jù)讀寫,實現(xiàn)與所述終端的通訊,對應(yīng)線程池實現(xiàn)多個串口并行操作。
      5.根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括所述基于線程池的應(yīng)用單元在對串口進行開閉、數(shù)據(jù)讀寫操作時,對各個串口實施同步; 各個串口實施同步是指與所述終端連接的所有串口都打開以后,再進行數(shù)據(jù)讀寫,所有串口的數(shù)據(jù)讀與都完成以后,最終才關(guān)閉各個串口。
      6.根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括在其它所有串口完成相同操作之前,本串口對應(yīng)任務(wù)線程被阻塞,待其它所有串口也完成相同操作之后,才開始下一步操作。
      7.根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括線程池中所述的三類任務(wù)線程主線程、串口操作控制線程以及串口收發(fā)報文執(zhí)行線程,主線程負責(zé)為每個串口創(chuàng)建串口操作控制線程,串口操作控制線程負責(zé)串口開閉、生成下發(fā)報文以及處理回復(fù)報文,串口收發(fā)報文執(zhí)行線程專門負責(zé)通過輸入輸出流來下發(fā)報文并接收回復(fù)報文; 所述的三類任務(wù)線程之間存在異步調(diào)用關(guān)系,串口操作控制線程異步獲取串口收發(fā)報文執(zhí)行線程返回的下發(fā)成功標志位及回復(fù)報文,主線程異步獲取串口操作控制線程返回的下發(fā)完成標志位。
      全文摘要
      本發(fā)明公開了一種基于線程池的多串口通訊系統(tǒng)及方法,包括終端、帶多串口卡的設(shè)備以及基于線程池的應(yīng)用單元,所述帶多串口卡的設(shè)備用于與所述終端和所述基于線程池的應(yīng)用單元進行通信,所述多串口卡用于擴展出多路串口,供所述終端連接,所述基于線程池的應(yīng)用單元通過所述帶多串口卡的設(shè)備下發(fā)控制指令或傳遞數(shù)據(jù)給所述終端,并接收所述終端的回復(fù)信息,包括線程池、線程池構(gòu)建模塊和執(zhí)行任務(wù)配置模塊,所述線程池構(gòu)建模塊用于根據(jù)所述執(zhí)行任務(wù)配置模塊配置的任務(wù)線程構(gòu)建線程池,所述執(zhí)行任務(wù)配置模塊配置的任務(wù)線程包括主線程、串口操作控制線程以及串口收發(fā)報文執(zhí)行線程,各種線程之間進行異步調(diào)用。
      文檔編號G06F13/38GK102929823SQ20121033730
      公開日2013年2月13日 申請日期2012年9月8日 優(yōu)先權(quán)日2012年9月8日
      發(fā)明者何健明, 蔣興鋼, 湯湛成 申請人:佳都新太科技股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1