深入發(fā)掘PLC順序功能圖語言SFC的潛力_第1頁
深入發(fā)掘PLC順序功能圖語言SFC的潛力_第2頁
深入發(fā)掘PLC順序功能圖語言SFC的潛力_第3頁
深入發(fā)掘PLC順序功能圖語言SFC的潛力_第4頁
深入發(fā)掘PLC順序功能圖語言SFC的潛力_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

軟件結構化和模塊化的主要前提條件

軟件的結構化和模塊化意味著軟件是按照一定的規(guī)則將按結構劃分/功能劃分的單元(即模塊)進行弱耦合,而這些單元或模塊是完全遵循獨立開發(fā)和獨立測試的原則進行的。構成軟件結構化和模塊化的主要前提條件是進行周密的設計和遵循相關的標準。所謂進行周密的設計就是要增加設計階段在整個開發(fā)過程中的權重;只有在清晰定義控制程序的結構和定義模塊之間的相互關系之后才著手開始程序的開發(fā)。所謂遵循相關標準的含義是,充分挖掘IEC61131-3規(guī)范的編程語言的潛在能力,在設計和開發(fā)階段加以利用,因為這些工控編程語言足足可以滿足編程人員的絕大部分的需要。當然隨著編程平臺和集成開發(fā)環(huán)境的提升和進步,目前還引入了IT領域流行的語言如C、C++、JAVA、Python等作為加強及補充。之所以特別強調設計的重要,是因為良好準確的軟件設計規(guī)范強烈地影響所開發(fā)的軟件的質量。一般而言,軟件的設計規(guī)范書對每一個編程人員的影響可以用代碼的正確性和執(zhí)行效率來衡量。即使是沒有經(jīng)驗和技巧的編程人員所造成的可能的缺陷,雖然會對系統(tǒng)的運行產生影響,但也可以在調試中予以消減甚至消除。然而一個設計得有問題的軟件規(guī)范書交給有經(jīng)驗的編程人員,很難找到那些不完善或者錯誤的分析所造成的問題,并確定問題具體表現(xiàn)在哪些程序段,因而很難運用編程技巧來避免和消除??傊?,在軟件設計階段所產生的后果將涉及以下各個方面:調試困難和耗費時間,很低的重復使用率,軟件客制化的難度加大,以及阻礙軟件進一步擴展等。另外,從軟件開發(fā)的成本的角度看,如果消除代碼的bug所耗費的時間和成本為1,那么消除一個設計不完善的問題其耗費的時間和成本將會是10倍,甚而要把這一問題隔離開來并找到解決方法可能會再高一個數(shù)量級,也就是100倍了。至于為什么要遵循IEC61131-3的國際標準就不必多言了。我們需要研究的是,在開發(fā)PLC的應用程序的整個過程中,這個標準所規(guī)范的編程語言應該如何分工,各司其職,才能收到良好的效果。

SFC兼具PLC系統(tǒng)行為描述的作用

PLC的控制程序的開發(fā)一般可劃分為三個階段,即分析、設計和寫代碼。在IEC61131-3標準中并沒有規(guī)定在PLC軟件開發(fā)生命周期的哪個階段一定要使用哪種語言。我們必須自行去了解在這5種語言中哪一種最適合于支持軟件開發(fā)的初始關鍵階段,而哪些語言適用于寫程序代碼的階段。從結構化的完整性和表達的能力這兩個準則來觀察,明顯可見SFC處于高端的級別,可以用作設計系統(tǒng)控制軟件的主要工具。SFC所表達的模塊化是結構性的模塊化,區(qū)別于功能塊圖語言FBD所表達的功能性的模塊化。功能性的模塊化雖然重要,但在PLC控制程序的開發(fā)過程中,難以從工藝控制的完整性的視角來分析如何通過結構化來實現(xiàn)模塊化。因為在PLC軟件開發(fā)生命周期的初始關鍵階段,最重要的是分析控制的構成結構,導出每個構成單元都是整個完整結構中的一個獨立組成單位(也即是模塊),每個獨立的組成單元具有各自的功能性,但相互之間的關系卻是弱耦合,而非強耦合。由此可見SFC最適合于按軟件工程的方法進行分析和設計,而其它4種語言,還有SFC語言本身,都可用于寫程序代碼的階段。由于結構文本化語言ST類似于C語言和Pascal語言,結構化的表達能力遠勝于FBD和LD,適于對各種算法特別是復雜算法進行編程。而梯形圖語言LD因為歷史的原因在電氣自動化控制領域已經(jīng)形成為一種技術文化傳承,有著很深的應用基礎,所以在以SFC為主線的程序結構中適合用于動作塊和轉移條件的編程。如何應用,則視具體情況而定。圖1給出了5種語言在PLC軟件設計個階段中所處的級別和作用。

