攻克工業軟體“卡脖子”技術,國產IEC61131-3可程式設計系統來襲

攻克工業軟體“卡脖子”技術,國產IEC61131-3可程式設計系統來襲

在自動化控制系統已國產化二三十年的今天,其底層技術中類似於“作業系統”的基礎軟體仍存在被國外壟斷的問題,這遲遲未被攻克的關鍵一環卡在了IEC61131-3可程式設計系統的深度國產化程序上,它像珠穆朗瑪峰北坡最後一處地勢陡峭、難以征服的險峰,等待著意志最堅定、素質最過硬、條件最成熟的極少數攀登者向它發起最後的衝刺。

何謂IEC61131-3可程式設計系統

IEC61131-3可程式設計系統是遵循IEC61131-3國際標準的可實現完整自動化控制方案的軟體開發平臺,是自動化控制設計和執行的基礎軟體,在業界被喻為“用於自動化控制的低程式碼的整合開發環境”和“可程式設計控制器的‘作業系統’”。

屬性一它是低程式碼的整合開發環境

為了更形象地說明IEC61131-3可程式設計系統的基礎作用,業內人士分別引入網際網路中的“低程式碼”概念和計算機程式設計領域的“整合開發環境”術語來定義這款產品。“低程式碼”開發是指無需編碼或很少量程式碼即可快速生成應用程式;“整合開發環境”是指用於提供程式開發環境的應用程式,一般包括程式碼編輯器、編譯器、偵錯程式和圖形使用者介面等工具。以上兩種特性IEC61131-3可程式設計系統軟體兼而有之,可見其產品定位——生來即是一款為自動化工程師打造的可實現快速開發並同時提供良好除錯環境的工具性軟體。

IEC61131-3可程式設計系統軟體通常包括自動化控制程式的整合開發環境和執行環境,自動化控制程式設計人員可透過它編寫符合現場控制要求的程式,並透過執行環境實現控制。

這種低程式碼整合開發環境透過封裝隱藏諸如編譯器、協議棧和基礎控制演算法等實現細節,使工藝工程師們在多數情況下僅透過視覺化的“功能塊”和“配置對話方塊”等軟體功能元件,僅以拖拽“功能塊”、填寫“引數”等簡單的操作方式,即可編寫針對工藝控制的程式命令。

攻克工業軟體“卡脖子”技術,國產IEC61131-3可程式設計系統來襲

圖1:控制系統示意圖

屬性二它是可程式設計控制器的“作業系統”

業內人士還引入“作業系統”概念來說明IEC61131-3可程式設計系統軟體的戰略地位。可程式設計控制器是過程自動化、工廠自動化、農業自動化、樓宇自動化、能源自動化和交通自動化等領域的核心控制部件,IEC61131-3可程式設計系統之於可程式設計控制器,就相當於Windows作業系統之於電腦,Android作業系統之於手機,其所起的作用與作業系統一樣,管理著可程式設計控制器的硬體和軟體資源,並提供一個讓工程師與系統互動的操作介面,使操作者能夠便捷地完成自動化工藝邏輯設計。

這裡所指的“可程式設計控制器”是包含邊緣控制器、工控機、DCS控制站、PLC、運動控制器、機器人控制器、遠端I/O和車輛控制器等在內的廣義上的自動化控制器。

可程式設計控制器處於製造系統的現場控制層。工業製造系統結構一般分為五層,如圖2所示,由底至上分別是:現場裝置層,包含伺服、變頻器、感測器等產品;現場控制層,包含工控機、PLC、運動控制器、機器人控制器、DCS控制站等可程式設計控制器產品;過程監控層,主要產品是SCADA系統,系統中的可程式設計控制器是裝置或者工段的控制核心,SCADA透過採集可程式設計控制器的資料並向其分發控制指令,形成控制系統的資料中心;生產管理層,主要產品是MES系統,它以生產工人聽得懂的語言執行任務,如下多少單,每一單需要多少料等;企業決策層,如ERP、SCM、CRM等系統。

