超越IEC61131-3——國產多語言工業編程軟件WasomCodeX
發布時間:2024-11-04 作者:www.xstr.xyz
本文圖片來源 :萬昇智能
當下,國產 PLC 領域呈現出千帆競渡的繁榮景象,已然邁過從“0到1”突破階段,闊步進入追求核心技術創新與差異化競爭的全新旅程。
而 WasomCodeX 作為一款具備全面核心技術創新的國產多語言工業編程軟件,正以其獨特優勢和卓越性能,在這股浪潮中脫穎而出。
01 IEC61131-3的重要地位與時代局限性
IEC61131-3 標準為工業邏輯控制編程奠定了堅實基礎,眾多工業控制系統借此得以長期穩定工作,有效減少了因編程問題引發的生產中斷和故障。在易用性方面,它使工程師能夠相對輕松地掌握編程技能,迅速上手進行工業控制程序開發。
然而,時代不斷進步,隨著工業 4.0 和智能制造的飛速發展,對 PLC 的編程能力、智能化水平以及與其他工業系統的融合能力提出了更高要求。傳統的 IEC61131 - 3 標準逐漸暴露出局限性。比如與計算機編程融合方面存在不足,難以滿足現代工業對強大計算能力和復雜算法應用的需求,無法將在IT行業已成熟應用的圖像識別、數據分析、智能決策等功能應用到工業領域。
究其原因,IEC61131-3 標準的核心特性是靜態數據管理,即所有數據布局在開發階段就已確定,程序語法保證用戶代碼不會導致非法的地址訪問錯誤,這在工業控制場景中至關重要。然而,這種動態數據能力的缺失也使得其在應對現代信息系統所需的數據處理和分析時舉步維艱。
目前,一些廠商通過引入 C/C++ 編程,或擴展 ST 語法如添加指針訪問來應對上述問題,但目前的方案普遍存在以下幾個主要問題:
● 引入巨大安全風險。由于用戶程序可通過指針訪問任意地址,導致用戶程序有能力讀取或篡改 PLC 廠家底層數據,在有意或無意間造成嚴重安全問題。
● 程序開發復雜且低效。一些主流廠家要求開發者使用單獨的 IDE 如 Visual Studio 來開發和調試 C/C++,與 IEC61131-3 開發形成割裂的開發體驗。
● 限制了程序熱更新和 PLC 冗余等關鍵性功能。引入動態數據管理后,控制程序無法支持這些重要功能。
● 不能支持其他計算機語言生態,如 Rust、Go 等。
02 基于WebAssembly的創新編程模式
WasomCodeX 的首席架構師魏東博士,畢業于清華大學,曾在西門子(美國)研究院從事工業自動化領域研究工作長達 15 年。魏東博士深刻認識到,傳統 IEC61131-3 需要注入新的活力,借助全新的 WebAssembly (一種虛擬指令集體系架構)編程語言技術與邊緣智能技術,在現代工業時代重新煥發生機。
2019 年離開西門子公司后,他精心設計了全新的工業編程軟件 WasomCodeX。WasomCodeX 肩負著創造契合時代發展需求核心技術的使命,與 PLC、機器人及系統廠商展開深度合作,助力客戶打造具有獨特競爭優勢的產品。
WasomCodeX軟件界面
WasomCodeX 涵蓋了大量的技術創新與卓越的工程實踐,具有以下四大特點:
● 1 融合多語言的編程能力
WasomCodeX不僅支持 IEC61131-3 標準編程語言,還開創性地實現了與多種現代計算機語言的深度融合。WasomCodeX 工業編程軟件在一個 IDE 中支持 IEC61131-3 與 C/C++/Rust/Go/Python 等多種編程語言混合開發、混合編譯和混合源碼調試的能力。這種多語言融合的能力為工程師提供了豐富的編程工具和方法選擇,極大地拓展了 PLC 的編程邊界。
這種極具創新性的編譯模式,成為了 WasomCodeX 支持諸多先進功能的技術基礎,這些先進功能包括多語言混合源碼調試、確保 C/C++ 編程的內存安全保障、為 C/C++、Rust、Go 編程提供熱更新與冗余支持,以及實現應用和庫的跨平臺能力。
WasomCodeX軟件平臺架構圖
在處理復雜算法和數據處理任務時,工程師可以靈活選用 C++ 或 Rust 等高效語言開發PLC編程庫,充分發揮其強大的計算能力和優化性能。例如,在工業大數據分析場景中,利用 C++ 編寫的數據處理算法功能塊能夠快速處理海量傳感器數據,提取有價值信息,為生產決策提供準確依據。而在與底層硬件交互和實現實時控制邏輯時,IEC61131-3 語言則能發揮其穩定性和可靠性優勢。
通過多語言的協同工作,工程師可以在一個項目中自由切換不同語言編寫的模塊,進行無縫集成和調試,大大提高編程效率和項目開發速度。或者多個工程師分別使用自己擅長的語言開發功能塊,然后由熟悉IEC61131-3編程的工程師來調用這些功能塊。
● 2 高性能編譯器
WasomCodeX 所提供的高度優化的多語言編譯器,是由擁有長達 20 年經驗的編譯器領域資深專家傾心打造而成。該編譯器不僅能夠同時對 IEC61131-3、C/C++、Rust 等多種語言進行編譯,而且還采用了兩級編譯以及運行中的自動優化等領先技術,能夠支持幾乎所有 CPU 指令架構的深度編譯優化,進而生成在業界處于領先地位的、具有卓越程序執行性能的目標機器指令。
其高性能優勢在處理復雜工業任務時表現得淋漓盡致。與傳統編程方式相比,WasomCodeX 能夠更快速地處理大量數據和復雜邏輯運算,顯著提升了 PLC 的響應速度和控制精度。在高速自動化生產線上,如汽車制造中的焊接、裝配環節,WasomCodeX 確保了每個操作的精準執行,有效提高了生產效率和產品質量。
● 3 從底層解決 C/C++ 編程的安全問題
在安全方面,WebAssembly 的內存隔離機制為 WasomCodeX 提供了強大保障。即便用戶邏輯包含 C/C++ 這樣的隨機地址訪問能力,內存隔離機制也能防止用戶程序訪問到隔離區之外的內存,有效防止惡意軟件攻擊和數據泄露,為工業控制環境提供安全保障。
● 4 多語言編程的高可用機制
IEC61131-3 的靜態內存使用模式,能夠方便地支持熱更新和冗余機制。而目前工業界鮮有對 C/C++ 等計算機語言開發的應用支持熱更新和冗余的方案,其根本原因在于動態內存的使用。基于 WebAssembly 的線性內存能力,WasomCodeX 的熱更新和冗余功能不僅支持 IEC61131-3 編程,而且在工業界率先對 C/C++、Rust、Go 編程提供高可用支持。
03 開放 IDE與AI助手提升編程效率
WasomCodeX 的 IDE 基于 Visual Studio Code 開源框架深度訂制開發,不僅可以使能用戶獲取豐富的插件市場,也可以幫助客戶進行IDE的快速擴展開發,比如為客戶專有的人工智能編程設計個性化的IDE使用界面。
WasomCodeX IDE界面
● 1 強大語言實時解析系統
WasomCodeX IDE不僅是一個精美的編輯界面,其背后是一個時刻活動的提供用戶實時交互處理的引擎。WasomCodeX提供了自研的語法解析器,并為每一種語言提供了語言服務器。當用戶從IDE輸入一個字符,或者創建一項配置,WasomCodeX的解析器將實時完成分析,通過對應的語言服務器,提供代碼提示、代碼補全、錯誤提示等開發效率幫助。
● 2 支持 IT 連續集成開發的設施與開發效率
WasomCodeX 擁有良好的項目管理和團隊協作功能,幫助改善傳統的作坊開發模式。它摒棄了傳統IDE的單一的二進制項目文件的模式,改成了多個文本文件的項目組成結構,在此之上進一步支持現代IT高效開發所依賴的連續集成開發流程與相關的基礎設施,包括 Git 版本管理、代碼評審、項目離線編譯、代碼合并的自動化測試等。
使用WasomCodeX,多人可同時協作開發一個項目,通過版本控制系統實現代碼的管理和共享,確保團隊成員之間的工作協同順暢。例如,在大型工業項目中,不同的工程師可以負責不同的功能模塊,通過 WasomCodeX 的團隊協作功能,實現代碼的合并和集成,提高項目的開發效率和質量。通過獨特的項目離線編譯能力,可以在代碼合并前由IT系統完成自動編譯和測試,甚至在git系統如GitHub中配置使用自動測試結果作為合并代碼的前提條件。
擁抱IT連續集成開發模式
● 3 配備先進的智能編程輔助工具
WasomCodeX IDE是一款集成了Copilot生成式人工智能技術的創新工具,為用戶提供了一站式的自動化解決方案。AI編程助手不僅能夠大幅度縮短復雜的自動化代碼生成時間,有效減少了工程團隊的勞動強度,確保了復雜工程設計的精準度,顯著提升了整個開發周期的效率和產品質量。例如,當工程師輸入部分代碼時,WasomCodeX 可以自動提示相關的變量、函數和指令,幫助工程師快速完成代碼編寫。
● 4 多語言混合源碼調試
WasomCodeX 的集成開發環境(IDE)呈現出直觀且易用的調試界面與工具。在一個項目涵蓋多種語言(如 ST、C、C++、Rust 等)的情況下,工程師能夠在任意程序中便捷地設置斷點、進行單步執行程序操作以及查看變量值等,從而迅速定位并解決程序中存在的問題。與此同時,WasomCodeX 支持實時監視功能,能夠在可編程邏輯控制器(PLC)運行期間對程序實施動態觀察與調試,及時發覺并修復運行時出現的各類問題,極大地提升了系統的穩定性與可靠性。
04 原生邊緣控制設計,支持虛擬化和AI框架
在邊緣智能成為工業發展關鍵趨勢的大背景下,WasomCodeX 在其原生設計當中充分融入了現代邊緣計算與智能控制技術。它具備將計算和存儲能力推進至工業網絡邊緣的能力,實現數據的就地處理與實時決策,從而減少數據傳輸延遲,提升系統的響應速度與可靠性。
● 1 虛擬化與多實例
WasomCodeX 支持在一個邊緣平臺上創建多個 PLC 實例,能夠充分利用不斷增長的算力,使一個邊緣平臺承擔起多個傳統 PLC 單機的功能。WasomCodeX 系統為此設計了一套完備的方案以達成這一目標:
其一,運用容器(Docker)與微容器(Wasm)對 PLC 多實例進行管理與編排。
其二,滿足多實例間總線的隔離與復用需求。
其三,保障 CPU 資源的分配與實時性。
其四,確保內存資源的分配與保障。
● 2 工業互聯
WasomCodeX 在設備側提供了工業物聯網解決方案,開源插件涵蓋數十種工業協議支持。用戶可下載 SDK ,以實現自身所需的其他工業協議插件和數據處理邏輯。
● 3 人工智能控制
WasomCodeX 內核提供了多種 AI 框架支持,并以功能塊的形式進行編程封裝,在底層提供模型加載與升級的能力。在工業現場,具備邊緣智能的 PLC 能夠實時采集設備運行數據,利用內置的智能算法進行分析與判斷,及時發現設備潛在的故障隱患,并采取相應措施進行預防和修復。例如,在風力發電場中,由 WasomCodeX 編程的 PLC 可以實時監測風機的運行狀態,包括轉速、溫度、振動等參數,通過邊緣計算進行數據分析,預測可能出現的故障,并提前通知維護人員進行檢修,有效避免了因設備故障導致的停機損失。
05 高度可定制化:做客戶成功的隱形伙伴
WasomCodeX 以客戶需求為導向,提供高度可定制化的服務。它能夠根據不同客戶的特定需求,進行個性化的功能定制和優化,成為客戶成功背后的隱形伙伴。無論是在特定行業的特殊應用場景,還是客戶對軟件功能的獨特要求,WasomCodeX 都能通過定制化服務滿足客戶需求,助力客戶在激烈的市場競爭中脫穎而出。
WasomCodeX目前已經推出了多個迭代的版本,軟件已經十分成熟,已經應用到國內眾多的工業龍頭企業的產品之中,感興趣的讀者可以通過郵件或者公眾號獲取應用案例。
了解與使用WasomCodeX
在線使用幫助:
官網與技術參數白皮書:
開源社區:
聯系郵箱:
business@wansheng-intelli.com
微信公眾號:
“WasomCodeX” (ID)
軟件下載:
關注公眾號并留言“WasomCodeX下載地址”。
掃描二維碼
關注公眾號下載軟件