圖1

5種語言在PLC軟件設計中的作用為什么推薦采用SFC作為設計系統(tǒng)控制的主要工具,而其他的語言則用在控制軟件代碼開發(fā)階段,主要是因為SFC適用于多狀態(tài)操作運行的場景,而且特別容易表達多狀態(tài)操作運行的場景。而SFC所具有的獨特優(yōu)勢在于它能夠把大型復雜的過程分解為許多較小的易于了解、便于操作的過程。具體分析如下:1)表達控制要求的超強能力;2)圖形表達的形式方法:3)支持初步設計;4)支持詳細設計;5)與其它編程語言的天然連接;6)支持軟件的分段執(zhí)行01表達控制要求的超強能力

SFC順序功能圖語言有效繼承了法國PLC編程語言標準Grafcet的精髓,在表達的潛力方面與狀態(tài)圖無異,而在針對并行或并發(fā)問題上又吸收了Petri網(wǎng)優(yōu)勢。正因為狀態(tài)圖和Petri網(wǎng)被認為在建模的動態(tài)過程方面是最合適的工具,同時又被擴展到各個領域,因此SFC語言在本質上就具有對系統(tǒng)的行為建模的強大能力。02圖形表達的形式方法SFC不僅是IEC61131-3標準規(guī)范的圖形化的語言,而且在與同樣是標準所規(guī)范的另外兩種圖形化語言LD和FBD相比,在描述和表達系統(tǒng)的動態(tài)過程的能力方面顯然居于更高的級別。進一步說,SFC語言的圖形化的語法容易學習掌握和使用,也是優(yōu)勢之一。實際使用的經(jīng)驗表明,對同一個工藝要求和控制過程,不同的編程人員編制出來程序具有高度的一致性,至少是大同小異,或者完全一樣,這也表明用SFC語言編制的程序可讀性很強03支持初步設計

在設計的初始階段,當許多方面尚未清晰,或者設計人員還未深入了解之前,仍可以用SFC的圖形方法進行系統(tǒng)行為的形式表達,因此可以說SFC在初步設計階段就是一種有價值的工具。運用SFC能夠避免在用自然語言描述系統(tǒng)規(guī)范時可能出現(xiàn)的模糊不清,這樣就可以大大減少客戶、設計者和編程人員之間的相互不理解的次數(shù)。04支持詳細設計

在設計的早期階段運用SFC得出的方案,可以在取得新的信息之后逐漸深化,由概略進一步細化,尤其是與狀態(tài)步關聯(lián)的動作塊可進一步細化,使之成為新的嵌套的SFC方案。依此方法一步步地深入,直到得到所希望的詳細深度。不論是在初步設計階段還是在詳細設計階段,這種在語義和語法上的連貫性,對編程人員來講,采用SFC語言是很順手的。05與其它編程語言的天然連接

明顯可見SFC非常適合于IEC61131-3標準規(guī)范的其它編程語言組合使用,特別是在詳細描述控制細節(jié)(如轉移條件和基本的動作)時采用梯形圖LD或ST語言,既可以收到提高整體的編程效率的效果,又可以提升可執(zhí)行代碼的性能。這就是所謂“在正確的時刻或正確的編程過程中視具體情況選擇正確的編程語言”的結果。06支持軟件的分段執(zhí)行

運用SFC語言可以簡便地處理按不同的掃描執(zhí)行周期將整個控制軟件分割為多個程序段,這為減少最大的掃描時間提供了先決條件。應該指出,在運用SFC語言表達程序段的分割時均表現(xiàn)為顯性,按執(zhí)行條件是否滿足來啟動不同程序段的執(zhí)行順序,這些執(zhí)行條件都是顯性條件,不存在隱含條件。