攻克工業軟體“卡脖子”技術,國產IEC61131-3可程式設計系統來襲

圖2:工業製造系統金字塔五層架構

其中,現場控制層(核心產品是可程式設計控制器)主要承擔對現場的邏輯控制、運動控制、資料通訊和視覺分析等任務,是製造系統各層之間實現資料互聯互通的重要橋樑。可程式設計控制器作為現場控制層的“大腦”,是透過IEC61131-3可程式設計系統完成各項控制工作的。所以,IEC61131-3可程式設計系統軟體又被比作控制層“大腦”的“作業系統”,是控制領域中佔絕對核心地位的基礎軟體。

國產化可程式設計系統為何會一直缺失?

當前國內的各種可程式設計控制器大多采用國外的IEC61131-3可程式設計系統軟體產品,如德國3S的CODESYS和德國KW(已被菲尼克斯電氣收購)的MultiProg。據估計,中國市場上有超過60%的自動化控制裝置生產商都是CODESYS的使用者,並且這家德企的軟體業務每年仍保持高速增長。而國產的IEC61131-3可程式設計系統軟體卻鳳毛麟角,鮮有商業化產品,更別提分一杯美羹。

為什麼這麼多年國內一直沒有成功商業化的自主IEC61131-3可程式設計系統軟體呢?究其原因,打破國外IEC61131-3可程式設計系統在我國壟斷的局面存在以下難點:

1

技術門檻高

IEC61131-3可程式設計系統實質上是整合開發環境,其核心是編譯器,而編譯器在計算機技術領域被業界公認為是與作業系統並稱難度等級極高的產品。

2

跨學科性強

IEC61131-3可程式設計系統軟體是計算機技術中難度極高的編譯器和自動化控制領域應用結合的產品,單純從事計算機技術的企業不懂自動化控制,缺少控制領域的專業人才;而從事自動化控制的企業,計算機技術又相對較弱,缺少計算機技術專業人才。這種跨學科性導致IEC61131-3可程式設計系統的開發門檻很高,有能力開發計算機編譯器的軟體研發人員大多數不懂工業控制,工業控制領域內能夠進行計算機編譯器開發的工程師也少之又少。

3

隊伍組建難

我國自動化控制核心技術發展較晚,直接相關的核心技術開發人員大概在2000年初才開始出現,培養和儲備的相關人才幾乎全部集中在一線城市。鑑於前述IEC61131-3可程式設計系統的技術門檻很高,需要長時間聚集這些一線城市的專業人員來進行開發,這對企業的人力投資決策也構成一定挑戰,特別是業務種類繁多的企業,很難在短期績效考核目標的體系下維養一支專攻遠期戰略目標的隊伍。

4

市場推廣難

一方面,有能力做出產品的技術型人才不一定具備開拓客戶的能力,哪怕面對的是一片“藍海”,他們也無從下手;另一方面,即使將優秀的國產產品放到使用者面前,使用者對未經大量應用的產品仍心存疑慮,會擔心國產產品不夠完善。

國內IEC61131-3可程式設計系統開發現狀

目前,開發國產IEC61131-3可程式設計系統的潛在力量主要來自於三方面。“第一方面力量”是高校和研究所,國內部分高校、研究所宣稱有自主開發的IEC61131-3可程式設計系統,並宣稱在自有控制器上做了適配,但高校、研究所受自身科研定位的侷限,與真正的商業應用較遠,甚至是與產業脫節。

