?

基于WebAssembly 的跨平臺SCADA 系統設計與實現*

2024-01-09 05:09謝悅海唐伯培常寶波
機電工程技術 2023年12期
關鍵詞:跨平臺控件組態

謝悅海,劉 猛,唐伯培,常寶波

(廣州市揚新技術研究有限責任公司,廣州 510540)

0 引言

在當今迅速變化的工業和技術環境中,監督和控制工業過程的重要性愈發凸顯。SCADA系統作為實現這一目標的關鍵技術,在工業自動化領域扮演著不可或缺的角色[1]。Mercurio等[2]提出了一種基于IEC 61970 和IEC 61850 國際標準的能源管理/監控和數據采集系統。Alihussein和Abedalati[3]用以太網和RS485 通信介質對SCADA系統進行性能測試,得出RS485 更易于工業環境下的硬件互連和通信。Hamamatsu[4]也提出了通過在自動化系統中的繼電保護器和間隔控制單元等智能電子設備應用互聯網技術,實現Web服務器功能的SCADA系統。Durrani[5]提出了一種用于SCADA系統多層安全強化無線遠程終端單元。

從上面對SCADA系統研究不難發現,系統設計得過于復雜,并且存在如下弊端:(1)平臺依賴性,依賴特定的操作系統和硬件平臺,這限制其在不同設備和操作系統上的可用性,增加系統的維護成本和難度[6];(2)性能限制,使用基于文本的協議和技術,其性能受限于網絡帶寬和數據處理能力,難以處理大量的實時數據和高頻率的控制操作;(3)安全漏洞,傳統SCADA 系統容易受到網絡攻擊和惡意操作的威脅,導致系統數據泄露和生產中斷[7-8];(4)集成困難,難以與其他系統和設備無縫集成,導致信息孤島,限制了企業的整體效率和生產力提升[9];(5)升級成本高,系統升級和擴展時需要投入大量的時間和資金,不利于系統的持續發展和創新[10-12];(6)可視化效果受限,可視化界面相對較為簡單,難以滿足現代用戶對于交互性和圖形表現力的需求[13]。

傳統SCADA系統的這些弊端在適應多樣化的操作系統、設備方面逐漸顯露出來瓶頸和限制[14-15],這給現代工業的快速演進帶來了新的挑戰。因此本文引入了Wasm技術、WebSocket 技術,以及QWidget 設計SCADA系統。Wasm作為一種跨平臺的二進制指令集,為Web應用程序提供高性能的運行環境[16]。將這一技術引入到SCADA系統中,能夠突破傳統限制,實現更高效、靈活、安全的監控、控制和數據分析功能[17-18]。本文系統設計的核心是將SCADA核心組件和用戶界面轉化為高性能的Wasm模塊,以實現在不同操作系統和設備上無縫運行的特性,并且滿足各種組網方式、報表內容可自定義、可擴展各種高級應用等。更為重要的是,本文設計和實現的SCADA系統,挖掘Wasm技術的潛力解決了在安全性、性能限制和實時性方面的痛點。結合工程應用情況,基于Wasm的跨平臺SCADA系統能取代的重復軟件開發工作,如數據庫組態支持excel 導入/導出、支持批量修改配置、在線修改配置。

本文旨在向工程界提供一種新的范式,以促進工業自動化技術的創新和進步。

1 SCADA系統分析

隨著工業自動化的不斷發展,SCADA系統在現代工業中扮演著至關重要的角色。但是用于中小型工業SCADA系統的主要問題是較高的環境配置成本和系統的兼容性[19]。目前正在進行各種研究,以優化SCADA 系統的投資成本,同時不損害系統最基本和最關鍵需求。

本文致力于通過采用創新性的Wasm 技術,構建一款跨平臺的SCADA系統,以實現高效、靈活的工業過程管理。在該系統設計中,融合了多項關鍵技術,包括QWidget、Redis、SQLite 和WebSocket,以構建一個全面優化的解決方案。

