上世紀90年代美國密歇根大學機械學院有位博士寫了一篇評述自PLC問世以來出現(xiàn)的四五十種用于PLC編程語言的文章,時至今日,除了IEC61131-3所規(guī)范的5種語言應用廣泛,以及GRAFCET作為IEC60848國際標準和在美國還有一種流程圖(flowchart)語言還有應用之外,其余的幾乎蕩然無存。
為了較好地了解這一發(fā)展過程,我們不妨回顧一下圖1所描述的進程。J. H. Christensen是 IEC61131-3標準工作組的主要技術負責人,也是IEC61499標準工作組的第一任主席,他見證了PLC編程語言及其國際標準的開發(fā)過程。他在很多年前給出的這張圖一目了然地表達了PLC標準和編程語言標準的關鍵發(fā)展歷程:1970年美國的電器制造商協(xié)會NEMA成立了可編程控制器委員會,開始制定PLC的標準。
1977年法國和德國分別推出PLC編程語言的標準GRAFCET和Din 40719功能圖。1978年NEMA ICS-3-304可編程控制器標準問世,是PLC電磁兼容性標準最早的來源。1980年德國的可編程控制器標準Din 19 239公布。1992年IEC1131-3可編程控制器編程語言標準最終文本完成,1994年更名為IEC61131-3。
圖1PLC編程語言標準的發(fā)展歷程(1970-1996)
(圖源:James H. Christensen)
梯形圖編程伴隨PLC誕生
在20世紀70年代早期,美國率先用可編程邏輯控制器(PLC)替代硬接線繼電器邏輯電路。梯形圖(LD)編程的發(fā)展提高了行業(yè)的接受度,因為圖形化程序圖允許受過很少培訓或沒有受過LD編程培訓的電工只要遵循每個梯級的邏輯流程,就可以像電氣控制原理圖那樣易于理解,還可以借此用于故障排除。在倡導和推廣梯形圖編程語言上,被譽為PLC之父的Dick Morley同樣也是功不可沒。
那時,程序設計人員通常會手工繪制梯形邏輯圖,然后將梯形圖轉換成一個包含指令和變量的列表。將命令輸入到PLC內(nèi)存中的實際編程語言稱為指令表(IL)或語句表(ST L),IL語言與PC編程中使用的匯編語言非常相似。接著控制程序將通過數(shù)字鍵盤輸入控制器的內(nèi)存。由此可見,PLC的硬件一誕生,其編程語言和編程方法也隨之款款而行。
20世紀70年代后期,市場上出現(xiàn)了價格低廉的微處理器,個人電腦(PC)應運而生。PLC制造商也利用這些微處理器來開發(fā)圖形編程設備。這些設備使用常開和常閉觸點、輸出線圈、計時器、計數(shù)器和其他數(shù)據(jù)操作和移動指令的圖形表示,把梯形邏輯程序輸入PLC。
那時的編程終端的用途單一,只能與同一制造商的PLC控制器配套使用,而且大中小型的PLC都有其對應的手持式編程器。隨后也出現(xiàn)了一種專用的圖形式編程終端,配有鍵盤和軟盤驅動器,可通過不同的編程口適配器對大中小型的PLC進行編程。與現(xiàn)代在的筆記本電腦相比,那時的編程終端體積大,也很昂貴,其價格甚至是當時PC機的好幾倍。
在20世紀80年代,出現(xiàn)了在PC機上運行的PLC的編程軟件。有趣的是,這些軟件大部分是由美國的Taylor software、ICOM等第三方公司推出的,而不是PLC制造商自己研發(fā)的。之后那些開發(fā)PLC編程軟件的公司有的被PLC制造商收購,改變了重點,不再是為市場中的各色PLC提供編程軟件,而是只為一家有實力的PLC廠商服務;有的倒閉了,不再以原來的形式存在。但是許多來自舊軟件的原始概念和方法仍然存在于當前的產(chǎn)品中。
一些原始的PLC軟件編程包可以與多個硬件平臺一起工作,從而在不同的制造商之間形成一致的外觀和感覺。這個早期基于DOS操作系統(tǒng)的軟件的文檔和報告功能遠遠優(yōu)于昂貴的OEM編程終端所提供的功能。PLC制造商認識到第三方軟件產(chǎn)品的成功,并開始開發(fā)和銷售具有競爭力的產(chǎn)品。
結果,這些第三方軟件供應商多次易手。Taylor Software被Total Control Products收購,后者后來被GE Fanuc收購。施耐德電氣還收購了包括由Taylor Software 開發(fā)的編程軟件包在內(nèi)的Modicon PLC全部硬件和軟件資產(chǎn)。ICOM編程軟件成為羅克韋爾軟件的一部分。
國際標準IEC61131-3橫空出世
除了相對廉價的個人電腦和為個人電腦編寫的PLC編程軟件的出現(xiàn)外,20世紀80年代出現(xiàn)了另一個重大發(fā)展,也是PLC歷史上最重要的里程碑之一,即1982年國際電工委員啟動了IEC61131-3規(guī)范的開發(fā)。
由于在美國、歐洲和日本等PLC編程語言呈現(xiàn)多樣化,如美國流行梯形邏輯圖語言、德國偏愛功能圖語言、法國的PLC編程語言標準推薦GRAFCET(SFC順序功能圖的前身),以及日本常用指令表語言等,在制定標準的過程中需要獲得眾多PLC生產(chǎn)商的支持,就必須采取求同存異、相互補充,而不是相互排斥的原則。顯然折衷和平衡是一個比較漫長的協(xié)商過程,但最終還是得到令人滿意、各方都能接受的結果。
為了彌補傳統(tǒng)PLC在復雜數(shù)據(jù)和復雜控制算法編程處理結構化缺失的短板,還專門開發(fā)了一種類似PASCAL語言的結構化文本的語言。在制定編程語言國際標準的過程中,大量的吸取現(xiàn)代軟件概念(例如結構化、模塊化、程序的可復用性等)和軟件工程技術的方法(例如軟件統(tǒng)一開發(fā)過程、面向對象的方法等),也有力的推動了標準編程語言的發(fā)展。
從標準制定的啟動到1993年作為IEC1131國際可編程控制器標準正式推出,歷時11年。今天,大多數(shù)主要PLC制造商都在提供符合IEC61131-3規(guī)范的軟件開發(fā)平臺。而且IEC61131-3是迄今為止工業(yè)界唯一的工業(yè)控制編程語言標準,還被DCS、SCADA、PC控制(軟PLC)等系統(tǒng)廣泛采納,成為事實上的工業(yè)控制編程語言的通用標準。隨著分布式控制系統(tǒng)的強烈需求,在2005年IEC又開發(fā)了IEC61499,作為IEC61131-3的補充和擴展,于今也活躍在開放自動化的前沿,這是后話了。
正如IEC61131-3標準所指出的,它的部分內(nèi)容是“為每一種最常用的編程語言定義主要的應用領域、語法和語義規(guī)則,簡單但完整的編程元素的基本集合,適用的測試和方法,制造商可以擴展或調(diào)整這些基本集,以實現(xiàn)他們自己的可編程控制器。”同時為了兼容,一個PLC編程包必須至少支持LD(梯形圖語言)、ST(結構文本語言)、FBD(功能塊圖語言)、IL(指令表語言)和SFC(順序功能圖語言)這五種語言中的一種。
IEC61131-3標準非常重要,因為它為符合該標準的所有軟件產(chǎn)品帶來了一致性。例如,一個標準IEC定義的函數(shù)在一個品牌為x的PLC運行的結果與在另一個品牌y的PLC是相同的。這種標準化一個有價值的結果是,無論什么集成開發(fā)環(huán)境(IDE),只要有相同的定義輸入和輸出,函數(shù)和功能塊看起來都是一樣的。因此,工程師或維護人員可以快速理解任何制造商軟件的邏輯和程序流程。
IEC61131-3定義了標準數(shù)據(jù)類型、命名約定、程序流程和其他各種編程元素。當PLC的OEM聲明其編程軟件符合IEC61131-3時,這通常意味著該軟件符合該標準的部分內(nèi)容。
PLC制造商和用戶也可以添加自定義擴展,功能塊和數(shù)據(jù)類型的標準。這實際上造成即使這些平臺符合IEC61131-3標準,項目在平臺之間的無縫移植也不太現(xiàn)實。2019年在PLCopen開發(fā)的XML的IEC61131-3方案(schemes)的基礎上推出了IEC61131-10,定義了XML文件交換格式,為跨平臺轉移項目提供了可能。
目前支持IEC61131-3的編程平臺有:德國的CoDeSys和Multiprog;美國的ISaGRAF和COPA-DATA公司的Zenon Logic;意大利Axel公司的LogicLab等。國內(nèi)近些年也有代碼完全自主化的北京奧特思技術有限公司的商品化軟件AnyControl問世。
自1993年頒布第一版,IEC61131-3標準于2003年頒布第二版,2013年頒布第三版。基本上是每十年發(fā)布一個新的修訂版本。
編程語言不可能是一成不變的,隨著科技和工業(yè)的發(fā)展它會不斷改善和進步。不過作為國際工業(yè)標準,需要有一定年限的穩(wěn)定期。這兩者之間必須有一個平衡。為適應數(shù)字控制技術的發(fā)展,使編程語言能夠適用于PLC、DCS、FCS、運動控制、機器安全及SCADA等工業(yè)控制領域的應用,特別是智能制造、工業(yè)4.0的大力推進,需要不斷努力和完善有關編程語言標準。
第三版是第二版的改進和擴展。考慮到現(xiàn)代編程環(huán)境在很多情況下都涉及到面向對象編程,包括Python、c++、Delphi、Java等,第三版的重要改進是面向對象特性的集成,包括類以及方法和接口、功能塊的面向對象編程(OOP)特性和命名空間等。這些使編程語言進一步完善了功能和結構等概念,能夠讓PLC代充分吸取多年來在采用高級別面向對象語言的軟件開發(fā)中經(jīng)過驗證的概念和最佳實踐。
正是這些概念產(chǎn)生了更易讀、更模塊化、最終更可維護的代碼。此外,通過讓PLC軟件的開發(fā)變得更加現(xiàn)代和類似于上述高度分布式語言,可能會吸引一大批軟件工程師進入PLC開發(fā)領域,最終使PLC代碼可以在企業(yè)軟件組合中占有重要地位。
與第2版相比,這些OOP擴展有一些更改或新的定義。例如,一個原來定義為函數(shù)、功能塊或程序的程序組織單元,被擴展為包括一個新的類別“類”。功能塊和類可以包含方法。此外,它們是可繼承的,從而分別引出基型、導出功能塊和導出類的概念。
下面列出了最重要的新定義:
目前IEC61131-3第四版的修訂工作正在進行中。一個可能較大的變化是如何規(guī)范與IEC61499的互補和結合,以適應工業(yè)技術發(fā)展對編程語言的要求。
自動化套件標志PLC綜合開發(fā)平臺的發(fā)展
為了更好的滿足工業(yè)市場的要求,繼PLC編程軟件廣泛應用以后,推出了自動化套件或統(tǒng)一的綜合開發(fā)平臺,為套件/平臺所支持的軟件產(chǎn)品提供一個共享的開發(fā)接口。這樣工業(yè)自動化的用戶可以在一個集成開發(fā)環(huán)境下對多個產(chǎn)品系列(如PLC、HMI和運動控制器等)的應用軟件進行開發(fā),而無需像以前那樣,對同一個控制對象的不同控制功能要啟動不同的軟件包才能完成應用軟件的編制或組態(tài)。
不過有些自動化套件包很少或沒有程序之間的集成,只不過是啟動獨立軟件的包裝器wrapper)或適配器(adapter),提供對異構對象或服務對象的透明訪問,將請求或所要求的響應從一個交互接口轉換成另一個接口,但在一個軟件包中輸入的每個數(shù)據(jù)點都需要從第一個程序復制或導出/導入到另一個程序中。
真正集成的自動化套件軟件作為一個單獨的包開發(fā),可以顯著減少程序編制人員的工作量。這種集成開發(fā)環(huán)境從定義PLC項目開始,程序員可以添加其他要支持的設備(如伺服控制器或安全控制器),軟件自動創(chuàng)建所添加設備采用的PLC生成的標簽,以及所添加設備自行生成的標簽。在創(chuàng)建新標簽時,軟件會自動創(chuàng)建通信路徑和數(shù)據(jù)類型定義。
應該注意的是,如果使用隨PLC硬件產(chǎn)品配套的軟件包是不支持其他制造商的產(chǎn)品。當制造商停止支持某些設備的單個軟件時,需要購買高價的軟件包來支持廉價的控制產(chǎn)品。
也有一類相對通用的自動化套件,支持工業(yè)PC實現(xiàn)軟PLC和嵌入式系統(tǒng)構建客制化的PLC。譬如意大利的Axel套件(Axel Automation Suite)包括一個完整的軟件產(chǎn)品系列:LogicLab(PLC的開發(fā)環(huán)境,支持IEC61131-3標準的5種語言和C語言),LogicView(用于工業(yè)PC的HMI開發(fā)環(huán)境),PageLab(用于嵌入式系統(tǒng)的HMI開發(fā)環(huán)境),SoftTune全客制化的多設備組態(tài)工具,RunTimes Components(各種開發(fā)好供用戶選用的實時操作系統(tǒng)、現(xiàn)場總線、OPC UA等組件,可加載到客戶的設備程序中),SoftScope(全客制化的供調(diào)試用的軟件示波器)等。
新的Axel自動化套件3.2.8已投放市場,而且增添了一些新的性能,如開源的工業(yè)OSCAT算法庫,PLCopen Motion庫,以及MQTT引擎的實現(xiàn)等。
自動化軟件在不斷發(fā)展。它當然比早期的在DOS操作系統(tǒng)環(huán)境下的軟件產(chǎn)品做得更好更多。現(xiàn)在,當自動化工程師熟悉了一個品牌自動化套件或開發(fā)平臺,即使轉換到另一個品牌也可以很快適應,而不用經(jīng)歷一個較長的學習過程。這也可看成是標準化的一個直接作用。
IEC61131-3推動了PLC軟件的巨大進步
IEC61131-3推動PLC在軟件方面的進步,體現(xiàn)在:
編程的標準化,促進了工控編程從語言到工具性平臺的開放;同時為工控程序在不同硬件平臺間的移植創(chuàng)造了前提條件。
為控制系統(tǒng)創(chuàng)立統(tǒng)一的工程應用軟環(huán)境,打下堅實基礎。從應用工程程序設計的管理,到提供邏輯和順序控制、過程控制、批量控制、運動控制、傳動、人機界面等統(tǒng)一的設計平臺,以至于將調(diào)試、投運和投產(chǎn)后的維護等,統(tǒng)統(tǒng)納入統(tǒng)一的工程平臺。
應用程序的自動生成工具和仿真工具。
為適應工業(yè)4.0和智能制造的軟件需求,IEC61131-3的第3版將面向對象的編程OOP納入標準。
之前已開發(fā)了許多為PLC控制系統(tǒng)工程設計、編程和運行,以至于管理的工具性軟件。其中包括PLC編程軟件包、人機界面和SCADA軟件包、程序調(diào)試仿真軟件,以及自動化維護軟件等等。盡管這些軟件都是為具體的工程服務的,但是,即使在對同一對象進行控制設計和監(jiān)控,它們卻都互不關聯(lián)。
不同的控制需求(如邏輯和順序控制、運動控制、過程控制等)要用不同的開發(fā)軟件;在不同的工作階段(如編程組態(tài)、仿真調(diào)試、維護管理等)又要用不同的軟件。而且往往在使用不同的軟件時必需自行定義標簽變量(tags),而定義變量的規(guī)則又往往存在較大的隨意性,導致對同一物理對象的相同控制變量不能做到統(tǒng)一的、一致的命名。缺乏公用的數(shù)據(jù)庫和統(tǒng)一的變量命名規(guī)則,造成在使用不同軟件時不得不進行繁瑣的變量轉換,重復勞動導致人力資源成本高、效率低下。
編程語言標準的推廣工作也是一項十分重要的工作,必須在一個非贏利的國際組織的全面規(guī)劃和安排下,積極推廣,才能使標準深入到各種應用中,充分發(fā)揮其開功能。PLCopen就是這樣一個矢志不移的國際組織。
其最主要的成果之一就是構筑工控編程軟件包的開發(fā)環(huán)境;同時,還在這些編程系統(tǒng)的基礎上進一步發(fā)展為統(tǒng)一工程平臺,作了許多基礎性的開創(chuàng)工作;開展了編程系統(tǒng)符合IEC標準的認證工作;制定了運動控制功能庫,在IEC的開發(fā)環(huán)境里加入了運動控制技術,將PLC和運動控制的功能組合在控制軟件的編制中;為實現(xiàn)IEC61131-3編程與其它環(huán)節(jié)間的數(shù)據(jù)交換,規(guī)范了XML格式作為數(shù)據(jù)交換的接口,2019年這個規(guī)范被IEC進一步開發(fā)為IEC61131-10,對PLC程序的交互采用形式化描述的方法,使符合標準的平臺不但在編程語言保持一致,而且在標準語言基礎上編制的程序也可能跨平臺實現(xiàn)共享,這樣便完成了對PLC編程語言層面的關注上升為對描述層面的關注;定義了在IEC61131-3的開發(fā)環(huán)境下涉及安全的規(guī)范;公布了《PLC性能的基準測試方法》,通過所定義的測試概要,以一種客觀的方式,為尋求評估不同PLC平臺真實性能提供了規(guī)范化的方法。
近些年來PLCopen又陸續(xù)推出若干技術文檔,如《代碼編制指南》(coding Guideline),《創(chuàng)建符合PLCopen標準的程序庫》(Creating PLCopen Compliant Libraries),《用SFC進行結構化》(Structuring with SFC -does & donts),《面向對象編程指南》(Guidelines for Object Oriented Programming)等。
在《面相對象編程指南》中展示了如何將“經(jīng)典”程序轉換為面向對象程序的方法,指出:當以面向對象的方式設計應用程序和庫時,要區(qū)分模塊和命令。模塊代表自動化應用程序的一部分,包括它們的軟件功能,也可以根據(jù)需要分層嵌套。例如機器的角色、傳感器或組件組合可以用“模塊”在代碼中表示。每個模塊都實現(xiàn)一個通用的IModule接口。
一些模塊還實現(xiàn)了一個更專門的接口。例如,提供軸功能的模塊正在實現(xiàn)一個IAxis接口。命令表示模塊的具體操作。它被分配給一個模塊或一組實現(xiàn)相同接口的模塊。每個命令將實現(xiàn)一個通用的iccommand接口,并將遵循符合PLCopen功能塊的設計準則。與軸相關的命令提供一個IAxis類型的輸入,以獲取它們將操作的相關軸實例的引用。有了這種結構,就有可能將模塊和命令在面向對象編程時和諧地結合在一起。
長期以來PLCopen國際組織還注重于許多國際標準化組織和基金會(譬如ISA、OPC基金會等)合作,開發(fā)了基礎性的規(guī)范,以建立一種開放標準的生態(tài)系統(tǒng)(見圖2)。這些工作都為為智能制造和工業(yè)4.0的應用和發(fā)展,做了好些先導性的探索和準備,從而打下了堅實的基礎。譬如與OPC基金會合作開發(fā)的:IEC61131-3的信息模型(2010.5發(fā)布),IEC61131-3 的OPC UA Client FB客戶端功能塊(2015.3發(fā)布),IEC61131-3的OPC UA Server FB服務端功能塊(2015.3發(fā)布)。
這些規(guī)范經(jīng)美國ISA屬下的OMAC的二次開發(fā),已經(jīng)成功的應用于專為包裝行業(yè)系列標準PackML中,大大簡化了包裝機械與上位生產(chǎn)管理系統(tǒng)的通信。此外,PLCopen還積極與參與美國開放集團(The Open Group)經(jīng)管的開放流程自動化論壇OPAF,為新一代的開放自動化系統(tǒng)制定系列標準O-PAS做出了應有的努力(圖3)。新一代開放自動化系統(tǒng)的顯著特征是徹底擺脫了原有DCS和PLC硬件和軟件捆綁的枷鎖,采用行之有效的工業(yè)自動化領域的國際標準和IT領域的實際上的標準和規(guī)范,構建具有互操作性、內(nèi)生信息安全、軟硬解耦的分布式控制系統(tǒng)。
圖2 PLCopen與ISA、OPC基金會合作開發(fā)智能制造基礎標準
工業(yè)互聯(lián)網(wǎng)、工業(yè)物聯(lián)網(wǎng)、工業(yè)4.0和智慧工廠的應用,如今正在快速推進和實現(xiàn)。
開放的PLCopen規(guī)范和標準改善了自動化控制系統(tǒng)的設備可互操作性;運用基于IEC61131-3的OPC UA Server FB服務端功能塊,將簡化了由傳智能感器、控制器與企業(yè)管理系統(tǒng)和生產(chǎn)調(diào)度執(zhí)行系統(tǒng)通信,與云端通信以及與互聯(lián)網(wǎng)通信。
圖3開放自動化趨勢正在重塑DCS和PLC
在配合工業(yè)4.0的參考架構模型(RAMI4.0)方面,PLCopen認為它此前開發(fā)的各種規(guī)范都很適配RAMI4.0的要求,需要做的是開發(fā)PLCopen相關技術功能如何在資產(chǎn)管理殼AAS實現(xiàn)。例如在圖4中表述的機械裝置AAS,其中運用PLC控制的子模型固件,就是在應用PLCopen制定的各種規(guī)范的基礎上由系統(tǒng)集成商按照機械裝置的技術要求和工藝要求編制的應用程序。目前在歐洲工業(yè)界普遍接受AAS是工業(yè)資產(chǎn)的一種標準化的數(shù)字孿生的理念。為了能夠存取AAS中的這些功能,并能提供給在控制器中運行的應用程序使用,PLCopen定義了一組功能塊。
這樣,程序編制人員便可以用一種協(xié)調(diào)的方式存取相關的信息。此外,PLCopen正在編寫一份文件,通過PLCopen OPC UA組態(tài)文件展示PLCopen和PackML的集成。遵循應用程序開發(fā)的基本規(guī)則,以一種協(xié)調(diào)的方式與機器進行接口,并基于OMAC PackML狀態(tài)機、模式和Packtags(PackML定義的交換數(shù)據(jù)的標簽)集成生產(chǎn)線中的機器,由于采用標準化的方式集成,操作將變得很容易,有手到擒來的功效。通過結合OPC UA瀏覽功能,用戶甚至可以搜索新的功能,并更容易地將它們添加為新的應用程序的基礎(圖5)。
圖4 PLCopen正在開發(fā)PLCoen相關技術功能的AAS實現(xiàn)
圖5 通過PLCopen OPC UA組態(tài)文件展示PLCopen和PackML的集成
審核編輯:劉清
-
plc
+關注
關注
5016文章
13385瀏覽量
464836 -
可編程控制器
+關注
關注
6文章
537瀏覽量
38898 -
編程語言
+關注
關注
10文章
1950瀏覽量
34906
原文標題:彭瑜:PLC編程語言和平臺的演變發(fā)展
文章出處:【微信號:gkongbbs,微信公眾號:工控論壇】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論