“第二方面力量”是從事可程式設計控制器研製的廠家,這部分廠家大致又可細分為兩類,一類是自主控制技術較為領先的大廠,這類廠家已在一定程度上實現控制系統的國產化,但其為自有控制器配套的IEC61131-3可程式設計系統,僅本著“夠用就行”“配套自有產品即可”的原則而開發,並不追求IEC61131-3可程式設計系統本身的功能完善,也沒有向外輸出自己開發能力的意願。因此,這類大廠的IEC61131-3可程式設計系統無法直接用以提高整個中國IEC61131-3可程式設計系統軟體的水平。另一類是自動化控制技術發展沒那麼快、更偏重現場硬體產品供應的廠商,這類廠家的小型PLC基本用上了自研的可程式設計系統,但其系統多采用執行效率較低的解釋型技術、不夠豐富靈活的程式語言和非標籤化的變數組態方式,制約了其自主系統在中大型PLC產品上的應用,因此,這類廠家的中大型PLC及運動控制器產品開發仍要靠購買國外IEC61131-3可程式設計系統來實現。

“第三方面力量”是無控制技術基因的其他領域廠商,比如網際網路和通訊行業也有想進入控制技術領域的企業,但由於這類企業不懂控制,不懂工業現場的實際需求,導致其系統軟體無法適用於要求嚴苛、“真刀真槍”的工業現場,其產品也最終淪為指令碼程式設計工具,根本無法做到對現場的實際控制。

行業黑馬:一款商業化國產IEC61131-3可程式設計系統來襲

和其他高技術領域一樣,再多的困難也阻擋不了國產化的程序。儘管IEC61131-3可程式設計系統國產化舉步維艱,但一款由北京奧特思技術有限公司開發的IEC61131-3可程式設計系統的釋出或將改變國內沒有成熟商業化產品的窘況。

這款名為AnyControl的產品,是由一個有著豐富技術積累的優秀創業團隊開發。該創業團隊的發起人張海偉及核心成員,全部任職過國內一線控制技術公司並至少全程參與過一次類似產品的開發工作,他們不僅具備高水平技術能力,還擁有豐富的開發類似產品的直接經驗,同時深入理解產品的實際應用。而且該公司採用合夥人制度,每一位團隊成員都有強烈意願——做一件有意義且有前途的事情,這種志同道合使得少之又少的跨專業人才得以聚集。

IEC61131-3可程式設計系統市場被國外企業壟斷已久,一些本土自動化廠商其實早已下決心發展自主可控產品,以便在任何時刻都不被國外產品的變化因素所幹擾。這讓該創業團隊的市場推廣工作不再如之前預想的那般艱難。出於共贏目的,這些客戶與創業團隊一起測試產品,一起規劃功能,使得這款國產化IEC61131-3可程式設計系統一上市即實現了從開發成功到應用交付的零過渡,成為國產IEC61131-3可程式設計系統領域的一匹黑馬。

據悉,該創業團隊已經獲得典型行業大客戶的訂單,並按計劃交付了產品。截至目前,該IEC61131-3可程式設計系統已成功應用在中國科學院某自動化研究所的機器人控制平臺產品、某央企集團在一特殊工業領域的DCS控制系統和深圳某上市公司的PLC和運動控制器產品上。

攻克工業軟體一個重要的“卡脖子”點

國內廣義可程式設計控制器的市場總量動輒幾百億,其中狹義的PLC、DCS市場分別超過了百億,相關產品應用面極廣,涉及眾多關係到國計民生的關鍵行業,在控制領域佔絕對核心 地位的IEC61131-3可程式設計系統的戰略重要性不言而喻。對於量級如此巨大且需要穩健發展的市場,本土IEC61131-3可程式設計系統提供商長期缺位,勢必會給整個行業埋下嚴重的安全隱患。

這款商業化IEC61131-3可程式設計系統的上市標誌著本土團隊成功解鎖了在工業軟體中佔有重要地位的一個“卡脖子”點。自此之後,大部分國內自動化領域使用者在採用德國CODESYS等軟體之外,有了一個全新的選擇——由本土專業團隊開發的IEC61131-3可程式設計系統軟體,並且該系統可以完全適配國產作業系統和處理器晶片,不懼“斷供”,可控程度達到百分之百。

