0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

工業(yè)自動化編程語言演變的方向!

數(shù)字化企業(yè) ? 來源:數(shù)字化企業(yè) ? 2024-01-05 17:02 ? 次閱讀

工業(yè)自動控制系統(tǒng)所采用的編程語言不可能一成不變,總是環(huán)繞著服務對象的需求和應用場景的變化在演進。從上世紀的90年代至今,IEC 61131-3作為PLC、DCS和軟PLC事實上的國際工控編程語言標準,已是不爭的現(xiàn)實;IEC 61499作為IEC 61131-3的重要補充,尤其是作為分布式控制系統(tǒng)的建模語言標準,正在緊鑼密鼓地進入工控領域。

不過面對智能制造、工業(yè)互聯(lián)網和工業(yè)物聯(lián)網的迫切需求,以及IT/OT融合、工業(yè)大數(shù)據(jù)分析、人工智能等技術方法的深入落地,采用什么編程語言這一話題的討論,近兩年來在海外尤其北美自動化專業(yè)網站和雜志中屢見不鮮。歸結起來核心的兩個問題是:(1)IT領域的編程語言和OT領域的編程語言在工業(yè)自動化領域中如何體現(xiàn)融合;(2)IT領域的編程語言是否可能替代OT領域的編程語言。

問題從何而來?

我們先看問題是怎么提出的:

(1)最近在美國的一次技術會議上,ISA下屬automation.com網站的資深編輯與Arlen Nipper(Cirrus Link Solutions的首席技術官和MQTT的共同發(fā)明者)交談時,問及自動控制中編程語言的演變,請他對自動化和控制工程師目前使用的編程語言進行排序。他指出Python、Java和C系列語言(C、C++C#)是前三名。但他又澄清說,它們的流行并不以任何方式排斥其他編程語言。由于語法相似,Python和Java被認為是C語言家族的一部分,?C語言家族還包括Julia、Perl和許多其他語言。

(2)艾默生的Darrell Halterman在去年6月的《InTech》雜志上發(fā)表了一篇題為《面向邊緣的未來控制編程》的文章,指出:盡管可編程自動化控制器(PAC)的專用實時操作系統(tǒng)RTOS存在一些限制,不過也開始承擔了與邊緣相關的任務。在許多情況下,用戶有必要創(chuàng)建復雜的算法,諸如機器學習策略等,使用現(xiàn)代IT類型的語言如C++和Python在PC機或工業(yè) PC機上運行,與PAC一起工作。Halterman表示,用戶應該盡可能尋找包含開放編程、軟件和通信標準的產品組合。對于邊緣控制器需要它們可以使用C/ C++、Python和其他適用于機器學習和人工智能等應用的現(xiàn)代語言。

(3)在2022年10月美國《機器人和自動化新聞》網站刊出一篇題為《最流行的自動化編程語言》的文章。作者Mark Allinson指出,根據(jù)去年進行的調查,Python是開發(fā)自動化系統(tǒng)最受歡迎的語言。它的主要優(yōu)點是開源和自由,其高可讀性使得它相對容易上手。作者強烈鼓勵任何新企業(yè)使用Python作為其主要編程語言。文章中還提到了JavaScript、Java和C#在自動化和企業(yè)環(huán)境中也是很流行的編程語言。

(4)Python的領先地位在IEEE Spectrum最近發(fā)布的第十屆年度頂級編程語言排名中進一步得到印證。今年Python不僅在其排名中保持第一,而且還擴大了領先優(yōu)勢。Python日益增長的主導地位似乎主要是以犧牲更小、更專業(yè)的語言為代價的。它已經成為一門萬能的語言,甚至是某些領域(比如人工智能)中的語言大師,強大而廣泛的AI庫使它無處不在。

IEC 61131-3/IEC 61499處于何種境地?2019年PLCopen國際組織和美國automation.com網站聯(lián)合進行了PLC用戶編程偏好的調查??倲?shù)為200個響應者絕大部分來自北美和歐洲。調查的結果反映了PLC編程的趨勢,以及用戶對PLC編程軟件供應商的一些想法和意見。用戶喜歡用哪些編程語言的調查結果是:用得最多的是結構化文本語言,其次是梯形圖,再次是功能塊圖,第四是順序功能圖,其它編程語言位居最后,在其它編程語言中用的最多的是C/C++語言。從用戶這些語言偏好可以得出以下結論: (1)各種編程語言運用的差距并不大,沒有特別多的,即使居第一的結構化文本也不過比居于第五的其它語言多的有限。 (2)明顯可見,用戶對于面向對象的語言如結構化文本語言和C/C++語言更為青睞。這反映了在智能制造和工業(yè)互聯(lián)網的應用中面向對象的編程語言更能滿足用戶編程的需求。 (3)許多PLC的編程環(huán)境支持用C/C++語言編寫功能塊。 從2019年到2023年,在這不算太長的四年中,自動化和控制的編程語言卻有了明顯的變化,這反映出開放的、可互操作的編程標準正在OT中興起,這些標準試圖取代與特定工業(yè)硬件綁定的專有編程語言。在automation.com網站中曾經刊登過一篇文章《缺失的工業(yè)4.0/數(shù)字化鏈接——開放編程標準一致性與認證》中,作者Bill Lydon寫道:“IEC 61131-3的基本原理已被世界各地的自動化供應商廣泛采用。IEC 61131-3由PLCopen組織支持,通過特殊興趣小組、標準和認證擴展了標準。這些標準和認證包括運動控制、機械安全、OPC UA、XML數(shù)據(jù)交換和可重用性。由于IEC 61131可實現(xiàn)完整的任務結構,事件驅動和循環(huán)編程都可以完成?!?文章還指出,無論采用何種編程方法,“制造商和過程生產公司必須數(shù)字化,否則他們將與競爭對手形成戰(zhàn)略差距,使他們陷于巨大的競爭劣勢中?!睂崿F(xiàn)數(shù)字化首先需要一個標準化的公益組織以開放標準的形式來利用工業(yè)4.0和物聯(lián)網(IoT)的概念、技術和架構,供應商對開放互操作編程標準的遵從和認證將加速制造行業(yè)的數(shù)字化。可是由于缺乏對IEC 61131-3這樣的工業(yè)自動化編程標準的強一致性認證,從而導致工業(yè)自動化行業(yè)留下市場空白,“這塊空白很有可能會被外部搶占先機“。這是否意味著以IT為中心的語言(如Python)就是來自工業(yè)自動化領域的外部? 在這個領域內的人們也擔心這些IT式的解決方案永遠無法在工業(yè)自動化中發(fā)揮提綱挈領的作用,因為在這一重要關頭,需要的不僅僅是某種能夠表達人工智能和深度學習的簡明扼要的編程語言,而是一種沿襲工業(yè)自動化領域數(shù)十年積累的底層邏輯和行業(yè)共同遵循的規(guī)約習慣,并能夠進行系統(tǒng)建模和按需自動構造應用的編程語言體系。在這個意義上,IT和OT系統(tǒng)的融合意味著不再有所謂的派別。從梯形邏輯到Python,以及IEC 61131-3以及IEC 61499等其他版本的演變,只是說明了行業(yè)的發(fā)展需求和發(fā)展方向。只有將面向PLC、DCS、SCADA的工控編程語言和基于 PC的IT類型語言相互補充和融合,才能夠共同促進工業(yè)數(shù)字化轉型。