首先,選擇使用QWidget 技術作為系統的用戶界面框架。QWidget提供了豐富的界面元素,可用于創建交互性強、視覺一致的監控界面。這種技術使得用戶能夠通過直觀的圖形界面監視和控制工業過程,提升了用戶體驗和操作效率。

為了實現高效的數據管理與存儲,在設計系統時本文引入了Redis 和SQLite 技術。Redis 作為內存數據庫,用于快速存取實時數據,以確保系統的實時性和高性能。SQLite作為嵌入式關系型數據庫,用于持久化存儲歷史數據和配置信息,以支持長期數據分析和管理。

此外,WebSocket 技術在系統通信方面起到了關鍵作用。WebSocket提供了實時、雙向的通信機制,使得遠程監控和控制成為可能。通過WebSocket,用戶可以遠程訪問SCADA系統,實時獲取數據、發送指令,以及與系統進行實時互動。

在系統整體架構中,SCADA系統將上述技術有機地融合在一起。前端界面采用QWidget 構建,與后端通過WebSocket實現實時通信,從而實現了即時的數據更新和控制響應。Redis 和SQLite 則為系統提供了高效的數據存儲和管理手段,支持了系統的實時性和可擴展性。

綜上所述,基于WebAssembly的跨平臺SCADA系統的設計與實現在多個方面具有創新性和實用性。通過采用QWidget、Redis、SQLite和WebSocket等多種技術,本文從效率、維護、經濟、數據采集和控制平臺已使用的專有技術出發,從孤立的廠內網絡設計和實現了使用標準軟件、網絡跨平臺的SCADA系統。為工業自動化帶來了更加智能和便捷的解決方案。這一系統的設計和實現在推動工業領域的現代化進程中將發揮重要作用。

2 SCADA系統整體框架設計

本文設計的SCADA 系統采用跨平臺的C ++庫QT,將SCADA系統拆分為多個獨立的Wasm模塊,包括數據采集、實時監測、控制邏輯等。這些模塊可以獨立部署和更新,提高系統的可維護性和擴展性。前端界面使用Qt Designer構建,通過Wasm 模塊實現高性能的數據可視化?;赪asm技術的跨平臺SCADA系統將從如下幾個方面開發設計。

(1)安全性與認證。采用Wasm 模塊將應用程序運行在安全的沙盒環境中,限制其訪問系統資源,提高系統的安全性。并且集成用戶認證和權限管理機制,確保只有授權用戶可以訪問和操作系統。

(2)數據交換與通信。設計標準化的數據交換協議,確保模塊間的高效通信和實時數據傳輸。利用WebSocket技術,實現實時數據更新,保證數據的準確性和實時性。

(3)性能優化。每個Wasm 模塊都需要經過編譯優化,提高代碼執行效率和性能。利用瀏覽器的本地緩存機制,減少數據傳輸延遲,提高實時數據更新速度。

(4)界面設計和操作。提供直觀而絢麗的界面,支持用戶二次創建和編輯畫面元素,無需復雜的編程知識。工程師可以從豐富的組件庫中選擇圖形控件,實時預覽和編輯畫面效果,實現靈活的畫面組態。

(5)數據連接與交互。設計工具支持配置數據源,如采用Redis數據庫實現實時數據更新;采用嵌入式數據庫SQLite,將應用程序可以直接與SQLite 數據庫文件進行交互不需要獨立的服務器進程。為控件添加事件觸發,工程師可以自定義按鈕點擊、數值輸入等交互操作,實現實時控制。

(6)導出與部署。工程師可以將設計好的畫面導出為常見的文件格式,如XML 等,實現跨平臺加載和顯示。設計的畫面可以通過Web瀏覽器進行訪問,實現跨平臺和遠程監控控制。

