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