開放自動化系統(tǒng)對編程語言的要求 上海交大的戴文斌教授在介紹新一代工業(yè)開放自動化系統(tǒng)的定義時是這樣展開的:系統(tǒng)由開放的硬件、開放的軟件和開放的網絡三部分構成。開放的硬件就是可采用任意設備,并任意部署。我理解任意設備就是在軟件與硬件徹底解耦的前提下,任意滿足應用要求、具備一定算力的硬件都在選用之列。開放的網絡就是點對點的確定性通信,設備可靈活介入,可用零配置方式進行異構,確保最長延遲滿足系統(tǒng)要求。開放的軟件就是要實現(xiàn)按需自動構建應用的目標,具體地說就是面向工藝的設計,自動生成代碼,動態(tài)應用遷移升級等。這里只討論開放的軟件及其可采用的編程語言的問題。開放的軟件是在能應對工藝變化而自動生成代碼的軟件開發(fā)環(huán)境中開發(fā)的應用軟件。其軟件形態(tài)表現(xiàn)為面向工藝變化進行生成式構造,這有別于基于已知工藝的動態(tài)構造。開放自動化系統(tǒng)在其軟件的設計階段從可復用的模塊庫中選用模塊或自行開發(fā)可復用的模塊,將這些模塊連接成適用于一類工藝的工藝包,設置模塊參數(shù)后進行實例化。軟件自動構造的本質是將模塊化代碼按照架構組織成應用邏輯來提升軟件的復用性。為此需要使用一種建模語言來描述IT與OT融合的工藝流程,按照目前可以使用且已經成熟的工業(yè)標準來看,采用IEC 61499是一種合適的選擇,堪當按需自動構造應用的重任。開放自動控制系統(tǒng)的應用軟件呈現(xiàn)出高度的模塊化,其中包括數(shù)據(jù)采集處理、實時控制、運動控制、人機界面、機器視覺以及生產調度管理等功能塊(見圖1),不同功能塊的代碼可以采用最適合的常用于OT領域和IT領域的任意編程語言來編寫(見圖2)。IEC 61499由于具有抽象化的功能塊設計、軟件硬件解耦的結構、事件觸發(fā)的機制等特點,作為一種統(tǒng)管系統(tǒng)的建模語言足可以協(xié)調各種系統(tǒng)功能的執(zhí)行。

57264356-aba2-11ee-8b88-92fbcf53809c.png

圖1 IEC 61499堪當自動構造應用的重責 圖源:戴文斌《新一代工業(yè)開放自動化系統(tǒng)》

573a4cc0-aba2-11ee-8b88-92fbcf53809c.png

圖2 在IEC 61499統(tǒng)管下運用OT/IT領域中最合適的編程語言編寫功能塊 圖源:戴文斌《新一代工業(yè)開放自動化系統(tǒng)》

還有一種可選的技術路線是運用OPC UA和IEC 61131-3實現(xiàn)一套分布式的編程體系。用OPC UA的伙伴配套信息模型來描述工藝對象構造工藝模型,用IEC 61131-3的4種編程語言和C/C++來構造實現(xiàn)工藝控制的應用邏輯和設備間的通信。已經獲得成功應用的例子就是PackML,一種為包裝工藝而開發(fā)的集成開發(fā)環(huán)境。它完全可以無障礙地推廣到以順序控制為基礎的各種機械加工工藝的控制系統(tǒng)中,也在一定程度上符合開放自動化系統(tǒng)的開放硬件、開放軟件和開放網絡的要求。相對于IEC 61499來說,這條技術路線更符合工業(yè)自動化領域已經建立而且多年來行之有效的方法論。

關于工業(yè)邊緣計算的編程語言討論

工業(yè)邊緣計算設備的終極功能是感知和控制物理過程,運行本地程序,并與工業(yè)控制器、工廠運營系統(tǒng)、企業(yè)業(yè)務管理系統(tǒng)和云應用程序通信。其主要價值是就近在實際生產的地點捕獲實時數(shù)據(jù),執(zhí)行包括數(shù)據(jù)分析等在內的應用程序,以極低的延遲實現(xiàn)快速響應,和以低成本通信的方式傳遞大量制造基礎信息。顯然,這個角色在分布式制造架構中起著IT/OT融合的作用。為此加強和推進工業(yè)邊緣計算的設施和能力首先要從工業(yè)邊緣計算的編程語言來考慮??偟膩碇v,其編程語言和工具需要:

(1)確定性控制引擎必須支持IEC 61131-3標準和C語言,這是系統(tǒng)穩(wěn)定運行的基本保證。 (2)編程語言和工具靈活多樣,可以根據(jù)要求不同而變化,也就是不恪守單一的編程語言,而采用多樣化的編程標準,以及用戶定義的數(shù)據(jù)類型。包括使用C/ C++、Python和其他適用于機器學習和人工智能等應用程序的現(xiàn)代語言編程。 (3)同樣,功能塊也可以采用多樣化的編程語言標準,并可由用戶定義。 (4)能夠運行開源應用程序,如圖形化編程工具Node-RED和數(shù)據(jù)可視化工具Grafana,以及商業(yè)和定制應用程序。