順序功能圖語言SFC概述

IEC61131-3標準中,順序功能表圖(SFC:SquenceFunctionChart)是作為編程語言的公用元素定義的。它是采用文字敘述和圖形符號相結合的方法描述順序控制系統(tǒng)的過程、功能和特性的一種編程方法。它既可作為文本類編程語言,也可作為圖形類編程語言,但通常將它歸為圖形類編程語言。因此,通常講IEC61131-3有三種圖形類編程語言。順序功能表圖(法文為GRADCET:GraphedeCommandeEtape-Transistion)最早由法國國家自動化促進會(ADEPA)提出。它針對順序控制系統(tǒng)的控制條件和過程,提出的一套表示邏輯控制功能的方法。由于該方法精確嚴密,簡單易學,有利于設計人員和其他專業(yè)人員設計意圖的溝通和交流,因此,該方法公布不久就被許多國家和國際電工委員會所接受,并制定了相應的國家標準和國際標準。IEC60848《用于順序功能表圖的GRAFCET規(guī)范語言》以及中國國標GB/T21654《順序功能表圖用GRAFCET規(guī)范語言》的頒布,為我國應用順序功能表圖編程語言提供了堅實理論基礎。繪制一個控制系統(tǒng)SFC表達的基礎是要確定該控制系統(tǒng)的邊界和順序功能表圖的范圍。通常,把一個控制系統(tǒng)分為施控系統(tǒng)和被控系統(tǒng)兩個相互依賴的部分。圖2表示施控系統(tǒng)和被控系統(tǒng)之間的關系。

圖2

控制系統(tǒng)的SFC表達舉例施控系統(tǒng)接受來自操作員、過程等信息,并向被控系統(tǒng)發(fā)出操作命令。被控系統(tǒng)包括執(zhí)行實際過程的操作設備,它接受來自施控系統(tǒng)的命令,并為施控系統(tǒng)提供反饋信息。圖中表示了這些系統(tǒng)順序功能表圖的界限。施控系統(tǒng)的輸入是操作員和可能的前級施控系統(tǒng)的命令及被控系統(tǒng)的反饋信息,它的輸出包括送到操作員的反饋信息,前級施控系統(tǒng)的輸出命令和送到被控系統(tǒng)的命令。被控系統(tǒng)的輸入是施控系統(tǒng)的輸出命令和輸入過程流程的參數(shù),它的輸出包括反饋到施控系統(tǒng)的信息、過程流程中執(zhí)行的動作,它使該流程具有所需的特性。施控系統(tǒng)的順序功能表圖描述控制設備的功能,由設計人員根據(jù)其對過程的了解來繪制,并作為詳細設計控制設備的基礎。被控系統(tǒng)的順序功能表圖描述操作設備的功能,由工程設計人員繪制,作為操作設備工程設計的基礎,它也用于繪制施控系統(tǒng)順序功能表圖。順序功能表圖只提供描述系統(tǒng)功能的原則和方法,不涉及系統(tǒng)所采用的具體技術,因此,用順序功能表圖可以描述控制系統(tǒng)的控制工程、功能和特性,可描述控制系統(tǒng)組成部分的技術特性而不必考慮具體的執(zhí)行過程。它適用于繪制電氣控制系統(tǒng)的順序功能表圖,也適用于繪制非電氣控制系統(tǒng)(如氣動、液動和機械的)的順序功能表圖。圖3顯示了數(shù)控機床的被控系統(tǒng)和施控系統(tǒng)。圖中,被控系統(tǒng)是機床,施控系統(tǒng)是數(shù)控裝置??刂葡到y(tǒng)用于將材料進行加工成為零件。