本文設計的基于WebAssembly的跨平臺SCADA系統是一個綜合性的監督與控制平臺,涵蓋了多個關鍵組件[20],以實現對工業過程狀態的全面監督、控制和管理,具體的框架設計如圖1 所示。首先,通過各種傳感器和數據源,系統實時采集各類數據,如電度、電壓、電流和功率等。這些數據經過處理和分析,存儲于數據庫中,以供后續分析和查詢。在數據展示方面,系統通過直觀的圖表、圖形化界面等方式,將實時數據和歷史數據可視化,幫助用戶快速了解工業過程狀態。最重要的是,SCADA系統支持遠程控制,讓用戶能夠通過網絡遠程操作設備、調整參數等。此外,系統還提供報警功能,及時通知用戶工業運行過程中的異常情況。整體而言,SCADA系統框架融合了數據采集、處理、展示和遠程控制,為企業提供了高效的監控、優化和決策支持工具。

圖1 SCADA系統整體框架的圖形化設計應用

3 實驗設計與實現

在設計SCADA系統時,通過模塊化、規范化設計幾組獨立的網站組件實現,而不是集成的軟件程序。本次設計系統時充分考慮到應用程序低耦合、應用程序高內聚、降低升級成本、重用現有基礎設施以及易于開發[21]。這不僅對企業的運營、工程、維護和工作人員至關重要,而且對企業的最高層管理人員也至關重要。在此次系統開發過程中還使用了Redis 數據庫提高數據的讀寫能力。由于考慮到因目前利用QT的Wasm技術套件不支持所有的模塊,如常見的SQL 數據庫模塊和網絡中的UDP/FTP 也不支持。因此在開發時本文采用了WebSocket實現與服務器的通信。本次設計的SCADA 系統不僅健全,而且功能完善。在此節只展示廣州地鐵14號線的實際開發的幾個示例功能實現:數據連接與交互的實現、畫圖編輯模塊實現、實時數據監控實現和畫面組態模塊實現。

3.1 數據連接與交互實現

在進行數據連接和交互設計中,開發時使用Redis和SQLite作為數據連接與交互的技術組件。具體的數據連接交互過程如圖2 所示。

圖2 數據交互流程

系統將Redis 用作實時數據交換的中間件,以實現子模塊之間的快速數據傳輸和通信。具體做法包括:數據發布與訂閱,緩存數據,實時數據分析。SCADA 系統的功能子模塊可以將實時數據發布到Redis的特定頻道,其他需要獲取數據的子模塊可以訂閱該頻道,實現實時數據更新。并且功能子模塊可以將一些常用的數據緩存到Redis中,減少數據庫的訪問壓力,提高系統性能。

系統使用SQLite來存儲一些持久化的數據,包括歷史數據、配置信息等。具體做法包括:歷史數據存儲、配置信息、本地緩存。開發過程中首先將歷史數據存儲到SQLite數據庫中,用于后續的數據分析和報表生成。其次將存儲系統的配置信息和參數設置存放到SQLite 數據庫中,以便在系統啟動時進行自動讀取和應用。

3.2 畫圖編輯模塊實現

畫面編輯系統導入動態庫加載出畫面編輯所需圖元及各樣參數,進而讓用戶進行靈活組態,保存后生成畫面文件,圖3 所示為編輯系統的畫面元素??梢园l現控件圖元除了直線、矩形等基本圖元,還有適用于SCADA

圖3 畫面元素組件

系統的開關控件,如斷路器、手車、隔離開關等。同時還包含避雷器、互感器和熱繼電器等電力系統經典的器件。這也是該組態在電力方面友好性的體現。為了能適用于更多場景,組態軟件還提供了進度條、儀表盤等更多擴展控件。利用QWidget 開發圖元控件,很好地保留控件實際外觀,同時可按照用戶的需求,進行二次開發,編寫所需的控件圖元到動態庫里,在啟動編輯系統時加載動態庫文件進而在控件列表中顯示并提供給用戶使用,無需用戶自行組合拼接,降低了人力培訓成本,方便用戶入門。

3.3 數據健康功能模塊實現

第3 個功能示例如圖4 所示,實現了實時數據監控的功能,向運維人員提供定期更新的數據。本文在設計實時數據監控時按照以下步驟完成。

圖4 數據監控功能組件

(1)界面設計。Qt Designer 中設計主界面,包括用于顯示實時數據的圖表或文本框等控件。

(2)數據采集和展示。獲取Redis 緩存中的數據,使用圖表庫(如QCustomPlot)來繪制實時數據圖表或更新文本框來顯示實時數據。