IEC61131-3可程式設計系統適用的產品範圍很廣,所適用的產品(廣義上的可程式設計控制器)在計算機控制領域中起著關鍵作用,是系統裡最核心的自動化控制部件,這些核心部件往往控制著國計民生相關的關鍵系統,比如對軍工、能源(核電、火電)、化工、軌道交通、重型裝備等系統的控制。所以,作為這些核心部件“作業系統”的IEC61131-3可程式設計系統應與這些核心部件本身一樣實現自主開發、安全可控,其國產化程序已刻不容緩。

該創業團隊開發的這款IEC61131-3可程式設計系統軟體主要由整合開發環境(IDE)和執行時軟體(Runtime)兩部分組成。

從整合開發環境的開發工具鏈端看,該系統是基於開源工具鏈進行開發,開發工具鏈的原始碼是開源的,即在開發軟體工具這個環節不會出現受制於人的情況;從整合開發環境的執行端看,整合開發環境可跨作業系統和處理器平臺執行,可以運行於Windows、Linux、麒麟等作業系統,支援在X86、ARM和龍芯等處理器平臺上執行;從執行時軟體(嵌入式軟體)端看,這款IEC61131-3可程式設計系統的執行時軟體採用標準C語言編寫,可以很好地適配各種作業系統和處理器平臺,也不涉及被限制的問題。

這款產品做到了系統開發工具鏈端、整合開發環境執行端、執行時軟體端“三端”可控,除去開源部分的程式碼,該系統整合開發環境和執行時軟體程式碼100%由張海偉創業團隊自主編寫,確保該系統的方方面面都不受制於人,且可以執行在各種作業系統和晶片處理器上,包括國產的作業系統和國產處理器晶片。

對標全球領先的IEC61131-3可程式設計系統

張海偉創業團隊的目標是要全方位對標全球領先的IEC61131-3可程式設計系統,為全球使用者提供先進的邏輯控制、運動控制、資料通訊及視覺分析等技術的全自動化軟體解決方案。張海偉表示,“競品有的功能我們產品要有,對手設定技術壁壘不提供的產品服務我們也會提供。我們每一位成員改變原有生活工作軌跡,掙脫曾束縛我們的條條框框,為的就是順應我們共同的心聲——開發出一款真正商業化的國產IEC61131-3可程式設計系統,並依託該產品發出代表國內技術水準的強音。”

奔著這個目標,張海偉創業團隊開發出了系統功能完善,同時符合自動化現場控制的IEC61131-3可程式設計系統,作為新一代開放式控制平臺,該系統具有圖3所示的功能特點。

攻克工業軟體“卡脖子”技術,國產IEC61131-3可程式設計系統來襲

圖3:AnyControl IEC61131-3可程式設計系統特點

突破點1

:支援IEC61131-3國際標準描述的五種程式語言。包括:LD、FBD/CFC、ST、SFC和IL。為了兼顧使用者使用習慣,其中LD語言還同時支援歐系和日系兩種程式設計風格。程式語言豐富與否關係到控制器能否駕馭各種不同場景下的現場裝置,因為自動化控制領域的需求非常多樣,控制需求的異構性非常強,過去PLC未普及之時,現場多樣性的需求只能靠專用控制器來滿足,首先這導致為單一場景打造的控制器成本奇高,且由於高度定製化的專用控制器僅與某一類控制場景匹配,其通用化程度必然很低,日後很難量產;其次,本應專注於工藝控制的自動化工程師還要投入精力研究專用控制器的設計製造;再次,對使用者而言,獨有的專用控制器一旦應用於現場,後期換型將異常困難,這是各個行業都普遍存在的情況。那麼為了使可程式設計控制器的適用範圍更加廣泛,其支援的程式語言就要足夠豐富,以便有能力與現場“說著”不同“母語”的各種場景、各種裝置實現“同頻溝通”,這是IEC61131-3可程式設計系統支援五種標準程式語言的內在原因。

突破點2