圖3數(shù)控機床的被控系統(tǒng)和施控系統(tǒng)示例SFC是一種按照自動控制的要求對Petre網(wǎng)方法加以適當簡化和改進的程序設計法。它數(shù)學基礎嚴格,嚴密精確;但又簡單易學。描述元素只有3種,即:步(step)、轉換(transition)和有向連線(orientedline)。表1是順序功能表圖編程語言的有關術語。圖4是SFC的典型的表述方式。由一系列順序相連的狀態(tài)描述順序控制的過程,對應每一個狀態(tài)有一個步序。由有向連線將前后各個狀態(tài)(步序)連接,僅當前一個狀態(tài)(活動步)執(zhí)行完成其規(guī)定的動作,且由當前狀態(tài)向排列在其后的狀態(tài)轉移的條件成立,才執(zhí)行有當前狀態(tài)向下一個狀態(tài)轉移,直到整個順序過程完成后即停止。表1順序功能表圖編程語言的術語術語英文名稱說明表圖Chart用圖形方式描述系統(tǒng)的行為,例如兩個或更多變量、操作或狀態(tài)之間的關系步Step定義系統(tǒng)順序部分狀態(tài)的GRAFCT語言元素,步分為活動步和非活動步轉換TransitionGRAFCT語言元素,指示在兩個步或多步之間活動的可能進展有向連線DirectedLink表示步之間進展的GRAFCT語言元素,將步連接到轉換,并將轉換連接到步動作Action表示輸出變量所進行活動與步有關的GRAFCT語言元素狀態(tài)Situation在給定時刻由GRAFCT描述,并由活動步表征的系統(tǒng)狀態(tài)的名稱轉換條件TransitionCondition用布爾表達式結果表示的與轉換有關的GRAFCT語言元素,轉換條件是與每個轉換有關的邏輯表達式

圖4SFC典型的表達方式

SFC結構化的優(yōu)勢

眾所周知IEC61131-3實現(xiàn)結構化分三個層次:①通過軟件模型表現(xiàn)了配置、資源、任務、程序組織單元的結構層次;②創(chuàng)建了結構文本化語言ST,為程序組織單元的結構化程序實現(xiàn),提供了文本化語言;③順序功能圖語言既為程序組織單元的結構化程序實現(xiàn),提供了圖形化語言;又為整個程序設計的各個階段提供了實現(xiàn)結構化設計的工具。SFC可以表述單一的順序過程,也可以表述各種復雜的順序過程,如循環(huán)的順序過程,具有可控終止的順序循環(huán)過程,具有分支的循環(huán)順序過程(見圖5),并行分支的順序過程,選擇性的分支順序過程,同步的并行分支順序過程(見圖6),在完成分支過程之后再行合并的順序過程,等等。總之通過靈活的使用跳轉(有向連線)和轉移條件,可以將各種操作狀態(tài)組成各種結構化的順序控制過程。

圖5具有分支的循環(huán)順序過程

圖6同步的并行分支順序過程SFC描述方法直觀,十分便于程序設計人員和工藝專業(yè)人員在設計階段進行溝通和交流。它特別便于用戶直接按工藝流程編制控制程序,不同的編程人員編的程序極少差異,提高了編程的正確性和程序的可讀性;用SFC表達控制內容時,實際工序與程序一一對應,一目了然;在控制工序發(fā)生異常時容易確認問題的所在,因而修改與維護均很方便。概括起來說,SFC具有結構化的屬性:其自頂向下的設計方法,以及可將步用作宏步,十分便于在初步設計時作為結構化的工具。進入詳細設計階段,再根據(jù)已明確的控制步驟和要求細節(jié),將宏步擴展為每個具體的步,列出轉換條件和與每一步相關聯(lián)的動作,控制程序就在這樣有條不紊的氛圍中完成。如果遇到相當復雜的控制問題,我們可以借助于有限狀態(tài)自動機的方法,畫出狀態(tài)圖,只要掌握了狀態(tài)圖與SFC語義的異同,由狀態(tài)圖轉換為SFC程序也是相當便捷的。

結束語

國際上SFC語言的使用已經(jīng)比較普遍。已經(jīng)在工業(yè)自動化領域獲得成功的PackML(PackingMachineLanguage),不僅在包裝行業(yè)獲得廣泛的認可和應用,而且還被作為集成架構的典型策略解決方案,為機械裝備的集成系統(tǒng)提供了建模的參照標準。PackML為包裝機械和生產線開發(fā)的編程語言,主要依據(jù)IEC61131-3的順序功能圖語言SFC,并定義了許多適合包裝工藝應用的功能塊,可用于SFC編程中的動作塊。2019年PLCopen國際組織和美國的網(wǎng)站聯(lián)合進行了了PLC用戶編程語言偏好的調查。用得最多的是結構化文本語言(40%

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論