ABLogix5000處理器SFC順序功能圖編程應用_第1頁
ABLogix5000處理器SFC順序功能圖編程應用_第2頁
ABLogix5000處理器SFC順序功能圖編程應用_第3頁
ABLogix5000處理器SFC順序功能圖編程應用_第4頁
ABLogix5000處理器SFC順序功能圖編程應用_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、AB Logix5000處理器 SFC順序功能圖編程應用江蘇華電戚墅堰發(fā)電有限公司 貢文明前言:本文從應用角度講述了Logix5000系統(tǒng)的SFC功能和實際應用方法與技巧,當面對一個復雜的順序控制時,采用SFC來實現(xiàn)邏輯控制是一個非常好的選擇。使用SFC來編寫順控程序速度并不會比使用梯形圖快很多,但調(diào)試要比使用梯形圖簡單和方便許多。由于Logix5000的SFC資料全為英文,并且相關(guān)的資料非常之少,給初次使用帶來了許多不便,使用SFC最重要的是需要了解SFC的的工作原理和一些常用的操作命令,如S,N,P等在各種PLC上他們均基本一致,符合國際標準的定義。本文根據(jù)個人使用經(jīng)驗對SFC各語法定義和

2、功能進行了詳細描述,對SFC Action功能采用了Basic腳本語言進行了描述。1SFC語言概述IEC61131-3 SFC語言規(guī)定將復雜的程序分割為較小的可管理的單元,并描述在這些單元之間的控制流。使用SFC語言,可以設(shè)計順序和并行過程。執(zhí)行這些單元的時序取決于靜態(tài)條件和動態(tài)條件。一步接著一步地處理生產(chǎn)過程的行為特性特別適用于SFC語言。SFC用步和轉(zhuǎn)換條件構(gòu)成程序段,步中通過定義操作實現(xiàn)對流程的操縱。通過轉(zhuǎn)換實現(xiàn)流程的按順序前進。1.1 步 (Step)步是控制流程中相對獨立的一組操作的集合。在步中可以定義任意數(shù)目的各種類型的操作,通過操作實現(xiàn)對流程的控制。一個步可以是激活狀態(tài)或不激活狀

3、態(tài)。步在緊接在前的轉(zhuǎn)換條件滿足時激活。步在緊接在后的轉(zhuǎn)換條件滿足時退出激活狀態(tài)。每個SFC程序有一個起始步,該步在第一次執(zhí)行時默認為激活狀態(tài),其余的非起始步默認為不激活狀態(tài)。步的上面只能接轉(zhuǎn)換、并行分支或選擇聚合。步的下面只能接轉(zhuǎn)換、并行聚合或選擇分支。步有兩種類型:起始步和普通步。起始步在程序剛啟動時就處于激活狀態(tài),然后程序?qū)凑辙D(zhuǎn)換條件的變化按照順序依次執(zhí)行。1.2 轉(zhuǎn)換條件 轉(zhuǎn)換是控制從一個步轉(zhuǎn)移到其他步的條件。當轉(zhuǎn)換條件滿足時,緊接在前的步從激活態(tài)變成不激活態(tài)。然后緊接在后的步將從不激活態(tài)轉(zhuǎn)變成激活態(tài)。只有當所有緊接在前的步的狀態(tài)都在激活狀態(tài)時,轉(zhuǎn)換條件才被測試。轉(zhuǎn)換條件由一個變量或一

4、個表達式來定義。轉(zhuǎn)換的上面只能接步、選擇分支、并行接合;轉(zhuǎn)換的下面只能接步、選擇聚合、并行分支、或跳轉(zhuǎn)分支。1.3 選擇分支選擇分支提供了在SFC程序中實現(xiàn)條件控制的控制流程選擇執(zhí)行的方法。在選擇分支結(jié)構(gòu)中只能有一個分支被激活。分支跳轉(zhuǎn)的優(yōu)先級從左到右。選擇分支和選擇聚合必須一一對應。選擇分支必須結(jié)束于同一選擇聚合。1.4 并行分支并行分支使流程中的幾個子流程同時進行。各分支的執(zhí)行同時進行,不相互影響。只有當所有的分支的最后一步都激活時,才測試并行聚合緊接的轉(zhuǎn)換的條件是否滿足。并行分支和并行聚合必須一一對應。1.5 操作(Action)操作是對系統(tǒng)變量進行的操縱的描述。一個步中可以有0個或多個