:支援高階語言C/C++擴充套件。不同語言在不同的應用場景各有擅長,例如,繼電器邏輯控制場景一般習慣用梯形圖語言,因為梯形圖語言與繼電器連線組網很相似;而到了編寫複雜演算法時,則需要高階語言。當前述五種標準程式語言在某些場景下無法擴充套件使用者想要的功能時,該系統還支援使用者編寫C/C++程式碼整合到執行時系統,或者引入第三方成熟的C/C++語言演算法(比如視覺和人工智慧等演算法),來擴充套件IEC61131-3標準程式語言的適用範圍。

突破點3

:支援多核與多工排程。即支援處理器多核任務分配和基於優先順序的多工排程,多工型別包括週期任務、自由執行任務、時間觸發任務和中斷任務。

突破點4

:支援靈活的資料組織方式。系統支援標準的資料型別,支援使用者自定義陣列、結構體、列舉和功能塊;另外,支援指標型別,方便工程師組態更為靈活的應用程式。

突破點5

:可整合多種標準通訊協議以及遵循PLCopen標準的運動控制功能。通用匯流排協議包括Modbus RTU、Modbus TCP、CANopen、EtherCAT、Ethernet/IP、OPC UA等。

突破點6

:採用編譯型的程式碼生成技術。編譯型技術是將使用者邏輯直接編譯成可執行的二進位制機器碼,較之解釋型技術,編譯型技術的使用者程式執行效率更高,大約是傳統解釋型技術的10倍。解釋型技術的劣勢在邏輯簡單的小型PLC應用上還體現得不明顯,當應用在中大型PLC,甚至運動控制器等對計算能力要求較高的控制器上時,其劣勢就非常明顯了。這也是前文所述國內廠商的小型PLC尚可採用自己的系統,但開發中大型PLC及運動控制器時則別無他途,只能購買國外軟體的原因。

突破點7

:支援線上“無擾”修改邏輯。可以線上動態修改使用者邏輯,並且對現場控制流程無擾動。

突破點8

:程式編輯和除錯手段豐富。支援模擬、圖形及文字語言的斷點除錯、任務狀態資訊檢視、呼叫棧檢視、交叉引用檢視、線上變數讀寫、監視列表、變數趨勢檢視、未定義變數自動宣告、輸入智慧識別和日誌記錄等功能。

國產化擔起我國工業自主可控重任

自動化控制產品(可程式設計控制器)是智慧製造裝備的重要組成部分,是發展先進製造技術和實現製造業自動化、數字化、網路化和智慧化的關鍵支撐,是實現產業結構最佳化升級的重要基礎。

在當前複雜嚴峻的國內外形勢下,加快攻克重要領域“卡脖子”技術,有效突破產業瓶頸,牢牢把握創新發展主動權,是我國經濟發展的一項重要政策。

在此浪潮下,作為自動化控制層“作業系統”,國產IEC61131-3可程式設計系統更要當仁不讓,主動挑起“核心技術”和“基礎軟體”應有的擔當,為市場上絕大多數基於IEC61131-3標準開發的自動化控制器產品,提供自主可控、便捷高效的統一軟體開發平臺,為促成新一代資訊科技與製造業的深度融合和創新整合,以及資訊科技(IT)與運營技術(OT)的真正融合貢獻“一己之力”和“一技之長”。

張海偉創業團隊這款IEC61131-3可程式設計系統的上市,讓我們看到了壟斷堅冰融化的曙光,但我們猜得中開始,卻不一定猜得中結局。原因就在於“作業系統”平臺級軟體帶給使用者使用習慣的慣性和在役在售產品開發一致性的約束能否被創業團隊與工控行業使用者聯手擊破,唯願在自主可控、創新引領的新時代,會有更多像AnyControl這樣攻克“卡脖子”點的產品不斷誕生,並透過和國外產品的激烈競爭逐漸發展壯大,成為我國工業軟體領域的國產化擔當。 (本文作者:弓示月)