本發(fā)明涉及電子技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)采集端口擴展裝置、系統(tǒng)及方法。
背景技術(shù):
在工廠的控制設(shè)備上,如PLC(可編程邏輯控制器),對外提供的數(shù)據(jù)采集端口是有限的,而且通常已經(jīng)被本地的采集設(shè)備占用,如被觸摸屏占用。如果控制設(shè)備的數(shù)據(jù)采集端口是串口,如RS-232、RS-422、RS-485等,這類通信端口是獨占式的,如果被別的設(shè)備占用了,其它設(shè)備就無法使用。如果控制設(shè)備的數(shù)據(jù)采集端口是網(wǎng)口,支持的是TCP協(xié)議,大部份的控制設(shè)備只支持1個TCP鏈接,如常見的支持標準的Modbus TCP設(shè)備。
隨著工業(yè)互聯(lián)網(wǎng)的發(fā)展,需要對控制設(shè)備進行遠程數(shù)據(jù)采集,在數(shù)據(jù)采集端口被占用的情況下,如果不改變軟硬件,就無法同時滿足本地和遠程數(shù)據(jù)采集的需求。而在生產(chǎn)領(lǐng)域,由于設(shè)備已經(jīng)穩(wěn)定運行,通常用戶不愿意改變控制設(shè)備的軟硬件,以免影響系統(tǒng)穩(wěn)定性。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供的數(shù)據(jù)采集端口擴展裝置、系統(tǒng)及方法,主要解決的技術(shù)問題是現(xiàn)有被采集設(shè)備的數(shù)據(jù)采集端口數(shù)量有限不夠用。
為了解決以上技術(shù)問題,本發(fā)明實施例提供的數(shù)據(jù)采集端口擴展裝置包括:
一種數(shù)據(jù)采集端口擴展裝置,包括:第一通信模塊、至少兩個第二通信模塊,以及與所述第一通信模塊、各第二通信模塊通信的控制模塊,其中,
所述控制模塊用于將當前處于第一狀態(tài)且接收到數(shù)據(jù)請求的第二通信模塊置為第二狀態(tài),且將其他各第二通信模塊置為第三狀態(tài);在當前處于所述第二狀態(tài)的第二通信模塊將待采集數(shù)據(jù)傳輸至與其連接的采集設(shè)備之后,將各個第二通信模塊置為所述第一狀態(tài);
所述第二通信模塊,用于被所述控制模塊置為所述第一狀態(tài)、第二狀態(tài)或第三狀態(tài);當處于所述第一狀態(tài)且接收到數(shù)據(jù)請求時,被置為所述第二狀態(tài);當處于所述第二狀態(tài)時,用于將接收到的所述數(shù)據(jù)請求傳輸至所述第一通信模塊;以及將所述第一通信模塊傳輸來的所述待采集數(shù)據(jù)傳輸至與其連接的采集設(shè)備;將所述第一通信模塊傳輸來的所述待采集數(shù)據(jù)傳輸至與其連接的采集設(shè)備之后,被置為所述第一狀態(tài);在其他第二通信模塊被置為所述第二狀態(tài)時,被置為第三狀態(tài);
所述第一通信模塊用于將接收到的所述數(shù)據(jù)請求傳輸至被采集和設(shè)備;接收所述被采集設(shè)備根據(jù)接收到的所述數(shù)據(jù)請求反饋的待采集數(shù)據(jù);將所述待采集數(shù)據(jù)傳輸至當前處于所述第二狀態(tài)的第二通信模塊。
在一些實施例中,所述第二通信模塊還用于處于所述第三狀態(tài)時接收數(shù)據(jù)請求,緩存接收到的數(shù)據(jù)請求;
所述控制模塊還用于將當前處于第一狀態(tài)且緩存有數(shù)據(jù)請求的第二通信模塊置為第二狀態(tài),且將其他各第二通信模塊置為第三狀態(tài)。
在一些實施例中,所述控制模塊還用于給各個第二通信模塊配置優(yōu)先級;當兩個或兩個以上的第二通信模塊同時處于所述第一狀態(tài),且均接收到數(shù)據(jù)請求時,所述控制模塊還用于按照所述優(yōu)先級的順序給各個第二通信模塊配置狀態(tài)。
在一些實施例中,所述第一通信模塊、各第二通信模塊支持的通信協(xié)議包 括:串口鏈路協(xié)議;或者,所述第一通信模塊、各第二通信模塊支持的通信協(xié)議包括:網(wǎng)口通信協(xié)議。
在一些實施例中,所述串口鏈路協(xié)議包括:RS232串口鏈路協(xié)議、RS422串口鏈路協(xié)議、RS485串口鏈路協(xié)議中的至少一種;所述網(wǎng)口通信協(xié)議包括:TCP通信協(xié)議、modbus通信協(xié)議、IP通信協(xié)議中的至少一種。
在一些實施例中,各第二通信模塊支持的通信協(xié)議不同。
在一些實施例中,至少一個第二通信模塊用于與遠程采集設(shè)備的通信端口通信。
一種數(shù)據(jù)采集系統(tǒng),包括:被采集設(shè)備、至少兩個采集設(shè)備,以及上述任一項所述的數(shù)據(jù)采集端口擴展裝置,所述數(shù)據(jù)采集端口擴展裝置的第一通信模塊與所述被采集設(shè)備通信,各個第二通信模塊分別與至少一個采集設(shè)備通信。
一種數(shù)據(jù)采集方法,包括:
若當前處于第一狀態(tài)的第二通信模塊接收到與其連接的采集設(shè)備發(fā)送的數(shù)據(jù)請求,則進入以下步驟A,
步驟A、控制模塊將當前處于所述第一狀態(tài)且接收到數(shù)據(jù)請求的第二通信模塊置為第二狀態(tài),且將其他各第二通信模塊置為第三狀態(tài),進入以下步驟B;
步驟B、當前處于所述第二狀態(tài)的第二通信模塊將接收到的所述數(shù)據(jù)請求傳輸至第一通信模塊,進入以下步驟C;
步驟C、所述第一通信模塊將接收到的所述數(shù)據(jù)請求傳輸至被采集和設(shè)備,進入以下步驟D;
步驟D、所述第一通信模塊接收所述被采集設(shè)備根據(jù)接收到的所述數(shù)據(jù)請求反饋的待采集數(shù)據(jù),進入以下步驟E;
步驟E、所述第一通信模塊將所述待采集數(shù)據(jù)傳輸至當前處于所述第二狀態(tài) 的第二通信模塊,進入以下步驟F;
步驟F、當前處于所述第二狀態(tài)的第二通信模塊將所述待采集數(shù)據(jù)傳輸至與其連接的采集設(shè)備,進入以下步驟G;
步驟G、所述控制模塊將各個第二通信模塊置為所述第一狀態(tài)。
在一些實施例中,上述數(shù)據(jù)采集方法,還包括:
若當前處于所述第三狀態(tài)的第二通信模塊接收到數(shù)據(jù)請求,則緩存接收到的數(shù)據(jù)請求,直到其狀態(tài)被置為第一狀態(tài)后,進入步驟A。
在一些實施例中,上述數(shù)據(jù)采集方法,還包括:
所述控制模塊給各個第二通信模塊配置優(yōu)先級;
當兩個或兩個以上的第二通信模塊同時處于所述第一狀態(tài),且均接收到數(shù)據(jù)請求時,所述控制模塊按照所述優(yōu)先級的順序給各個第二通信模塊配置狀態(tài)。
本發(fā)明實施例還提供一種計算機存儲介質(zhì),所述計算機存儲介質(zhì)中存儲有計算機可執(zhí)行指令,所述計算機可執(zhí)行指令用于執(zhí)行前述的任一項的數(shù)據(jù)采集端口擴展裝置。
本發(fā)明實施例提供的數(shù)據(jù)采集端口擴展裝置、系統(tǒng)及方法,在被采集設(shè)備和多個采集設(shè)備之間增加一個數(shù)據(jù)采集端口擴展裝置,由這個裝置與被采集設(shè)備通信,并提供多個通訊端口(第二通信模塊),這些通信端口可以支持多種不同的通信協(xié)議,如RS232串行鏈路協(xié)議、RS422串行鏈路協(xié)議、RS485串行鏈路協(xié)議、TCP通信協(xié)議、modbus通信協(xié)議、IP通信協(xié)議等,通過這些通訊端口與采集設(shè)備通信,向采集設(shè)備傳輸待采集數(shù)據(jù)。這樣,對被采集設(shè)備沒有額外的要求,又滿足了接入多個采集設(shè)備的需求,同時還可以兼顧多種不同通信協(xié)議的采集設(shè)備。
附圖說明
圖1為本發(fā)明第一實施例提供的數(shù)據(jù)采集端口擴展裝置的示意圖;
圖2為圖1提供的數(shù)據(jù)采集端口擴展裝置的數(shù)據(jù)采集方法的流程圖;
圖3為本發(fā)明第二實施例提供的數(shù)據(jù)采集端口擴展裝置的示意圖;
圖4為圖3提供的數(shù)據(jù)采集端口擴展裝置的數(shù)據(jù)采集方法的流程圖;
圖5為本發(fā)明第三實施例提供的數(shù)據(jù)采集端口擴展裝置的示意圖;
圖6為圖5提供的數(shù)據(jù)采集端口擴展裝置的數(shù)據(jù)采集方法的流程圖。
具體實施方式
應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
下面通過具體實施例對本發(fā)明進一步詳細說明。
第一實施例
參考圖1,圖1為本發(fā)明第一實施例提供的數(shù)據(jù)采集端口擴展裝置的示意圖,該數(shù)據(jù)采集端口擴展裝置連接在被采集設(shè)備和至少兩個采集設(shè)備之間,該數(shù)據(jù)采集端口擴展裝置主要包括:第一通信模塊11、至少兩個第二通信模塊(121至12n),以及與所述第一通信模塊11、各第二通信模塊(121至12n)通信的控制模塊13,其中,
第一通信模塊11連接外部被采集設(shè)備的數(shù)據(jù)采集端口、各第二通信模塊(121至12n)、控制模塊13(與各第二通信模塊、控制模塊13之間可以通過走線的方式連接)。被采集設(shè)備的數(shù)據(jù)采集端口的通信協(xié)議可以是串口鏈路協(xié)議或網(wǎng)口通信協(xié)議,串口鏈路協(xié)議包括:RS232串口鏈路協(xié)議、RS422串口鏈路協(xié)議、RS485串口鏈路協(xié)議中的至少一種;網(wǎng)口通信協(xié)議包括:TCP通信協(xié)議、modbus 通信協(xié)議、IP通信協(xié)議中的至少一種,因此,第一通信模塊11支持以上串口鏈路協(xié)議和/或網(wǎng)口通信協(xié)議。
各第二通信模塊(121至12n)連接外部至少一個采集設(shè)備的通信端口、第一通信模塊11、控制模塊13(與第一通信模塊11、控制模塊13之間可以通過走線的方式連接),一個第二通信模塊與至少一個采集設(shè)備通信,采集設(shè)備的通信端口的通信協(xié)議可以是串口鏈路協(xié)議或網(wǎng)口通信協(xié)議,串口鏈路協(xié)議包括:RS232串口鏈路協(xié)議、RS422串口鏈路協(xié)議、RS485串口鏈路協(xié)議中的至少一種;網(wǎng)口通信協(xié)議包括:TCP通信協(xié)議、modbus通信協(xié)議、IP通信協(xié)議中的至少一種,因此,各第二通信模塊(121至12n)支持以上串口鏈路協(xié)議和/或網(wǎng)口通信協(xié)議。各第二通信模塊(121至12n)支持的通信協(xié)議可以不同。
控制模塊13主要用于對各第二通信模塊(121至12n)的狀態(tài)進行設(shè)置,以及對各第二通信模塊(121至12n)、第一通信模塊11進行調(diào)度。
在一些實施例中,至少一個第二通信模塊連接遠程采集設(shè)備的通信端口,其他第二通信模塊連接本地采集設(shè)備的通信端口,這樣的數(shù)據(jù)采集端口擴展裝置兼顧到了本地采集設(shè)備和遠程采集設(shè)備,將這兩類采集設(shè)備都與被采集設(shè)備連接上,都可以對被采集設(shè)備上的數(shù)據(jù)進行采集。
上述數(shù)據(jù)采集端口擴展裝置的工作原理,即數(shù)據(jù)采集方法參見圖2,主要流程包括:
準備階段:將上述數(shù)據(jù)采集端口擴展裝置的第一通信模塊11與被采集設(shè)備的數(shù)據(jù)采集端口連接,建立通信,被采集設(shè)備可以是本地的;將上述數(shù)據(jù)采集端口擴展裝置的各個第二通信模塊(121至12n)與對應(yīng)的采集設(shè)備的通信端口連接,建立通信,部分第二通信模塊可以與遠程采集設(shè)備建立通信,其他部分第二通信模塊可以與本地采集設(shè)備建立通信。第一通信模塊11與被采集設(shè)備之 間的通信,根據(jù)被采集設(shè)備支持的通信協(xié)義選擇。第二通信模塊(121至12n)與采集設(shè)備之間的通信,根據(jù)該采集設(shè)備支持的通信協(xié)義選擇。
初始狀態(tài)時,控制模塊13將各個第二通信模塊(121至12n)置為第一狀態(tài),當有任一處于第一狀態(tài)的第二通信模塊(本實施例假設(shè)是第二通信模塊121)接收到與其連接的采集設(shè)備發(fā)送的數(shù)據(jù)請求,則進入下面的采集階段。
采集階段:
S201、控制模塊13將當前處于所述第一狀態(tài)且接收到數(shù)據(jù)請求的第二通信模塊121置為第二狀態(tài),且將其他各第二通信模塊(122至12n)置為第三狀態(tài),進入以下S202;
S202、當前處于所述第二狀態(tài)的第二通信模塊121將接收到的所述數(shù)據(jù)請求傳輸至第一通信模塊11,進入以下步驟S203;
S203、第一通信模塊11將接收到的所述數(shù)據(jù)請求傳輸至被采集設(shè)備,進入以下步驟S204;
S204、第一通信模塊11接收所述被采集設(shè)備根據(jù)接收到的所述數(shù)據(jù)請求反饋的待采集數(shù)據(jù),進入以下步驟S205;
S205、第一通信模塊11將所述待采集數(shù)據(jù)傳輸至當前處于所述第二狀態(tài)的第二通信模塊121,進入以下步驟S206;
S206、當前處于所述第二狀態(tài)的第二通信模塊121將所述待采集數(shù)據(jù)傳輸至與其連接的采集設(shè)備,進入以下步驟S207;
S207、控制模塊13將各個第二通信模塊(121至12n)置為所述第一狀態(tài)。
若上述處于所述第三狀態(tài)的第二通信模塊接收到數(shù)據(jù)請求,則該第二通信模塊可以緩存接收到的數(shù)據(jù)請求,直到其狀態(tài)被置為第一狀態(tài)后,參照上述步驟S201至步驟S207執(zhí)行。
控制模塊13還可以給各個第二通信模塊(121至12n)配置優(yōu)先級;當兩 個或兩個以上的第二通信模塊同時處于所述第一狀態(tài),且均接收到數(shù)據(jù)請求時,控制模塊13可以按照所述優(yōu)先級的順序,優(yōu)先給優(yōu)先級最高的第二通信模塊置為第二狀態(tài),且將其他各第二通信模塊置為第三狀態(tài),進入上述步驟S202。
控制模塊13還可以用于控制第一通信模塊11、各第二通信模塊(121至12n)之間的邏輯調(diào)度。
各個第二通信模塊(121至12n)有三個狀態(tài):第一狀態(tài)、第二狀態(tài)、第三狀態(tài),由控制模塊13進行配置,當有一個第二通信模塊處于第二狀態(tài)時,其他第二通信模塊置為第三狀態(tài),如果沒有任一第二通信模塊處于第二狀態(tài),則所有第二通信模塊均置為第一狀態(tài)。第一狀態(tài)可視為初始狀態(tài),第二狀態(tài)可視為激活狀態(tài),第二狀態(tài)可視為禁止狀態(tài)。
第二實施例
參考圖3,圖3為本發(fā)明第二實施例提供的數(shù)據(jù)采集端口擴展裝置的示意圖,該實施例中,數(shù)據(jù)采集端口擴展裝置包括:第一通信模塊31、兩個第二通信模塊(32、33)、以及控制模塊34,其中,
第一通信模塊31作為主節(jié)點代理模塊,與外部被采集設(shè)備的數(shù)據(jù)采集端口通信通過串口(串口鏈路協(xié)議例如是:RS232串口鏈路協(xié)議、RS422串口鏈路協(xié)議、RS485串口鏈路協(xié)議等)連接;還與內(nèi)部控制模塊34連接(圖中未示出),還與兩個第二通信模塊(32、33)連接;
第二通信模塊32作為一個子節(jié)點代理模塊,與外部遠程采集設(shè)備的通信端口通過串口(串口鏈路協(xié)議例如是:RS232串口鏈路協(xié)議、RS422串口鏈路協(xié)議、RS485串口鏈路協(xié)議等)連接;還與內(nèi)部控制模塊34連接,還與第一通信模塊31連接;
第二通信模塊33作為另一個子節(jié)點代理模塊,與外部本地采集設(shè)備的通信端口通過串口(串口鏈路協(xié)議例如是:RS232串口鏈路協(xié)議、RS422串口鏈路協(xié)議、RS485串口鏈路協(xié)議等)連接;還與內(nèi)部控制模塊34連接,還與第一通信模塊31連接;
從被采集設(shè)備側(cè)來看,只連接了一個主節(jié)點,符合主從通訊協(xié)議模型(Modbus等);從遠程采集設(shè)備或本地遠程采集設(shè)備側(cè)來看,連接到了數(shù)據(jù)采集端口上(實際上是連接到了子節(jié)點代理模塊上),符合Modbus串口協(xié)議的主從模型,然后由控制模塊34進行調(diào)度處理,即數(shù)據(jù)采集方法參見圖4,主要流程包括:
準備階段:將上述數(shù)據(jù)采集端口擴展裝置的第一通信模塊31與被采集設(shè)備的數(shù)據(jù)采集端口連接,建立通信,被采集設(shè)備是本地的;將上述數(shù)據(jù)采集端口擴展裝置的第二通信模塊32與一遠程采集設(shè)備的通信端口連接,建立通信,第二通信模塊33與一本地采集設(shè)備的通信端口連接,建立通信;
以上準備工作完成后,進入初始狀態(tài),控制模塊34將第二通信模塊32、第二通信模塊33均置為第一狀態(tài),如果遠程采集設(shè)備向第二通信模塊32發(fā)送數(shù)據(jù)請求,第二通信模塊32接收到數(shù)據(jù)請求后,則進入下面的采集階段(如果是本地采集設(shè)備發(fā)起的數(shù)據(jù)請求,參照以下過程)。
采集階段:
S401、控制模塊34將當前處于所述第一狀態(tài)且接收到數(shù)據(jù)請求的第二通信模塊33置為第二狀態(tài),且將其他第二通信模塊32置為第三狀態(tài),進入以下S402;
S402、當前處于所述第二狀態(tài)的第二通信模塊33將接收到的所述數(shù)據(jù)請求傳輸至第一通信模塊31,進入以下步驟S403;
S403、第一通信模塊31將接收到的所述數(shù)據(jù)請求傳輸至被采集設(shè)備,進入以下步驟S404;
S404、第一通信模塊31接收所述被采集設(shè)備根據(jù)接收到的所述數(shù)據(jù)請求反饋的待采集數(shù)據(jù),進入以下步驟S405;
S405、第一通信模塊31詢到第二通信模塊33處于第二狀態(tài)下,就將所述待采集數(shù)據(jù)傳輸至當前處于所述第二狀態(tài)的第二通信模塊33,進入以下步驟S406;
S406、當前處于所述第二狀態(tài)的第二通信模塊33將所述待采集數(shù)據(jù)傳輸至與其連接的遠程采集設(shè)備,進入以下步驟S407;
S407、控制模塊34將當前處于所述第二狀態(tài)的第二通信模塊33置為所述第一狀態(tài),且將當前處于所述第三狀態(tài)的第二通信模塊32置為所述第一狀態(tài)。
在上述過程中,若上述處于所述第三狀態(tài)的第二通信模塊32接收到與其連接的本地采集設(shè)備發(fā)送的數(shù)據(jù)請求,則該第二通信模塊32緩存接收到的數(shù)據(jù)請求,直該第二通信模塊32的狀態(tài)被置為第一狀態(tài)后(即步驟S407后),進入步驟S408:
S408、控制模塊34將當前處于所述第一狀態(tài)且緩存有數(shù)據(jù)請求的第二通信模塊32置為所述第二狀態(tài),將第二通信模塊33置為所述第三狀態(tài),進入以下步驟S409;
S409、當前處于所述第二狀態(tài)的第二通信模塊32將緩存的數(shù)據(jù)請求傳輸至第一通信模塊31,進入以下步驟S410;
S410、第一通信模塊31將接收到的數(shù)據(jù)請求傳輸至被采集設(shè)備,進入以下步驟S411;
S411、第一通信模塊31接收所述被采集設(shè)備根據(jù)接收到的該數(shù)據(jù)請求反饋的待采集數(shù)據(jù),進入以下步驟S412;
S412、第一通信模塊31詢到第二通信模塊32處于第二狀態(tài)下,就將所述待采集數(shù)據(jù)傳輸至當前處于所述第二狀態(tài)的第二通信模塊32,進入以下步驟S413;
S413、當前處于所述第二狀態(tài)的第二通信模塊32將所述待采集數(shù)據(jù)傳輸至與其連接的本地采集設(shè)備,進入以下步驟S414;
S414、控制模塊34將當前處于所述第二狀態(tài)的第二通信模塊32置為所述第一狀態(tài),且將當前處于所述第三狀態(tài)的第二通信模塊33置為所述第一狀態(tài)。
控制模塊34還可以給各個第二通信模塊(32、33)配置優(yōu)先級;當兩個第二通信模塊同時處于所述第一狀態(tài),且均接收到數(shù)據(jù)請求時,控制模塊34可以按照所述優(yōu)先級的順序,優(yōu)先給優(yōu)先級最高的第二通信模塊置為第二狀態(tài),且將另一第二通信模塊置為第三狀態(tài),進入上述步驟S402,可以保證某些采集設(shè)備的通訊時效性。
如果應(yīng)用層協(xié)議不是modbus協(xié)議,是其他協(xié)議或私有協(xié)議,上述方案同樣適用。
上述數(shù)據(jù)采集端口擴展裝置可用于所有具有獨占式通訊方式的通訊口擴展。
第三實施例
參考圖5,圖5為本發(fā)明第三實施例提供的數(shù)據(jù)采集端口擴展裝置的示意圖,該實施例中,數(shù)據(jù)采集端口擴展裝置包括:第一通信模塊51、兩個第二通信模塊(52、53)、以及控制模塊54,其中,
本實施例以應(yīng)用協(xié)議為modbus為例,進一步細化了第一通信模塊51的內(nèi)部結(jié)構(gòu),第一通信模塊51包括第一處理模塊512,以及與第一處理模塊512連接的第一通信端口511、第一modbus協(xié)議棧513和第一TCP協(xié)議棧514,第一通信端口511還與外部被采集設(shè)備的數(shù)據(jù)采集端口通過TCP連接,第一處理模塊512還與控制模塊54連接,還與兩個第二通信模塊連接;
本實施例中進一步細化了兩個第二通信模塊(52、53)的內(nèi)部結(jié)構(gòu),其中一個第二通信模塊52包括第二處理模塊522,以及與第二處理模塊522連接的 第二通信端口521、第二modbus協(xié)議棧523和第二TCP協(xié)議棧524,第二通信端口521還與外部本地采集設(shè)備的通信端口通過TCP連接,第二處理模塊522還與控制模塊54連接,還與第一處理模塊512連接;
另一個第二通信模塊53包括第二處理模塊532,以及與第二處理模塊532連接的第二通信端口531、第二modbus協(xié)議棧533和第二TCP協(xié)議棧534,第二通信端口531還與外部遠程采集設(shè)備的通信端口通過TCP連接,第二處理模塊532還與控制模塊54連接,還與第一處理模塊512連接;
第一通信模塊、第二通信模塊、控制模塊54之間的數(shù)據(jù)交互,可以是內(nèi)部消息總線或函數(shù)調(diào)用。
上述數(shù)據(jù)采集端口擴展裝置的工作原理,即數(shù)據(jù)采集方法參見圖6,主要流程包括:
準備階段:將上述數(shù)據(jù)采集端口擴展裝置的第一通信端口511與被采集設(shè)備的數(shù)據(jù)采集端口建立TCP連接,被采集設(shè)備是本地的;將上述數(shù)據(jù)采集端口擴展裝置的第二通信端口521與一本地采集設(shè)備的通信端口建立TCP連接,第二通信端口531與一遠程采集設(shè)備的通信端口建立TCP連接;
以上準備工作完成后,進入初始狀態(tài),控制模塊54將兩個第二通信模塊(52、53)、第一通信模塊51均置為第一狀態(tài)(本實施例中包含了對第一通信模塊51的狀態(tài)配置,在其他實施例中,也可以默認第一通信模塊51一直處于第二狀態(tài)或忽略對第一通信模塊51的狀態(tài)配置),如果遠程采集設(shè)備向第二通信端口531發(fā)送數(shù)據(jù)請求,第二通信端口531接收到數(shù)據(jù)請求后,則進入下面的采集階段(如果是本地采集設(shè)備發(fā)起的數(shù)據(jù)請求,參照以下過程)。
采集階段:
S601、控制模塊54將當前處于所述第一狀態(tài)且接收到數(shù)據(jù)請求的第二通信模塊53和第一通信模塊51置為第二狀態(tài),且將第二通信模塊52置為第三狀態(tài), 進入以下S602;
S602、第二通信端口531將接收到的數(shù)據(jù)請求,傳輸給第二處理模塊532,第二處理模塊532通過第二modbus協(xié)議棧533從Modbus協(xié)議中解析出所述數(shù)據(jù)請求的內(nèi)容,將該內(nèi)容傳輸給第一處理模塊512,第一處理模塊512通過第一modbus協(xié)議棧513將該內(nèi)容封裝到Modbus協(xié)議中,通過第一通信端口511,基于TCP連接發(fā)送到被采集設(shè)備,進入以下步驟S603;
在一些實施例中,在將數(shù)據(jù)請求發(fā)給被采集設(shè)備后,還同時啟動一個定時器保護,如果定時器超時,則控制模塊54置第一通信模塊51發(fā)出數(shù)據(jù)請求的TCP連接號為無效連接,并由第二通信模塊53向遠程采集設(shè)備反饋讀取數(shù)據(jù)失敗的響應(yīng)消息,后續(xù)如果在這個TCP連接號上收到響應(yīng)消息,則丟棄該消息,同時控制模塊54置第一通信模塊51、第二通信模塊52、第三通信模塊53為第一狀態(tài)。
S603、第一通信端口511接收所述被采集設(shè)備根據(jù)接收到的所述數(shù)據(jù)請求反饋的待采集數(shù)據(jù),傳輸給第一處理模塊512,第一處理模塊512通過第一modbus協(xié)議棧513解析出該采集數(shù)據(jù)的內(nèi)容,進入以下步驟S604;
S604、第一處理模塊512詢到第二通信模塊53處于第二狀態(tài)下,就將所述待采集數(shù)據(jù)的內(nèi)容傳輸至當前處于所述第二狀態(tài)的第二通信模塊53,進入以下步驟S605;
S605、第二處理模塊532收到后,通過第二modbus協(xié)議棧533將所述待采集數(shù)據(jù)的內(nèi)容封裝到modbus協(xié)議中,通過第二通信端口531,基于TCP連接發(fā)送到遠程采集設(shè)備,進入以下步驟S606;
S606、控制模塊54將當前處于所述第二狀態(tài)的第二通信模塊53、第一通信模塊51置為所述第一狀態(tài),且將當前處于所述第三狀態(tài)的第二通信模塊52置為所述第一狀態(tài)。
在上述過程中,若上述處于所述第三狀態(tài)的第二通信模塊52接收到與其連接的本地采集設(shè)備發(fā)送的數(shù)據(jù)請求,則第二通信端口521將接收到的數(shù)據(jù)請求傳輸給第二處理模塊522,第二處理模塊522進行緩存該數(shù)據(jù)請求,直該第二通信模塊52的狀態(tài)被置為第一狀態(tài)后(即步驟S606后),進入步驟S607:
S607、控制模塊54將當前處于所述第一狀態(tài)且緩存有數(shù)據(jù)請求的第二通信模塊52置為所述第二狀態(tài),將第一通信模塊51置為所述第二狀態(tài),將第二通信模塊53置為所述第三狀態(tài),進入以下步驟S608;
S608、第二處理模塊522通過第二modbus協(xié)議棧523從Modbus協(xié)議中解析出緩存的數(shù)據(jù)請求的內(nèi)容,將該內(nèi)容傳輸給第一處理模塊512,第一處理模塊512通過第一modbus協(xié)議棧513將該內(nèi)容封裝到Modbus協(xié)議中,通過第一通信端口511,基于TCP連接發(fā)送到被采集設(shè)備,進入以下步驟S609;
在一些實施例中,在將數(shù)據(jù)請求發(fā)給被采集設(shè)備后,還同時啟動一個定時器保護,如果定時器超時,則控制模塊54置第一通信模塊51發(fā)出數(shù)據(jù)請求的TCP連接號為無效連接,并由第二通信模塊52向遠程采集設(shè)備反饋讀取數(shù)據(jù)失敗的響應(yīng)消息,后續(xù)如果在這個TCP連接號上收到響應(yīng)消息,則丟棄該消息,同時控制模塊54置第一通信模塊51、第二通信模塊52、第三通信模塊53為第一狀態(tài)。
S609、第一通信端口511接收所述被采集設(shè)備根據(jù)接收到的所述數(shù)據(jù)請求反饋的待采集數(shù)據(jù),傳輸給第一處理模塊512,第一處理模塊512通過第一modbus協(xié)議棧513解析出該采集數(shù)據(jù)的內(nèi)容,進入以下步驟S610;
S610、第一處理模塊512詢到第二通信模塊52處于第二狀態(tài)下,就將所述待采集數(shù)據(jù)的內(nèi)容傳輸至當前處于所述第二狀態(tài)的第二通信模塊52,進入以下步驟S611;
S611、第二處理模塊522收到后,通過第二modbus協(xié)議棧523將所述待采集數(shù)據(jù)的內(nèi)容封裝到modbus協(xié)議中,通過第二通信端口521,基于TCP連接發(fā)送到本地采集設(shè)備,進入以下步驟S612;
S612、控制模塊54將當前處于所述第二狀態(tài)的第二通信模塊52、第一通信模塊51置為所述第一狀態(tài),且將當前處于所述第三狀態(tài)的第二通信模塊53置為所述第一狀態(tài)。
控制模塊54還可以給各個第二通信模塊(52、53)配置優(yōu)先級;當兩個第二通信模塊同時處于所述第一狀態(tài),且均接收到數(shù)據(jù)請求時,控制模塊54可以按照所述優(yōu)先級的順序,優(yōu)先給優(yōu)先級最高的第二通信模塊置為第二狀態(tài),且將另一第二通信模塊置為第三狀態(tài),進入上述步驟S502,可以保證某些采集設(shè)備的通訊時效性。
如果應(yīng)用層協(xié)議不是modbus協(xié)議,是其他協(xié)議或私有協(xié)議,上述方案同樣適用。
在一些實施例中,兩個第二通信模塊(52、53)也可以共享TCP協(xié)議棧和Modbus協(xié)議棧,如果是共享的方式,控制模塊54配置狀態(tài)時,可以只對第一處理模塊512、第二處理模塊522、第二處理模塊532進行配置。
本發(fā)明還提供一種數(shù)據(jù)采集系統(tǒng),包括:被采集設(shè)備、至少兩個采集設(shè)備,以及上述任一實施例所述的數(shù)據(jù)采集端口擴展裝置,該數(shù)據(jù)采集端口擴展裝置的第一通信模塊與所述被采集設(shè)備通信,各個第二通信模塊分別與至少一個采集設(shè)備通信。具體實現(xiàn)方式參見上述實施例對數(shù)據(jù)采集端口擴展裝置的描述。所述被采集設(shè)備包括但不局限于PLC,所述至少兩個采集設(shè)備中至少一個為本地采集設(shè)備,其他為遠程采集設(shè)備,該遠程采集設(shè)備可以是本地采集設(shè)備的數(shù)據(jù) 備份設(shè)備。
本發(fā)明在被采集設(shè)備和多個采集設(shè)備之間增加一個數(shù)據(jù)采集端口擴展裝置,對被采集設(shè)備沒有額外的要求,又滿足了接入多個采集設(shè)備的需求,同時還可以兼顧多種不同通信協(xié)議的采集設(shè)備。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機,計算機,服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。
上面結(jié)合附圖對本發(fā)明的實施例進行了描述,但是本發(fā)明并不局限于上述的具體實施方式,上述的具體實施方式僅僅是示意性的,而不是限制性的,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明宗旨和權(quán)利要求所保護的范圍情況下,還可做出很多形式,這些均屬于本發(fā)明的保護之內(nèi)。