工業(yè)邊緣控制系統(tǒng)應該支持面向對象的通信協(xié)議(如OPC UA),以實現(xiàn)在確定性控制程序和分析/決策應用程序之間無縫傳輸數(shù)據(jù);支持以OT為中心的通信協(xié)議,即IEC 1158所規(guī)范的通信協(xié)議,諸如Modbus、Profibus和Profinet等;還需要支持以IT為中心的通信協(xié)議,如MQTT和HTTPS。

此外,邊緣控制器的通用計算部分采用基于Linux操作系統(tǒng),便于邊緣控制器可以運行各種各樣的非實時計算和分析應用程序,還可以獨立于確定性控制部分啟動和升級。Linux是輕量級的高性能OS,與其它操作系統(tǒng)平臺相比需要更少的CPURAM的資源。用戶還可以利用預裝的工業(yè)邊緣平臺軟件加載數(shù)字化轉型項目所需的應用。

總之,具有這些特性的邊緣控制器是實現(xiàn)傳統(tǒng)確定性控制的同時充分利用現(xiàn)在和未來邊緣計算發(fā)展成果的最佳選擇。圖3是艾默生邊緣控制器ControlLogic的軟件框圖。

57537ab0-aba2-11ee-8b88-92fbcf53809c.png

圖3 艾默生邊緣控制器ControlLogic的軟件框圖

進一步探討OT/IT的編程及其關系 面向OT的編程是面向業(yè)務的編程,需要深入、系統(tǒng)地理解業(yè)務及其需求、特征、要求和約束。工業(yè)自動化編程的核心和立足點是工業(yè)自動化,其編程語言需要符合工業(yè)行業(yè)領域的理解和習慣。 IT編程語言發(fā)展很快,語言繁多,且各有特點和優(yōu)缺點。由于工業(yè)自動化仍然需在計算機底層硬件上運行并實現(xiàn)業(yè)務控制與目標,所以除了需要首先考慮工業(yè)自動化行業(yè)及具體場景的要求與特點而外,仍然需要面向計算機及IT的編程語言為工業(yè)自動化的業(yè)務目標實現(xiàn)提供支撐與發(fā)展。 OT/工業(yè)自動化行業(yè)、領域及場景,有自動化人的一整套的行業(yè)體系、架構、要求(比如確定性、對延時的要求與約束等等都是由業(yè)務的性能所決定)、習慣以及行業(yè)語言,構成了一種體系化的行業(yè)生態(tài)與配套工具及其實現(xiàn)機制,在這里IT中的編程語言、實現(xiàn)機制、協(xié)議等用來支撐對OT/工業(yè)自動化行業(yè)/領域的目標與要求,方便其開發(fā)和實現(xiàn)。對OT/工業(yè)自動控制這樣的行業(yè)、領域,由其自身的行業(yè)語言、習慣,需有行業(yè)自身的語義、信息模型,這樣的語義模型及語義定義、數(shù)據(jù)字典、狀態(tài)機、信息模型結構及其含義,是以OT/工業(yè)自動化行業(yè)視角下的抽象、設計并定義的,它不同于IT視角下的情況。雖然OT/工業(yè)自動化視角下的這些語義、信息模型,最終的實現(xiàn)仍然需要借助IT的編程語言與機制、工具來作為基礎支撐與實現(xiàn),但它的主要特點和屬性歸屬于OT/工業(yè)自動化的行業(yè)范疇,基于但又區(qū)別于IT行業(yè)的情況。 OT/工業(yè)自動化行業(yè)/領域有自身的特定標準、規(guī)范,這些標準、規(guī)范的設計、系統(tǒng)及配套工具,都是圍繞OT/工業(yè)自動化的行業(yè)要求來展開,這一整套的OT/工業(yè)自動化的林林總總,同樣需要一個“工業(yè)自動化操作系統(tǒng)OS”,這個OS不同于IT視角下的面向計算機底層硬件資源管理與調度的OS,而是針對并滿足服務于OT/工業(yè)自動化領域的行業(yè)操作系統(tǒng),它以滿足OT/工業(yè)自動化自身的行業(yè)要求和服務為著眼點和立足點,也是成體系化的。IT視角下的面向計算機硬件資源管理與調度控制的OS,是為OT/工業(yè)自動化行業(yè)行業(yè)OS提供管理與調度計算機硬件資源的底層運行環(huán)境。 工業(yè)自動化的發(fā)展歷程告訴我們,IT領域的編程語言難以全面替代OT領域的編程語言。IT/OT融合的趨勢應該表現(xiàn)為由OT領域中的一種建模語言來構筑框架,以便于主持其它編程語言在最合適的場合發(fā)揮其所長,而不是用某一種編程語言來排斥其它的編程語言。具體地說,在編程語言這一基礎領域,要體現(xiàn)IT/OT融合的趨勢,還是應該由OT領域的機構來主導。