(3)實時數據更新。使用定時器(例如QTimer)來定期刷新實時數據的展示,在定時器觸發時,更新圖表或文本框以顯示最新的數據。

(4)界面交互。添加用戶交互功能,如開始/停止監控按鈕,允許用戶控制數據采集和展示的狀態。

在前端界面,利用電氣一次主接線圖,將保存在數據庫服務器中的目標數據被標記并映射到Web 服務器中的XML文件(例如jxt_main.grh)。每當服務器中的目標數據更新時,數據庫服務器就會自動用最新的數據更新數據連接點,來完成數據可視化,使用戶直觀了解地鐵供電線路的運營過程。同時建立報警機制,一旦數據異常系統即時發出通知,幫助用戶快速響應。這樣的設計整合了數據采集、處理和展示,為用戶提供了全面的數據監控功能,支持實時決策和異常處理。

3.4 畫面組態模塊實現

畫面組態工具采用了組件式架構,最大程度滿足用戶對系統靈活性和可伸縮性的要求。圖元也可以由第三方按照圖元開發規范來自行開發,然后動態加載到本系統,從而使系統具有新增加的圖元特性。畫面組態工具界面如圖5 所示。工具提供了完善便利的圖形編輯環境和豐富的圖元:(1)基本圖元,包括文本、直線、四方形、圓形、圖片、按鈕;(2)基本控件,包括數顯、遙信、狀態、避雷器、帶電顯示、電纜頭、熔斷器、變壓器、PT互感器、電容器、電抗器、整流器;(3)開關控件,包括就地/遠方、斷路器、隔離開關、手車、接地開關;(4)表格控件,包括遙測表、光字牌、餅狀圖、曲線圖、柱狀圖、多維柱狀圖;(5)擴展控件,包括進度條、儀表盤等。

圖5 畫面組態工具界面

綜上所述,在本節中設計和實現了直觀易懂的用戶界面,以圖表、圖像和實時數據顯示工業的運行狀態,幫助操作人員實時了解工業過程的運行情況。本次研發中,還設計了實時報警功能,當數據超出閾值時,系統觸發報警機制。部分報警情況可以設定自動化響應,如切斷電源、啟動備用設備等,以減輕人工干預的負擔。并且為了區分不同嚴重程度的報警,建立相應的處理流程,以便及時采取措施解決問題,設計了報警級別與處理流程。

4 結束語

本文為配電網設計和實現了一套數字化的SCADA系統。該系統相較于其他工業控制系統具有如下優勢:(1)實時性高,SCADA系統可以對工業運行數據進行連續、高頻次、大批量的數據采集和處理,保證了準確實時監督控制工業運行狀態;(2)可靠性好,SCADA系統運行穩定,不會出現延時或訪問異常等問題,即使在面對多用戶同時訪問時也能保持系統的高效運行;(3)靈活性高,SCADA系統可以根據客戶的需求進行二次開發或者功能擴展,以及整合第三方設備和系統;(4)安全性高,SCADA系統可實現數據加密、驗證、備份等安全機制,提高系統的安全防護能力。

當然,隨著工業網絡的擴展,網絡安全和隱私問題變得更加重要。本文研究的SCADA系統將來需要關注網絡防御、漏洞修復、數據加密等安全措施,以應對不斷增加的網絡威脅,并致力于開發基于深度學習和機器學習在SCADA系統中的異常檢測、預測維護等技術,以提高系統的智能化和自適應能力。

猜你喜歡
跨平臺控件組態
基于PLC及組態技術的恒溫控制系統開發探討
跨平臺APEX接口組件的設計與實現
關于.net控件數組的探討
基于PLC和組態的智能電動擰緊系統
PLC組態控制在水箱控制系統的應用
鑄造行業三維組態軟件的應用
基于QT的跨平臺輸電鐵塔監控終端軟件設計與實現
基于OPC跨平臺通信的電機監測與診斷系統
基于B/S的跨平臺用戶界面可配置算法研究
ASP.NET服務器端驗證控件的使用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合