5、操作。操作有多種類型,操作類型由操作限定詞來描述。操作可以是一個位號變量,也可以是調(diào)用一個子程序。一個操作塊包含一個操作連同其執(zhí)行的條件(稱為動作限定詞)系統(tǒng)對步的激活和解除激活期間所有步的動作塊的執(zhí)行條件進行監(jiān)視。1.6 執(zhí)行順序一個SFC結(jié)構(gòu)的網(wǎng)絡(luò)分為一系列步和轉(zhuǎn)換。它們要循環(huán)地進行求值和執(zhí)行。一個步總是處于激活狀態(tài)或者不激活狀態(tài)。每一次循環(huán)對所有轉(zhuǎn)換的求值,其結(jié)果不是TRUE就是FALSE。待處理循環(huán)的活動步清單取決于這些步所依賴的轉(zhuǎn)換的計算值。在一個SFC網(wǎng)絡(luò)中所有指令的執(zhí)行依照以下算法進行調(diào)度。1.6.1 激活初始步(僅在第一次調(diào)用時),否則對其后繼轉(zhuǎn)換為TRUE的所有步解除激活,并

6、激活緊接這些轉(zhuǎn)換后的所有步。1.6.2 檢查所有動作控制的輸出。若剛檢測到一個TRUEFALSE邊沿,則最后一次執(zhí)行所關(guān)聯(lián)的動作。1.6.3 執(zhí)行其動作控制所求值為TRUE的所有操作。1.6.4 對轉(zhuǎn)換進行求值,并從步1開始繼續(xù)循環(huán)執(zhí)行。在SFC網(wǎng)絡(luò)中沒有顯性的終點。如果沒有后繼的轉(zhuǎn)換,則程序不會自動地返回到初始步,SFC程序?qū)⑼A粼谧詈笠粋€活動步。2Logix5000的SFC功能描述2.1 步(STEP)在RsLogix5000中的屬性狀態(tài)表示如下圖所示步變量是一個結(jié)構(gòu)體,結(jié)構(gòu)類型如下:x :激活指示,活動步的x為1 (True)dn:完成指示,步完成后為1(True)t :步運行的時間,單

7、位ms(在LOGIX5000系統(tǒng)中所有的時間單位均為ms)2.2 RSLOGIX5000提供以下幾個符合IEC1131-3標準的限定詞,即Action類型2.2.1 N:操作在步的整個激活期間激活,隨著步退出激活狀態(tài)恢復成不激活狀態(tài)。它在步激活期間執(zhí)行,我通常用它來指示畫面步運行時間其工作原理用 Basic語言描述如下:if (step.x) then/執(zhí)行你的代碼end_if;2.2.2 S:操作在步激活后將一直保持激活,與步的失去激活無關(guān)。用Basic語言描述就如下:if (step.x or step.dn) then/執(zhí)行你的代碼end_if;當然你如果僅僅需要在步活動期間執(zhí)行就可以在

8、S命令里面輸入if (step.x) then/執(zhí)行你的代碼end_if;如果僅僅需要在步完成以后執(zhí)行就可以在S命令里面輸入if (step.DN) then/執(zhí)行你的代碼end_if;由于SFC邏輯同樣是循環(huán)掃描原理工作,代碼會一直反復執(zhí)行。2.2.3 R:操作在步激活后將一直保持在不激活狀態(tài)。 此操作的作用是用于在當前步停止其它正在執(zhí)行的操作,如某步有個S操作,由于步退出后該操作仍然繼續(xù)在執(zhí)行,如果要讓它停止執(zhí)行,就可以使用R操作。2.2.4 L:操作在步激活后在限定的時間內(nèi)保持激活,超出時間恢復成不激活狀態(tài),若在此期間步失去激活,則該動作也變?yōu)椴患せ顮顟B(tài)。 該操作需要設(shè)置一個限制時間,單

