本發(fā)明屬于網(wǎng)絡數(shù)據(jù)傳輸,具體涉及一種多協(xié)議工業(yè)數(shù)據(jù)采集流程可視化組態(tài)的方法及系統(tǒng)。
背景技術:
1、在工業(yè)數(shù)據(jù)采集時,傳統(tǒng)的數(shù)據(jù)采集流程需要針對不同的協(xié)議開發(fā)不同的數(shù)據(jù)采集驅動程序。目前工業(yè)數(shù)據(jù)采集協(xié)議標準較多,比如opc?da、opc?ua、modbus、101~104電力規(guī)約及各種基于232/485串口、tcp、udp通訊協(xié)議的數(shù)據(jù)采集協(xié)議、以及一些廠家提供的自研協(xié)議等。因為每支持一種數(shù)據(jù)采集協(xié)議需要新開發(fā)一種數(shù)據(jù)采集驅動程序,所以數(shù)據(jù)采集工作需要耗費大量的開發(fā)、測試及實施成本。支持新的數(shù)據(jù)采集協(xié)議也需要項目團隊中的開發(fā)、測試以及工程實施人員對數(shù)據(jù)采集協(xié)議進行學習和理解,以應對項目中可能出現(xiàn)的數(shù)據(jù)采集失敗的場景,數(shù)據(jù)采集協(xié)議的學習成本較高,尤其是一些復雜的數(shù)據(jù)采集協(xié)議。
技術實現(xiàn)思路
1、本發(fā)明的目的在于針對現(xiàn)有工業(yè)數(shù)據(jù)采集時存在的時間及人力成本較高的問題,提供一種多協(xié)議工業(yè)數(shù)據(jù)采集流程可視化組態(tài)的方法及系統(tǒng)。對于特殊的新的數(shù)據(jù)采集協(xié)議,使用本發(fā)明提供的系統(tǒng)及方法,現(xiàn)場工程實施人員可直接制作出對應采集協(xié)議的指令碼以采集數(shù)據(jù),開發(fā)人員不再需要針對不同的數(shù)據(jù)采集協(xié)議開發(fā)數(shù)據(jù)采集驅動程序,節(jié)省了開發(fā)成本,提高了工業(yè)數(shù)據(jù)采集的效率。
2、為了實現(xiàn)上述目的,本發(fā)明采用的技術方案是:
3、本發(fā)明第一個目的是提供一種多協(xié)議工業(yè)數(shù)據(jù)采集流程可視化組態(tài)系統(tǒng),包括:
4、協(xié)議通信流程邏輯拓撲組態(tài)模塊,用于新建數(shù)據(jù)采集協(xié)議以及對協(xié)議中的數(shù)據(jù)格式及交互流程進行可視化圖形編輯,編輯完成后生成協(xié)議邏輯拓撲圖;
5、協(xié)議管理模塊,用于提供對現(xiàn)有數(shù)據(jù)采集協(xié)議的命名,保存,導入方法,協(xié)議以自定義文本格式存儲;
6、協(xié)議邏輯拓撲圖編譯模塊,用于提供編譯功能,對協(xié)議通信流程邏輯拓撲組態(tài)模塊生成的協(xié)議邏輯拓撲圖編譯,生成可以運行的指令碼;
7、運行環(huán)境模塊,用于數(shù)據(jù)采集軟件為指令碼提供的運行環(huán)境,通過固定接口以驅動模式加載指令碼,并控制指令碼對應采集協(xié)議的啟停。
8、進一步,還包括:
9、基礎通信庫模塊,用于提供tcp、udp網(wǎng)絡通信和232/485串口通信的封裝;
10、邏輯運算庫模塊,用于提供邏輯運算的封裝;
11、數(shù)學運算庫模塊,用于提供數(shù)學運算的封裝;
12、校驗算法庫模塊,用于提供數(shù)據(jù)校驗算法,并支持自定義校驗算法擴展;
13、組包/解包庫模塊,用于提供動態(tài)數(shù)組、通信流程中組包/解包算法;
14、圖形組態(tài)模塊,提供圖形組態(tài)的方法,支持常見圖形如矩形、橢圓、直線、箭頭等形狀的創(chuàng)建和屬性編輯。
15、本發(fā)明第二個目的是提供一種多協(xié)議工業(yè)數(shù)據(jù)采集流程可視化組態(tài)方法,包括以下步驟:
16、采集協(xié)議通信流程邏輯拓撲組態(tài),并生成采集協(xié)議通信邏輯拓撲圖,基于圖形組態(tài)模塊編輯數(shù)據(jù)采集協(xié)議中的數(shù)據(jù)采集流程;
17、對采集協(xié)議通信邏輯拓撲圖編譯,生成指令碼;
18、響應于數(shù)據(jù)采集軟件以驅動模式加載所述指令碼并配置通信參數(shù),采集對應數(shù)據(jù)采集協(xié)議的數(shù)據(jù)。
19、作為本發(fā)明進一步改進,所述生成采集協(xié)議通信邏輯拓撲圖是,基于圖形庫和基礎算法庫對采集協(xié)議數(shù)據(jù)發(fā)送/接收流程進行組包/解包邏輯拓撲編輯,形成采集通信邏輯拓撲圖。
20、作為本發(fā)明進一步改進,所述數(shù)據(jù)采集協(xié)議包含多個數(shù)據(jù)采集流程,根據(jù)采集協(xié)議不同,用戶能夠定義不同的數(shù)據(jù)采集流程,采集協(xié)議通信邏輯拓撲圖可以另存為自定義文本格式;
21、作為本發(fā)明進一步改進,對采集協(xié)議通信邏輯拓撲圖編譯,生成指令碼,包括,根據(jù)采協(xié)議集通信邏輯拓撲圖生成中間代碼,并對中間代碼優(yōu)化生成指令碼。
22、作為本發(fā)明進一步改進,對采集協(xié)議通信流程邏輯拓撲組態(tài)和生成指令碼,包括以下步驟:
23、步驟s201:新建采集協(xié)議組態(tài),新建或者導入現(xiàn)有采集協(xié)議文本,設置采集協(xié)議觸發(fā)周期;
24、步驟s202:選擇采集協(xié)議基礎通信庫,通信協(xié)議基礎參數(shù)變量定義;
25、步驟s203:新增數(shù)據(jù)采集流程,采集流程分為數(shù)據(jù)發(fā)送流程和數(shù)據(jù)接收流程兩種類型;
26、步驟s204:如果選擇采集流程為數(shù)據(jù)發(fā)送流程,對數(shù)據(jù)組包流程進行拓撲編輯,使用組包庫編輯數(shù)據(jù)包頭,根據(jù)協(xié)議需求填充數(shù)據(jù),根據(jù)協(xié)議需求增加數(shù)據(jù)校驗域,根據(jù)協(xié)議需求增加數(shù)據(jù)包尾;
27、步驟s205:如果選擇采集流程為數(shù)據(jù)接收流程,對數(shù)據(jù)解包流程進行拓撲編輯,使用解包庫解析數(shù)據(jù)包頭,根據(jù)協(xié)議需求解析數(shù)據(jù),根據(jù)協(xié)議需求解析數(shù)據(jù)校驗域,根據(jù)協(xié)議需求解析數(shù)據(jù)包尾;
28、步驟s206:判斷數(shù)據(jù)采集協(xié)議流程是否結束,如果協(xié)議流程未結束,按照采集協(xié)議順序添加數(shù)據(jù)采集流程,重復執(zhí)行步驟s203、步驟s204、步驟s205,如果協(xié)議流程結束,則進入下一步驟;
29、步驟s207:完成采集協(xié)議組態(tài),用戶基于圖形組態(tài)模塊對采集協(xié)議的數(shù)據(jù)和流程進行檢查,生成采協(xié)議集通信邏輯拓撲圖,對采集通信邏輯拓撲圖命名和保存,支持以自定義文本格式另存數(shù)據(jù)采集協(xié)議;
30、步驟s208:協(xié)議邏輯拓撲圖編譯模塊根據(jù)采協(xié)議集通信邏輯拓撲圖生成中間代碼,并對中間代碼優(yōu)化生成指令碼。
31、作為本發(fā)明進一步改進,響應于數(shù)據(jù)采集軟件以驅動模式加載所述指令碼并配置通信參數(shù)后,通過預定義的接口控制指令碼的啟停以完成對應數(shù)據(jù)采集協(xié)議的數(shù)據(jù)采集。
32、作為本發(fā)明進一步改進,響應于數(shù)據(jù)采集軟件以驅動模式加載所述指令碼并配置通信參數(shù),采集對應數(shù)據(jù)采集協(xié)議的數(shù)據(jù),包括以下步驟:
33、步驟s301:加載指令碼,數(shù)據(jù)采集軟件通過預置接口在指定路徑加載指令碼;
34、步驟s302:加載基礎算法庫,基礎算法庫包括:基礎通信庫、邏輯運算庫、數(shù)學運算庫、算法校驗庫、組包/解包庫;
35、步驟s303:判斷采集周期是否到達,如果時間未到達采集周期,延遲固定間隔時間后繼續(xù)判斷,如果時間已經(jīng)到達采集周期,則進入數(shù)據(jù)采集流程;
36、步驟s304:加載一條數(shù)據(jù)采集流程,并判斷當前加載數(shù)據(jù)采集流程類型;
37、步驟s305:如果數(shù)據(jù)采集流程是數(shù)據(jù)發(fā)送流程,指令碼進入組包流程,按照指令碼中數(shù)據(jù)格式填充數(shù)據(jù)包頭、填充數(shù)據(jù)域,如果有多條數(shù)據(jù),則循環(huán)填充,組包校驗域、組包數(shù)據(jù)包尾,數(shù)據(jù)組包完后,調用發(fā)送接口發(fā)送數(shù)據(jù);
38、步驟s306:如果數(shù)據(jù)流程是數(shù)據(jù)接收流程,判斷基礎協(xié)議類型,如果基礎協(xié)議是tcp,先接收數(shù)據(jù)包頭,解析數(shù)據(jù)包頭,再按照包頭或者指令碼協(xié)議中定義數(shù)據(jù)長度接收剩余數(shù)據(jù),如果基礎協(xié)議是udp或者232/485串口,則一次接收1條完整的數(shù)據(jù);各協(xié)議按格式解析數(shù)據(jù)包頭,并根據(jù)協(xié)議可選解析數(shù)據(jù),如果有多條數(shù)據(jù),則循環(huán)解析,根據(jù)協(xié)議解析數(shù)據(jù)校驗域并驗證、根據(jù)協(xié)議可選解析包尾;
39、步驟s307:如正確接收并解析到數(shù)據(jù)且當前數(shù)據(jù)包中含有最終需要采集的數(shù)據(jù),則轉發(fā)數(shù)據(jù)至采集軟件業(yè)務接口;
40、步驟s308:如接收或者解析數(shù)據(jù)出現(xiàn)異常,給出相應提示后進入采集下一周期;
41、步驟s309:判斷所有數(shù)據(jù)采集流程是否加載完成,如果未完成,則繼續(xù)加載下一采集流程,重復執(zhí)行步驟s304—步驟s308,如果所有數(shù)據(jù)采集流程加載完成,則判斷是否需要執(zhí)行下一采集周期繼續(xù)采集數(shù)據(jù);
42、步驟s310:如果需要執(zhí)行下一采集周期繼續(xù)采集數(shù)據(jù),則重復執(zhí)行步驟s303—步驟s309,否則完成指令碼對應的協(xié)議數(shù)據(jù)采集。
43、第三個目的是提供一種多協(xié)議工業(yè)數(shù)據(jù)采集流程可視化組態(tài)系統(tǒng),包括:
44、圖形組態(tài)單元,用于采集協(xié)議通信流程邏輯拓撲組態(tài),并生成采集協(xié)議通信邏輯拓撲圖,基于圖形組態(tài)模塊編輯數(shù)據(jù)采集協(xié)議中的數(shù)據(jù)采集流程;
45、編譯單元,用于對采集協(xié)議通信邏輯拓撲圖編譯,生成指令碼;
46、數(shù)據(jù)采集單元,用于響應于數(shù)據(jù)采集軟件以驅動模式加載所述指令碼并配置通信參數(shù),采集對應數(shù)據(jù)采集協(xié)議的數(shù)據(jù)。
47、與現(xiàn)有技術相比,本發(fā)明具有如下技術效果:
48、本發(fā)明提供系統(tǒng)包括:圖形組態(tài)模塊、基礎通信庫、邏輯運算庫、數(shù)學運算庫、算法校驗庫、組包/解包庫、協(xié)議通信流程邏輯拓撲組態(tài)、協(xié)議管理模塊、協(xié)議邏輯拓撲圖編譯模塊、運行環(huán)境模塊。在新增或修改數(shù)據(jù)采集協(xié)議時,用戶通過本發(fā)明提供的數(shù)據(jù)采集流程可視化組態(tài)系統(tǒng)對數(shù)據(jù)采集協(xié)議通信流程進行組態(tài),生成采集協(xié)議通信邏輯拓撲圖,協(xié)議邏輯拓撲圖編譯模塊編譯采集協(xié)議通信邏輯拓撲圖為指令碼,指令碼可放入采集軟件運行以完成對應的協(xié)議的數(shù)據(jù)采集。
49、本發(fā)明在工業(yè)數(shù)據(jù)采集時,對于特殊的新的數(shù)據(jù)采集協(xié)議,使用本發(fā)明提供的方法,現(xiàn)場工程實施人員可直接制作出對應采集協(xié)議的指令碼以采集數(shù)據(jù),開發(fā)人員不再需要針對不同的數(shù)據(jù)采集協(xié)議開發(fā)數(shù)據(jù)采集驅動程序,節(jié)省了開發(fā)成本,提高了工業(yè)數(shù)據(jù)采集的效率;同時以圖形化的方式展示數(shù)據(jù)采集協(xié)議,使數(shù)據(jù)采集協(xié)議易于理解,降低了項目團隊的學習成本。在新增數(shù)據(jù)采集協(xié)議時,用戶通過可視化圖形組態(tài)的方式對數(shù)據(jù)采集協(xié)議進行定義,本發(fā)明可以編譯用戶定義的數(shù)采集協(xié)議文本,生成指令碼在數(shù)據(jù)采集軟件的支持下可以直接用于對應數(shù)據(jù)采集協(xié)議的數(shù)據(jù)采集。在對標準協(xié)議進行少量修改時同樣適用,用戶導入標準協(xié)議文本后,對需要修改的流程進行可視化編輯并保存,并生成修改后的適配非標準協(xié)議的數(shù)據(jù)采集指令碼。