結語和感謝

基于上述討論可以得到兩個結論: (1)新一代的控制系統(tǒng)需要一種集成的綜合開發(fā)環(huán)境,讓實時的和確定性的控制程序可以與非實時的數(shù)據(jù)分析、AI應用程序按需交換數(shù)據(jù),并協(xié)調運行于同一系統(tǒng)。因此OT領域的編程語言和IT領域的編程語言應該在編程運用中各司其職,各盡所長。但真正能進入確定性控制核心的編程語言仍然必須是OT領域的編程語言。 (2)盡管可以選用OT/IT領域中各種不同的編程語言為開放自動化系統(tǒng)編寫功能塊代碼,仍然需要一種系統(tǒng)建模語言或綜合開發(fā)環(huán)境將這些功能塊按工藝應用要求連接起來并能自動執(zhí)行,這不是任意一種編程語言能夠單獨承擔的任務。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 自動化
    +關注

    關注

    28

    文章

    5386

    瀏覽量

    78622
  • 編程語言
    +關注

    關注

    10

    文章

    1916

    瀏覽量

    34369
  • 工業(yè)自動化

    關注

    17

    文章

    2073

    瀏覽量

    67053

原文標題:工業(yè)自動化編程語言演變的方向!

文章出處:【微信號:數(shù)字化企業(yè),微信公眾號:數(shù)字化企業(yè)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    PLC的編程方式及編程語言

    工業(yè)自動化領域,PLC(Programmable Logic Controller,可編程邏輯控制器)因其強大的控制功能和靈活的編程方式而得到了廣泛應用。PLC的
    的頭像 發(fā)表于 06-27 14:08 ?409次閱讀

    工業(yè)自動化中的控制方式

    工業(yè)自動化是現(xiàn)代工業(yè)發(fā)展的重要標志,它極大地提高了生產效率,降低了生產成本,并改善了產品質量。在工業(yè)自動化中,控制方式作為實現(xiàn)
    的頭像 發(fā)表于 06-17 11:41 ?496次閱讀

    工業(yè)機器人、PLC與自動化之間的關系

    隨著科技的不斷進步和工業(yè)領域的快速發(fā)展,自動化已成為現(xiàn)代工業(yè)生產的重要趨勢。在這一進程中,工業(yè)機器人和PLC(可編程邏輯控制器)作為
    的頭像 發(fā)表于 06-17 11:10 ?768次閱讀

    PLC編程語言和C語言的區(qū)別

    工業(yè)自動化和計算機編程領域中,PLC(可編程邏輯控制器)編程語言和C
    的頭像 發(fā)表于 06-14 17:11 ?1566次閱讀

    工業(yè)自動化包含哪些技術領域

    自動化的核心,主要包括以下幾種: a. 可編程邏輯控制器(PLC):PLC是一種廣泛應用于工業(yè)自動化領域的控制設備,具有編程靈活、可靠性高、
    的頭像 發(fā)表于 06-11 11:26 ?585次閱讀

    工業(yè)自動化自動化區(qū)別是什么

    工業(yè)自動化自動化是兩個密切相關但又有所區(qū)別的概念。在這篇文章中,我們將詳細探討它們之間的區(qū)別,以及它們在現(xiàn)代工業(yè)生產中的應用。 一、自動化
    的頭像 發(fā)表于 06-11 11:13 ?1091次閱讀

    工業(yè)自動化包含哪些技術

    工業(yè)自動化是現(xiàn)代制造業(yè)中不可或缺的一部分,它通過使用各種技術和設備來提高生產效率、降低成本、提高產品質量和安全性。 一、工業(yè)自動化概述 工業(yè)
    的頭像 發(fā)表于 06-11 11:11 ?592次閱讀

    工業(yè)自動化控制系統(tǒng)裝置有哪些

    控制系統(tǒng)裝置的種類 可編程邏輯控制器(PLC) 可編程邏輯控制器(PLC)是一種專門用于工業(yè)控制的計算機,它具有高度的可靠性、靈活性和實時性。PLC廣泛應用于各種工業(yè)
    的頭像 發(fā)表于 06-11 10:59 ?1291次閱讀

    機器視覺檢測技術在工業(yè)自動化中的應用

    隨著科技的飛速發(fā)展,工業(yè)自動化已成為現(xiàn)代工業(yè)生產的核心動力。在這個背景下,機器視覺檢測技術作為工業(yè)自動化中的關鍵技術之一,以其高精度、高效率
    的頭像 發(fā)表于 06-07 12:06 ?585次閱讀

    PID控制器在工業(yè)自動化中的應用

    工業(yè)自動化領域中,控制器的應用至關重要,它直接決定了生產過程的穩(wěn)定性和效率。PID(比例-積分-微分)控制器作為工業(yè)自動化控制的核心組件之一,因其結構簡單、參數(shù)可調、適用性強等優(yōu)點,
    的頭像 發(fā)表于 06-05 16:24 ?1035次閱讀

    PLC網關工業(yè)自動化控制

    PLC網關工業(yè)自動化控制 PLC(Programmable Logic Controller,可編程邏輯控制器)網關在工業(yè)自動化控制領域中起
    的頭像 發(fā)表于 03-19 15:40 ?328次閱讀
    PLC網關<b class='flag-5'>工業(yè)</b><b class='flag-5'>自動化</b>控制

    工業(yè)自動化系統(tǒng)設計

    工業(yè)自動化系統(tǒng)設計是一項涉及多個領域和技術的綜合性任務。它旨在通過自動化設備和系統(tǒng)的集成,提高生產效率、降低能耗、確保產品質量和增強企業(yè)競爭力。 一、工業(yè)
    的頭像 發(fā)表于 02-02 17:00 ?543次閱讀
    <b class='flag-5'>工業(yè)</b><b class='flag-5'>自動化</b>系統(tǒng)設計

    工業(yè)自動化中的直流負載和交流負載的應用

    工業(yè)自動化中的直流負載和交流負載的應用 工業(yè)自動化是指利用各種自動化設備和技術,對工業(yè)生產過程進
    的頭像 發(fā)表于 01-18 15:12 ?480次閱讀

    淺析中國工業(yè)自動化與智能應用

    自動化驅動產品與智能操控系統(tǒng)主要用于工業(yè)自動化中的設備自動化領域,其中自動化驅動產品是實現(xiàn)設備單機自動化
    發(fā)表于 12-01 10:11 ?708次閱讀
    淺析中國<b class='flag-5'>工業(yè)</b><b class='flag-5'>自動化</b>與智能<b class='flag-5'>化</b>應用

    工業(yè)自動化系統(tǒng)中PLC數(shù)據(jù)采集網關有什么功能

    工業(yè)自動化是在不需要人工干預的情況下實現(xiàn)自動化生產和過程控制的系統(tǒng)。實現(xiàn)生產和過程控制自動化的裝置稱為自動化控制系統(tǒng),如可
    的頭像 發(fā)表于 11-09 17:26 ?454次閱讀
    <b class='flag-5'>工業(yè)</b><b class='flag-5'>自動化</b>系統(tǒng)中PLC數(shù)據(jù)采集網關有什么功能