9、位為ms。該功能的Basic語言描述如下:If (step.x and step.t<settime) then/工作代碼end_if;2.2.5 D:操作在步激活后經(jīng)過限定的時間后,變?yōu)榧せ顮顟B(tài),隨著步變成不激活狀態(tài),操作恢復成不激活。 該操作需要設(shè)置一個限制時間,單位為ms,如果在限定的時間內(nèi)步已經(jīng)變成不激活狀態(tài),則操作無效。該功能的Basic語言描述如下:If (step.x and step.t>settime) then/工作代碼end_if;2.2.6 P:操作在步激活后只激活執(zhí)行一次,失去激活后執(zhí)行一次,然后恢復成不激活狀態(tài)。 在步的狀態(tài)發(fā)生變化后執(zhí)行一。2.2.7

10、P0:操作在步從激活變成不激活的一個程序掃描周期激活,然后恢復成不激活狀態(tài)。2.2.8 P1:操作在步從不激活變成激活的一個程序掃描周期內(nèi)激活,然后恢復成不激活狀態(tài)。很有用,經(jīng)常被用來產(chǎn)生設(shè)備控制命令脈沖通常可以用來發(fā)送設(shè)備控制命令的脈沖該功能的Basic語言描述如下:if (step.x and step.t=0) then/你的代碼end_if;在N,S,L操作的命令內(nèi)輸入上面的程序可以實現(xiàn)P1相同的功能。2.2.9 DS:操作在步激活后維持限定的時間后,變?yōu)榧せ顮顟B(tài),并一直維持。如果步在維持限定時間內(nèi)變成不激活,則操作不激活。該功能的Basic語言描述如下:If (step.x and

11、step.t>settime) then Start = trueend_if;if (start) then/工作代碼end_if;2.2.10 SD:操作在步激活后經(jīng)過限定時間后,變?yōu)榧せ顮顟B(tài),并一直維持,與步的失去激活無關(guān)。If step.x then start=true該功能的Basic語言描述如下:If (start and step.t > settime) then/工作代碼end_if;2.2.11 SL:操作在步激活后在限定的時間內(nèi)保持激活,超出時間恢復成不激活狀態(tài),與步的失去激活無關(guān)。該功能的Basic語言描述如下:If step.x then start=t

12、rueIf (start and step.t < settime) then/工作代碼end_if;2.3 RsLogix5000中的步類型2.3.1 初始步 初始步時每個SFC邏輯必須的第一個步。 通常在初始中執(zhí)行順序流程的初始化操作。 初始步一但被執(zhí)行,該SFC邏輯便處于掃描執(zhí)行狀態(tài)。2.3.2 工作步 除初始步時以外的步均為工作步。2.3.3 結(jié)束標志 作為SFC邏輯的運行結(jié)束標志。 無任何操作功能,處理器執(zhí)行到該位置停止該SFC功能塊的繼續(xù)執(zhí)行。2.4 RsLogix5000 SFC邏輯控制方法2.4.1 掃描調(diào)用 采用JSR功能塊調(diào)用SFC子程序。2.4.2 重頭開始運行 使用SFR功能塊停止當前任何執(zhí)行工作,初始化SFC子程序,從初始步開始執(zhí)行。2.4.3 暫停運行 使用SFP的PAUSE功能暫停SFC子程序運行2.4.4 恢復運行 使用SFP的Execute(Continue)恢復暫停的SFC子程序繼續(xù)運行3SFC使用心得 SFC一般需要梯形圖或FDB邏輯的配合才能完成整個控制功能,通常使用梯形圖實現(xiàn)設(shè)備控制操作等邏輯處理功能,使用SFC實現(xiàn)順序控制功能,SFC最適合用來設(shè)計流程處理類邏輯(如化水程控系統(tǒng)中的反洗、再生等過程)。在處理復雜流程的時候,適當?shù)姆纸鈴碗s的操作步可以為調(diào)試工作減少時間。在可能需

溫馨提示

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

評論

0/150

提交評論