中控DCS圖形化組態(tài)編程-重要_第1頁
中控DCS圖形化組態(tài)編程-重要_第2頁
中控DCS圖形化組態(tài)編程-重要_第3頁
中控DCS圖形化組態(tài)編程-重要_第4頁
中控DCS圖形化組態(tài)編程-重要_第5頁
已閱讀5頁,還剩244頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一、圖形化軟件概述圖形化組態(tài)的作用?編寫自定義控制方案,如精餾、聯(lián)鎖反應、燃燒等四種編程語言梯形圖( LD ) 順控圖(SFC) 功能塊圖( FBD ) ST語言 方式1. 推薦方式:通過單擊組態(tài)軟件的算法,彈出自定義控制算法設置對話框, 點擊圖形編程中的“編輯”,啟動圖形化編程軟件;工程欄工程欄信息欄信息欄工具欄工具欄菜單菜單欄欄編輯區(qū)編輯區(qū)編譯成功提示編譯出錯提示狀態(tài)欄狀態(tài)欄 幫助二、圖形化編程基礎二、圖形化編程基礎 主要內(nèi)容:主要內(nèi)容:1. 工程、段落、區(qū)段2. 編程基本步驟3. 程序運行原理及執(zhí)行次序4. 工程管理5. 數(shù)據(jù)類型6. 變量7. 系統(tǒng)資源培訓什么? 工程、段落、區(qū)段工程S

2、Control用一個工程(Project)描述一個控制站的所有程序。每個工程唯一對應一個控制站,工程必須指定其對應的控制站地址。段落工程包含一個或多個段落(Section)。SControl通過任務管理來管理多個段落文件,在工程文件中保存配置信息 。段落是通常意義上的一個文檔,是組成工程的基本單位。新建段落時必須指定段落的編輯類型和程序類型。區(qū)段區(qū)段指在同一段落中有數(shù)據(jù)信號相連的元素的總和。一個段落可以包含一個或多個區(qū)段(SFC段落只有一個區(qū)段)。區(qū)段只是一個表示段落中元素間關系的概念,新建區(qū)段不會生成任何新文件。工程、段落和區(qū)段的關系工程段落區(qū)段組態(tài)文件說明軟件(產(chǎn)生文件) 文件擴展名文件說

3、明 SControl軟件 .PRJ 工程文件 .FBD FBD文件 .LAD LAD文件 .SFC SFC文件 .BIN 二進制代碼文件 .C 臨時文件 .H 臨時文件 .EXP.EXT模塊導出文件 文件保存路徑 一個組態(tài)的相關文件必須保存在正確的文件夾下,否則在組態(tài)中進行聯(lián)編時會出錯。1.段落文件須保存在工程文件夾下;2.工程文件與工程文件夾須保存在組態(tài)文件夾下的“Control”文件夾下;3.“Control”文件夾須保存在組態(tài)文件夾下。 編程基本步驟基本步驟1.建立圖形化組態(tài)工程工程并與系統(tǒng)組態(tài)軟件建立關聯(lián);2.根據(jù)控制方案的特點及需要選擇合適的編輯器在建好的工程中新建段落段落,在段落中

4、編寫程序編寫程序,編寫的過程中進行保存;3.程序編寫完畢后,通過編譯編譯檢查程序語法錯誤,修改程序至程序編譯無誤;4.將程序下載下載到主控卡,聯(lián)機調(diào)試調(diào)試程序,使程序運行時符合控制方案的要求;程序運行原理及執(zhí)行次序程序運行原理及執(zhí)行次序 圖形化自定義程序下載到控制站后,每隔一個運行周期運行一次。 控制站執(zhí)行程序時,先判斷段落的執(zhí)行次序 ,對于段落中的執(zhí)行次序,先判斷區(qū)段的執(zhí)行次序,然后再判斷區(qū)段中各個編程元素的執(zhí)行次序。 新建工程工程與組態(tài)關聯(lián)段落新建及保存按編輯類型可將段落分類為qFBD段落qLD段落qSFC段落qST語言段落 按程序類型分可將段落分類為:q程序段落q模塊段落程序類型和段類型

5、任務管理SControl以系統(tǒng)組態(tài)軟件中設置的控制周期為1Ts,即:如果在系統(tǒng)組態(tài)軟件的組態(tài)過程中設置了控制周期為0.1s,則1Ts = 0.1s.用戶還可通過操作“移到隊首”、“上移”、“下移”、“移到隊尾”等操作設置同一運行周期各程序運行的優(yōu)先級,即排在隊列靠前的同一運行周期程序比排在隊列靠后的程序優(yōu)先執(zhí)行。不同運行周期的程序之間的優(yōu)先級無法比較。 可以對每個段落設置密碼進行保護可以對每個段落設置密碼進行保護 只有當編輯界面打開后,才可以進行設置密碼和刪除密碼的操作只有當編輯界面打開后,才可以進行設置密碼和刪除密碼的操作。 練習請大家花5分鐘的時間:1、熟悉軟件界面 2、新建一個工程3、使

6、用不同的編輯器建立幾個段落4、改變段落的執(zhí)行周期5、調(diào)整段落的執(zhí)行次序數(shù)據(jù)類型q圖形化軟件提供的變量數(shù)據(jù)類型半浮點2字節(jié)數(shù)據(jù)類型編輯器qSControl內(nèi)置數(shù)據(jù)類型編輯器,用戶可以用數(shù)據(jù)類型編輯器生成自己的數(shù)據(jù)類型,并可以在任何編輯變量類型的地方使用。q系統(tǒng)內(nèi)已預定義了部分數(shù)據(jù)類型,這些數(shù)據(jù)類型只讀,用戶無法修改刪除。問題? 模擬量輸入信號數(shù)據(jù)類型? structAI 模擬量輸入信號的PV成員數(shù)據(jù)類型? SFLOAT 開關量輸入信號數(shù)據(jù)類型? structDI 開關量輸入信號的VAL成員數(shù)據(jù)類型? BOOL變量分類變量按結構分為:1. 基本變量:基本數(shù)據(jù)類型(如BOOL、SFLOAT、INT等

7、)構成的變量稱為基本變量。2. 復合變量:復合數(shù)據(jù)類型(如結構體、數(shù)組等)所對應的變量為復合變量。變量分類變量按作用范圍分為:1. 組態(tài)中定義的變量;2. 全局變量(“工程”菜單下“變量編輯器”中定義);3. 私有變量(“對象”菜單下“變量定義”中定義);4. 輸入變量與輸出變量(“對象”菜單下“變量定義”中定義);變量聲明變量作用范圍SCControl中可以使用的變量有四類:組態(tài)中定義的變量作用范圍:整個組態(tài),包括圖形化工程和SCX語言程序、操作組態(tài)全局變量作用范圍:整個圖形化工程,包括各個段落私有變量作用范圍:只在該段落起作用 輸入變量與輸出變量作用范圍:只在自定義段落起作用變量查找q根據(jù)

8、所查找目標數(shù)據(jù)源的分類(當前段、當前工程)進行變量、位號以及模塊的查詢。系統(tǒng)資源 位號 系統(tǒng)變量 單回路控制模塊單回路控制模塊 串級回路控制模塊串級回路控制模塊 冷熱啟動及下載組態(tài)標冷熱啟動及下載組態(tài)標志志模入量位號成員 開入量位號成員名稱類型說明VALBOOL測量值MANBOOL手自動切換開關OFF:自動;ON:手動MVALBOOL手動輸入信號值FLAGBOOL質量碼系統(tǒng)變量單回路控制模塊串級回路控制模塊串級回路控制模塊 冷熱啟動及下載組態(tài)標志 BOOL g_bHotStartup 熱啟動標志,熱啟動時為ON,需要編程清0; BOOL g_bColdStartup 冷啟動標志,冷啟動時為ON

9、,需要編程清0; g_bDownUsrPrgFlag 下載用戶程序標志,下載了用戶程序之后為ON, 需要編程清0; g_bDownCfgFlag 下載組態(tài)標志,下載了組態(tài)(包括硬件組態(tài)、用戶程序組態(tài))后為ON,需要編程清0。提問 需要在流程圖上顯示累積量,在哪里定義?1. 功能塊圖(FBD)概述2. 功能塊圖的程序結構和執(zhí)行次序3. FBD的編程元素 模塊庫介紹 常用模塊介紹4. 控制策略的FBD實現(xiàn) 5. FBD編程注意事項 培訓什么?主要內(nèi)容: FBD概述FBD是一種圖形化的編程語言FBD用功能和功能塊來構建控制策略FBD直觀、易于維護IEC61131-3標準定義了FBD編程語言要素功能塊

10、指包含內(nèi)部狀態(tài)的程序塊功能塊分為基本功能塊和自定義功能塊FFB都可用EN輸入和ENO輸出進行配置FFB由帶有輸入和輸出的圖形框來描述FBD概述EN和ENO(使能)EN是功能塊的缺省的第0號輸入。ENO是功能塊缺省的第0號輸出。可以隱藏EN和ENO引腳。如果當調(diào)用功能塊時EN值等于ON時,則由FFB定義的算法才被執(zhí)行。ENO = ENFBD段落:即一幅FBD圖FBD區(qū)段:有鏈路相連的元素的組合區(qū)段起始模塊:那些輸入只連接變量的模塊區(qū)段啟動模塊:位置最上的起始模塊一個FBD段落可以包含一個或多個FBD區(qū)段 FBD程序結構FBD執(zhí)行次序區(qū)段的執(zhí)行從啟動模塊開始。區(qū)段內(nèi)的執(zhí)行次序由區(qū)段內(nèi)的數(shù)據(jù)流決定。

11、段落中區(qū)段間的執(zhí)行次序由區(qū)段的啟動模塊的位置決定。執(zhí)行次序由上到下。執(zhí)行次序 FBD編輯器-組態(tài)元素選擇連接線取反最近選擇的功能塊功能塊選擇注釋文本調(diào)試文本跳轉按鈕FBD編輯器-IEC模塊庫算術運算模塊比較運算模塊轉換運算模塊計數(shù)器模塊邏輯模塊數(shù)學模塊選擇模塊定時器模塊觸發(fā)器模塊FBD編輯器-輔助模塊庫 控制模塊 通訊輔助模塊 累積模塊 輸入處理 系統(tǒng)模塊 文本代碼模塊 輔助計算 電量轉換 信號選擇模塊 浮點處理模塊 FBD編輯器-自定義模塊庫自定義模塊庫收集了當前工程所編輯的所有模塊。 FBD編輯器-附加庫附加庫主要包括一些特殊模塊、鍋爐模塊、造氣模塊、DEH模塊、智能通訊卡模塊供用戶使用注

12、:DEH模塊、智能通訊卡模塊只供ECS-100X系統(tǒng)使用。下面我們介紹幾個較常用的模塊,其他模塊的使用可以參考相應的幫助文檔。算術運算-ADD1. 在使用這個模塊的時候,要注意模塊的輸入、輸出變量的數(shù)據(jù)類型。2. 該模塊可以有多個輸入?yún)?shù),我們可以用鼠標拖動模塊下方的黑點來增加或減少輸入變量 。3. 可以通過點擊“顯示EN/ENO”隱藏EN/ENO引腳。4. 可以通過點擊“幫助”按鈕來查看該模塊的使用說明。 例1:求溫度TI101(量程0600)和TI102(量程0600)的平均值,并將 運算結果存放至自定義變量TT中。 算數(shù)運算-DIV 算數(shù)運算-DIV 除法運算時應注意其運算結果應在半浮點

13、數(shù)據(jù)類型的表示范圍內(nèi)。例:要求計算流量FI101(0500M3/h)和FI102(0600M3/h)的比值。 首先,新建浮點型變量BIZHI。 其次,圖形化編程如下: 算術運算-MOVE 算術運算-MOVE 這個模塊相當于賦值的功能。例如,我們將位號TI101的報警高限設定為0.9,則圖形化編程如下: 比較運算-GT 比較運算-GE 例如,當壓力PT101(010KPa)超過80%時要求打開電磁閥KO101。 參考程序如下:轉換運算SFLOAT_TO_FLOAT轉換運算SFLOAT_TO_FLOAT 例:求溫度TI101(0600)和TI102(0800)的平均值,并將計算結果存放到自定義變量

14、TT(0700)中。邏輯運算-AND邏輯運算-AND 例:要求當三個開關KI101、KI102和KI103都打開時(為ON)啟動電機KT101,否則關閉KT101。數(shù)學函數(shù)-ABS數(shù)學函數(shù)-ABS 例:要求當流量FT101(06000M3/h)超過或低于某個設定值的30%時產(chǎn)生報警(變量BJT=ON),該設定值為半浮點變量FF(06000M3/h)。選擇模塊-SEL選擇模塊-SEL 例:當操作員將開關(一字節(jié)變量KT)打至OFF時,選擇測點一(位號TI101)作為控制回路的輸入信號;當操作員將開關(一字節(jié)變量KT)打至ON時,選擇測點二(位號TI102)作為控制回路的輸入信號。選擇模塊-MAX

15、 選擇模塊-MAX 例:某裝置有3個溫度測點,分別為TI101(0600)、TI102(0600)、TI103(0600),要求將最高的溫度信號作為連鎖程序的判斷條件。當溫度超過其量程的90%時打開電磁閥KO101。TON定時器模塊 定時器的基準為控制周期,定時時間必須設置為運行周期的整數(shù)倍。例:某連鎖控制程序,要求當溫度TI105(01000) 超過600時打開電磁閥KO102。TOFF定時器模塊TOFF定時器模塊 注意,當延時時間到達之后輸出為OFF狀態(tài)。 定時器的基準為控制周期,定時時間必須設置為運行周期的整數(shù)倍。例:要求當電機KT101跳閘時(由ON變?yōu)镺FF),延時5秒種后點亮報警指

16、示燈TT。定時器-TP定時器-TP 該模塊用于產(chǎn)生持續(xù)時間一定的脈沖。定時器的基準為控制周期,定時時間必須設置為運行周期的整數(shù)倍。 例:請利用TP模塊制作一個自復位按鈕,要求當按下按鈕KT101后(即為ON)延時5秒種后將KT101復位(即為OFF)。RS觸發(fā)器模塊RS觸發(fā)器模塊RS模塊常用于連鎖程序的編制。 例:當水位LI101(0200mm)高于量程的60%時打開放水閥門KO101,但要求操作員可以按下手動開關(為ON時)強行將該閥門關閉(用自定義變量MT表示該軟手動開關)。 SR觸發(fā)器模塊報警模塊-AIALM報警模塊-AIALM 每個模擬量輸入位號都有自己的質量碼,主要用于位號的報警分析

17、,在圖形化組態(tài)中質量碼為WORD類型。 例:當溫度TE105超過高高限或低于低低限時將變量THL置為ON。 累積函數(shù)-TOTAL_ACCUM累積函數(shù)-TOTAL_ACCUM 例:有一流量信號FI101(0100M3/h),要求將該流量累積。 首先,我們定義一8字節(jié)累積量FQ101,量程100,單位M3,系數(shù)3600 其次,使用該模塊實現(xiàn)流量的累積。如下圖: 注:該模塊每秒鐘執(zhí)行一次,因此要求程序的執(zhí)行周期不大于0.5秒。 使用該模塊時必須保證流量信號的量程下限為0。累積函數(shù)-SUB_ACCUM累積函數(shù)-SUB_ACCUM 該模塊可用于累積量的清零。 例:將累積量FQ101清零。 參考程序如下:

18、單回路模塊-BSC 該模塊的功能是產(chǎn)生一個單回路PID控制。使用時與被控對象組成回路,以MV作為被控對象的輸入,以被控對象的輸出作為BSC模塊的輸入PV;并正確的設置模塊的內(nèi)部參數(shù),可使測量值PV穩(wěn)定地等于給定值。單回路模塊-BSCX注:BSCX是BSC模塊的擴展模塊,在BSC模塊的基礎上增加了該模塊的成員,便于用戶使用。 例:某單回路控制,回路輸入信號為溫度TI101(0600),回路輸出為調(diào)節(jié)閥FV101。 首先,聲明自定義單回路如下: 其次,進行圖形化編程如下:例:某連鎖控制,當壓力PT101(08KPa)超過5KPa時將回路PTC101強制切為手動?;芈稰TC101的輸入信號為PT10

19、1,輸出位號為PV101。 首先將工程值轉化成半浮點數(shù),5KPa對應的半浮點值為0.625。 其次進行自定義回路的聲明。文本代碼模塊-TEXTCODE 我們可以利用該模塊在功能塊圖編輯器或梯形圖編輯器中使用ST語言編輯器編寫文本代碼,使程序編制更為靈活。 ST語言的語法請參考ST編輯器。 雙擊該模塊,將彈出如下對話框,點擊“代碼”按鈕將彈出文本編輯器進行程序編制。控制策略的FBD實現(xiàn) 例1:某連鎖控制,要求當溫度TI101(0800)超過400時,全開冷水調(diào)節(jié)閥TV101;當溫度低于200時關閉冷水閥TV101。 例2:要求當操作員打開開關K101(為ON)時,開始對流量FT101(0600M

20、3/h)進行累積;當操作員關閉該開關(為OFF)時停止累積,并對累積量清零。 我們設置自定義8字節(jié)累積量FQ101,圖形化編程如下: 例3:某溫度控制單回路,回路輸入信號為溫度TI101(01000),回路輸出信號為調(diào)節(jié)閥TV101。正常工況下回路處于自動控制狀態(tài);當溫度高于900時回路轉到手動控制狀態(tài),由操作員手動控制,同時發(fā)出報警信號(使自定義變量MFT=ON)。注意事項! 對于編程的時候經(jīng)常出現(xiàn)的一些錯誤,你是否知道是怎么引起的?出現(xiàn)變量非法的提示?是否在變量定義的時候使用了非法字符?例如,PI-101;圖形化組態(tài)的時候不允許使用減號“-”,但是可以采用下劃線“_”注意事項!出現(xiàn)數(shù)據(jù)類型

21、不匹配的提示?輸入輸出引腳所連接的數(shù)據(jù)與功能塊所要求的數(shù)據(jù)類型不匹配?例如 主要內(nèi)容:主要內(nèi)容:1. 概念2. 觸點3. 線圈4. 垂直連接線5. 編程注意事項培訓什么?梯形圖概述梯形圖在原電器控制系統(tǒng)中的接觸器、繼電器梯形圖基礎上演變而來,與電氣操作原理相呼應,形象、直觀和實用。觸點和線圈來構建邏輯控制方案很容易將電氣聯(lián)鎖圖轉換為梯形圖程序聯(lián)鎖程序習慣使用梯形圖語言進行編輯 LD編輯器程序結構LD段落的設計對應于繼電器開關的梯級(rung)。圖形的左邊是匯流條,相應于梯級的相線,只有直接或間接與相線有開關量相連的元素在編程期間被“掃描”。右匯流條缺省不畫出,但可以認為所有的線圈和FFB開關量

22、輸出都接到右匯流條上,從而建立電流回路。 四個概念LD段落:即一幅LD圖,一個LD段落由若干個LD區(qū)段組成。LD區(qū)段:有鏈路相連的元素的組合。區(qū)段起始模塊:區(qū)段內(nèi)那些輸入只連接變量或左匯流條的模塊。 區(qū)段啟動模塊:區(qū)段中位置最上的起始模塊。 LD執(zhí)行次序區(qū)段的執(zhí)行從啟動模塊開始。區(qū)段內(nèi)的執(zhí)行次序由區(qū)段內(nèi)的數(shù)據(jù)流決定。LD段落中區(qū)段間的執(zhí)行次序由區(qū)段的啟動模塊在段落圖形中的位置決定。執(zhí)行次序由上到下。LD編輯器-組態(tài)元素常開觸點常閉觸點正跳變觸點負跳變觸點線圈取反線圈置位線圈復位線圈正跳變線圈負跳變線圈垂直連接線LD編輯器觸點認識認識SCCONTROLSCCONTROL的觸點:的觸點:觸點的特點

23、:觸點的特點:每一個觸點都有一個變量和它對應,觸點是在每一個觸點都有一個變量和它對應,觸點是在變量的控制下斷開或閉合。變量的控制下斷開或閉合。 變量變量觸點觸點LD編輯器觸點觸點分類:常開觸點常閉觸點正跳變觸點負跳變觸點LD編輯器觸點不同類型的觸點有什么區(qū)別?不同類型的觸點有什么區(qū)別?LD編輯器觸點假設觸點對應的變量為TEMP。 LD編輯器線圈認識認識SCCONTROLSCCONTROL的線圈:的線圈:線圈的特點:線圈的特點:每一個線圈都有一個變量和它對應,線圈的得每一個線圈都有一個變量和它對應,線圈的得電狀態(tài)決定了變量的狀態(tài)。電狀態(tài)決定了變量的狀態(tài)。變量變量線圈線圈LD編輯器線圈線圈的分類:

24、線圈的分類:常開線圈常閉線圈置位線圈復位線圈正跳變線圈負跳變線圈LD編輯器線圈不同類型的線圈有什么區(qū)別?LD編輯器線圈假設線圈相關的變量為TEMP。LD編輯器垂直連接線垂直連接線可以同時連接多個輸入和多個輸出,相當于或的功能,連接線的左邊作為或的輸入,右邊作為或的輸出。垂直連接線上可以連接所有布爾量的數(shù)據(jù)鏈路,包括所有觸點、線圈及功能塊的布爾量引腳。編程示例3例3:當開關DI101為ON,或者開關DI102為OFF時電機DJ101為ON;DI101為OFF,且DI102為 ON,則DJ101為OFF。編程示例3例4:有三個開關按紐K1、K2、K3。當任何一個按鈕按下時(即為ON),其他按鈕均彈

25、出(即為OFF)?編程示例4編程示例4編程示例5例5:開燈程序,KOSTART為開燈信號。當KOSTART為ON時要求燈(KO1001)開5秒關5秒,交替閃爍。當KOSTART為OFF時燈(KO1001)關。編程示例5注意事項!1. 所有的編程元素必須直接或間接的通過一個布爾輸入引腳連接到代表電流相線的左匯流條。 如下圖就是一個典型的錯誤:注意事項!2. 變量引用或連線時應注意數(shù)據(jù)類型必須保持一致。1.1. SFCSFC概述概述2.2. SFCSFC的元素及其連接規(guī)則的元素及其連接規(guī)則3.3. 步步4.4. 轉換轉換 5.5. 跳轉跳轉 6.6. 擇一分支擇一分支/ /擇一結合擇一結合7.7.

26、 并行分支并行分支/ /并行結合并行結合8.8. SFCSFC控制變量控制變量9.9. SFCSFC的應用的應用 主要內(nèi)容:主要內(nèi)容:培訓什么?SFC概貌SFC由步進式順序控制器演變而來SFC是順序流程的圖形化表示SFC把流程分解為步和轉換SFC可以方便的實現(xiàn)批量過程控制SFC診斷、排錯方便,易于維護IEC61131-3標準規(guī)定了SFC編程要素SFC元素七種基本元素步類型步(Step)步是控制流程中相對獨立的一組操作的組合在步中可以定義隨意數(shù)目的操作步在緊接在前的轉換條件滿足時激活步在激活時才執(zhí)行相應的操作步在緊接在后的轉換條件滿足時退出激活狀態(tài)A步的操作X轉換的條件B步的操作Y轉換的條件C步

27、的操作Z轉換的條件滿足不滿足滿足滿足不滿足不滿足控制框圖: 如何將我們的任務交給 “步”去完成?SFC編輯器操作!操作! 步屬性對話框“步屬性”中可設置兩個功能:運行時間、操作。 運行時間在運行時間的填充框中填入ULONG 類型 的位號(變量),可以將該步的激活時間賦給該位號(變量),時間單位是毫秒。 操作(Action)操作是對實際現(xiàn)場設備進行的操縱一個步中可以有0個或多個操作操作的類型由操作限定詞來描述操作限定詞時態(tài)圖StepNSRLDPDS= 賦值操作限定詞。表示在步的整個激活期間賦值操作一直進行,直到步退出激活狀態(tài)恢復成不激活狀態(tài)。 如果是賦值操作限定詞(=),則是應用ST語言編寫控制

28、算法,操作變量就是自己編寫的一段ST語言程序,此時操縱的對象就是對應的ST語言程序。執(zhí)行到該操作時,就運行該ST語言程序。轉換(Transition)轉換指明控制從一個步轉移到下一步的條件當轉換條件滿足時,緊接在前的步從激活態(tài)變成不激活態(tài)。然后緊接在后的步將從不激活態(tài)轉變成激活態(tài)只有當緊接在前的步在激活狀態(tài)時,轉換的條件才被測試轉換和步的連接圖例跳轉(Jump)跳轉允許程序從不同的步繼續(xù)執(zhí)行跳轉連接圖例順序跳轉順序跳轉順序回路順序回路 根據(jù)跳轉對象的不同,可以構成順序跳轉和順序環(huán)路,但不能在不同的并行區(qū)域間跳轉。擇一分支擇一分支提供了在SFC程序中實現(xiàn)條件控制的控制流程選擇執(zhí)行的方法。每一個分

29、支都有執(zhí)行的轉換條件,擇一分支被激活時,會依次對各個分支的轉換條件進行判斷,轉換條件滿足的分支被激活。在擇一分支結構內(nèi)只能有一個分支被激活。分支轉換條件的優(yōu)先級從左到右,比如如果左邊第一個和第二個分支的轉換條件都被滿足時,左邊第一個分支被激活,即只執(zhí)行這個分支的程序。擇一分支和擇一接合必須一一對應。分支必須結束于同一擇一接合或者結束于跳轉,但至少有一個分支結束于擇一接合。擇一分支圖例例:根據(jù)如下要求編寫一段順控程序: 有兩個電機A、B,啟動開關分別為KO101、KO102,ON時啟動電機,OFF時關閉電機; 兩電機一開一備,工作/備用指示開關為WKSDB,ON時表示電機A工作,B備用,OFF時

30、表示電機B工作,A備用; 有一電機啟動按鈕DJSTART,要求DJSTART置ON后,延遲5秒再啟動電機。 電機A、B開反饋分別為KO101K、KO102K,ON時表示開到位,OFF表示未開到位。要求電機啟動后,需確認開反饋到位后方能進入后續(xù)的順控程序。并行分支并行分支使流程中幾個子流程同時進行各分支的執(zhí)行不相互影響并行分支和并行接合必須一一對應只有當所有的分支的最后一步都激活時,才測試并行接合緊接的轉換的條件是否滿足在并行結構內(nèi)部的跳轉不能跳到并行結構的外部。并行分支圖例例:根據(jù)如下要求編寫一段順控程序: 有兩個電機A、B,啟動開關分別為KO101、KO102,ON時啟動電機,OFF時關閉電

31、機; 要求兩電機A、B同時啟動,其開反饋分別為KO101K、KO102K,ON時表示開到位,OFF表示未開到位。要求電機啟動后,必須確認開反饋已到位。 有一電機啟動按鈕DJSTART,要求DJSTART置ON后,延遲5秒再啟動兩電機。SFC控制變量復位變量 為ON時,SFC程序起始步被設置為激活步,其它步都強制變?yōu)椴患せ顮顟B(tài),順控程序從頭開始重新執(zhí)行。為OFF時,復位變量無效。 注意:在起始步中,默認給復位變量賦OFF,在終止步中,默認給復位變量賦ON。運行變量 為ON時,SFC程序正常執(zhí)行。為OFF時,所有其它控制變量都無效,SFC程序停止運行。SFC控制變量保持(禁止轉換)變量 為ON時,

32、當前激活步將一直保持執(zhí)行而不管緊接的轉換條件是否滿足,轉換條件測試將不進行。此變量受運行變量和復位變量的影響。強制步進變量 為ON時,當前激活步不管轉換條件是否滿足,都變?yōu)椴患せ顮顟B(tài),按順序的下一步變?yōu)榧せ顮顟B(tài)。強制步進變量受以上所有變量的影響。操作使能變量 為ON時,步中的操作才被執(zhí)行??刂谱兞恐荒苓x用在系統(tǒng)組態(tài)中定義的變量。每個SFC段落必須要設置復位變量,程序初次下載到控制站時,必須對該復位變量賦ON,使程序從起始步開始執(zhí)行。其他控制變量可根據(jù)實際需要,做有選擇的設置。 練習時間例:現(xiàn)場有三臺電機正在使用,分別是電機1、電機2和電機3,他們的開關狀態(tài)分別用f1、f2、f3表示,電機的啟動

33、和關閉要求用程序控制。將啟動按鈕start置為on,電機1首先啟動,間隔5秒時間以后,電機2啟動,再間隔5秒,電機3啟動;啟動過程完成后,才可以進入關電機過程。將啟動按鈕start置為off,電機3首先關閉,間隔5秒時間以后,電機2關閉,再間隔5秒時間以后,電機1關閉;關閉過程完成后,才可以重新進入開電機過程。1.1.STST語言概述語言概述2.2.STST語言的語法語言的語法3.3.自定義函數(shù)和功能塊自定義函數(shù)和功能塊4.4.STST語言中的模塊調(diào)用語言中的模塊調(diào)用5.5.STST語言在非語言在非STST段落中的應用示例段落中的應用示例 培訓什么? 主要內(nèi)容:主要內(nèi)容:ST語言結構化文本語言

34、 IEC61131-3標準語言SCControl集成使用方法在工程中加入ST段落編制函數(shù)和模塊 在梯形圖和功能塊圖中插入文本代碼在順控圖步的操作中使用=操作限定詞 在順控圖轉換條件中使用ST邏輯表達式 數(shù)據(jù)類型變量類型 關鍵字 字節(jié)長度 布爾類型 BOOL1字 WORD2雙字 DWORD4整數(shù) INT2無符號整數(shù) UINT2長整數(shù) LONG4無符號長整數(shù)ULONG4半浮點 SFLOAT2浮點FLOAT4數(shù)組 結構標識符以英文字母開頭 續(xù)以英文字母、數(shù)字或下劃線 字符長度最多為24個字符 關鍵字(1)關鍵字描述CASEOFELSEEND_CASECASE 語句BOOL WORD DWORD IN

35、T LONGUINT ULONG SFLOAT FLOAT數(shù)據(jù)類型EXIT終止循環(huán)FALSE邏輯假FORTOBYDOEND_FORFOR語句FUNCTIONEND_FUNCTION函數(shù)定義FUNCTION_BLOCKEND_FUNCTION_BLOCK功能塊定義IFTHENELSEIFELSEEND_IFIF語句關鍵字(2)ON邏輯真OFF邏輯假REPEATUNTILEND_REPEATREPEAT 語句RETURN函數(shù)返回TRUE邏輯真VAREND_VARVAR_INPUTEND_VARVAR_OUTPUTEND_VAR變量定義WHILEDOEND_WHILEWHILE語句運算符(1)運算符

36、描述類型優(yōu)先級()表達式運算 9.取結構成員 8 取數(shù)組成員 8單目負 7NOT取反邏輯運算7* (MUL)乘算術運算6/ (DIV)除算術運算6MOD取余算術運算6+ (ADD)加算術運算5 (SUB)減算術運算5運算符(2)大于比較運算4=大于等于比較運算4=小于等于比較運算4小于比較運算4=等于比較運算4不等于比較運算4AND與邏輯運算3XOR異或邏輯運算2OR或邏輯運算1表達式表達式為變量、操作符、常量、函數(shù)的組合,求值結果為單個值 表達式的求值按運算符的優(yōu)先級按順序進行,優(yōu)先級高的運算符先被處理。相同優(yōu)先級的按從左到右的順序執(zhí)行 實例 A + B * (C-3) + FUNC1(2,

37、D) 賦 值 比較等于 比較不等于 二次計算 = = = != 報表 = = SCX = = != ST = = := 賦值語句賦值語句將“=”右邊表達式的值賦給左邊的變量。賦值時可使用“=”或“:=”作為運算符。舉例: A=4; (*將變量A賦值為4*) B:=4; (*將變量B賦值為4*)IF語句 IF A 0 THEN B = 1; (* B:=1; 亦可*) ELSEIF A -5 THEN B = 2; ELSE B := 3; END_IF; 規(guī)定了一組語句在規(guī)定的邏輯表達式為TRUE時執(zhí)行。CASE語句 CASE語句規(guī)定了整數(shù)類型的選擇項,以及選擇項在不同的值時的幾組語句組。 C

38、ASE TW OF 1 : I = 1; (* 1:I:=1; 亦可*) 2 : I = 2; ELSE I = 3; END_CASE; FOR語句 FOR K = 1 TO 100 BY 2 DODOSOMETHING(); (*循環(huán)體*) END_FOR;循環(huán)語句,規(guī)定了終止條件和一組語句,當終止條件沒有成TRUE時,這組語句被循環(huán)執(zhí)行。WHILE語句 J = 1; WHILE J = 100 DO J = J + 2; END_WHILE; 循環(huán)語句,規(guī)定了終止條件和一組語句,當終止條件沒有成TRUE時,這組語句被循環(huán)執(zhí)行。REPEAT語句 J = 1; REPEAT J = J +

39、2; UNTIL J = 101 END_REPEAT; 終止條件的判斷在語句組執(zhí)行一次后才進行,所以規(guī)定的語句組至少會執(zhí)行一次。當終止條件成TRUE時,循環(huán)被終止。函數(shù)和功能塊ST語言中可以調(diào)用程序模塊:函數(shù)、功能塊。函數(shù) 是個程序模塊,只有一個輸出,根據(jù)輸入可以唯一確定輸出。如:SFLOAT ADD_SFLOAT(SFLOAT a,SFLOAT b); 功能塊 是個程序模塊,有多個輸出,或輸出不但和當前輸入有關還和上次內(nèi)部狀態(tài)有關如:void BSC(SFLOAT PV,UINT N,OUT SFLOAT MV); 如何調(diào)用?函數(shù)調(diào)用語句 ret = Func(in1,in2); (*作為

40、表達式返回值*) Func(in1,in2);(*作為子程序處理,函數(shù)返回值為空類型*) 功能塊的調(diào)用語句 調(diào)用功能塊時要嚴格按照輸入輸出順序,先輸入輸入?yún)?shù),再輸入輸出參數(shù),參數(shù)順序按照定義時的順序。 輸出參數(shù)必須是變量: FuncBlock(in1,in2,out1,out2) 對于函數(shù)和功能塊,系統(tǒng)中有已經(jīng)定義好的標準庫函數(shù)及標準功能塊供我們使用,我們也可以使用ST語言來自己編制函數(shù)和功能塊。函數(shù)定義FUNCTION(定義函數(shù)) FUNC3(函數(shù)名): BOOL(輸出變量屬性) VAR_INPUT IN1:BOOL; (定義輸入變量和類型)END_VAR VAR TEMP1 : BOOL

41、;(函數(shù)執(zhí)行時用到的中間變量)END_VAR FUNC3 = DoSomething();END_FUNCTION (結束函數(shù)定義)函數(shù)的示例 例1:使用ST編制一個定時器清零的函數(shù)。 形參為: CTROL1:BOOL; (*定時器清零開關:ON清零*) number1:INT; (*定時器序號*) CTROL2:BOOL; (*定時器清零開關:ON清零*) number2:INT; (*定時器序號*) 實現(xiàn)的功能是當開關CTROL1按下時第number1號定時器清零;當CTROL2按下時第number2號定時器清零。功能塊定義FUNCTION_BLOCK(定義功能塊) FB3(功能塊名)VA

42、R_INPUT IN1:BOOL; (定義輸入變量和類型)END_VAR VAR_OUTPUT OUT1 : BOOL; (定義輸出變量和類型)END_VAR VAR TEMP1 : BOOL; (定義中間變量和類型)END_VAR DoSomething();END_FUNCTION_BLOCK (結束功能塊定義)功能塊的示例 例2:某測點為冗余控制,要求當操作員將開關K101打開時(為ON),選擇測點1(LI1011)作為單回路LIC101的輸入信號;當操作員將開關K101關閉時(為OFF),選擇測點1和測點2(LI1012)的平均值作為該回路的輸入信號。回路的輸出為調(diào)節(jié)閥LV101。請使

43、用ST語言編寫自定義功能塊實現(xiàn)該功能,并完成該控制方案。FUNCTION_BLOCK CHOICEVAR_INPUTIN1:SFLOAT;IN2:SFLOAT;K:BOOL;END_VARVAR_OUTPUT OUT:SFLOAT;END_VARVAREND_VAR IF K=ON THEN OUT=IN1; ELSE OUT=AVE_SFLOAT(IN1,IN2); END_IF;END_FUNCTION_BLOCK 在FBD段落中調(diào)用該模塊實現(xiàn)控制方案如下:(設置自定義回路0作為該液位控制回路)ST中可調(diào)用的函數(shù)和功能塊ST語言編寫程序語句時可以調(diào)用各種模塊,如:標準函數(shù)、標準功能塊、 S

44、T FUNCTION、ST FUNCTION_BLOCK、 LD和FBD生成的自定義功能塊。標準函數(shù)庫算術運算比較運算邏輯運算類型轉換數(shù)學函數(shù)選擇函數(shù)混合運算通訊輔助累積輔助折線表運算輸入處理 比如: SFLOAT ADD_SFLOAT(SFLOAT a,SFLOAT b); UINT MOVE_UINT(UINT a); SFLOAT INT_TO_SFLOAT(INT a); SFLOAT MAX_SFLOAT(SFLOAT a,SFLOAT b); 標準 功能塊庫對于ST語言可用的系統(tǒng)功能塊,它們的使用方法與模塊庫中的功能塊的使用方法是一致的。比如:void SR(BOOL S1,BOO

45、L R,OUTBOOL Q1); void BSC(SFLOAT PV,UINT N,OUT SFLOAT MV);在ST 的 FUNCTION 模塊中:可以調(diào)用其它 ST FUNCTION,允許嵌套 可以調(diào)用標準函數(shù) 模塊調(diào)用限制可以調(diào)用其它 ST FUNCTION可以調(diào)用標準函數(shù) 可以調(diào)用標準功能塊 可以調(diào)用其它 ST 功能塊,不能嵌套在ST 的 FUNCTION_BLOCK 模塊中:模塊調(diào)用限制可以調(diào)用其它 ST FUNCTION可以調(diào)用標準函數(shù) 可以調(diào)用標準功能塊 可以調(diào)用其它 ST 功能塊可以調(diào)用各種編程語言生成的功能塊 模塊調(diào)用限制在TEXTCODE 模塊中:可以調(diào)用其它 ST F

46、UNCTION可以調(diào)用標準函數(shù) 可以調(diào)用標準功能塊 可以調(diào)用其它 ST 功能塊可以調(diào)用各種編程語言生成的功能塊 模塊調(diào)用限制在SFC中的 = 操作中:TEXTCODE模塊應用示例例6.3:有自定義單回路FIC101(回路序號為0),回路輸入位號為FI101,回路輸出位號為FV101。 當選擇開關CH101為OFF時為正常單回路控制,當選擇開關CH101為ON時輸出調(diào)節(jié)閥FV101為固定閥位值,即當開關KI101為ON時將調(diào)節(jié)閥FV101開至50%;當開關K101為OFF時將調(diào)節(jié)閥關閉。請使用ST語言實現(xiàn)該控制要求。 BSC(FI101,0,FV101);IF CH101=ON THEN IF

47、KI101=ON THEN g_bsc0.SwTV=ON; g_bsc0.TV=0.5; g_bsc0.SwTV=ON; g_bsc0.TV=0.0;ELSEEND_IF;END_IF;七、自定義功能塊的七、自定義功能塊的設計與使用設計與使用 主要內(nèi)容:主要內(nèi)容:1. 概述2. 自定義模塊設計與使用培訓什么?概述在SCCONTROL中可以使用功能塊編輯器或梯形圖編輯器來設計自定義功能塊。從編程角度看,自定義功能塊相當于子程序。自定義功能塊內(nèi)部包含了用戶定義的程序邏輯,外部則由輸入輸出變量組成其框架。在自定義功能塊內(nèi)部可引用一個或多個功能塊或其他自定義功能塊,但其本身不能循環(huán)嵌套。作為自定義功能

48、塊的外部接口輸入輸出變量數(shù)最大可以定義各32個。基本步驟1.首先,新建段落,并選擇段類型為“模塊”。2.其次,定義該模塊的輸入輸出變量。另外如果需要,也可定義私有變量或全局變量等。3.再次,根據(jù)工藝要求編寫該模塊的內(nèi)部算法??梢赃x擇適合的編程元素按算法要求組合在一起,從而實現(xiàn)我們的控制要求。4.最后,對該段落保存、編譯。如果編譯成功,則回到組態(tài)軟件中進行聯(lián)編;如果出錯,則應查找錯誤、修改程序直至編譯成功。新程序段新程序段FBD LDFBD LD段名稱段名稱變量聲明變量聲明自定義模塊設計與使用 例例1 1:要求制作一個名為“點燈模塊”的自定義功能塊。當操作員按下按鈕時以固定的時間間隔點亮5盞電燈

49、。自定義模塊設計與使用自定義模塊設計與使用八、程序調(diào)試八、程序調(diào)試 主要內(nèi)容:主要內(nèi)容:1. 概述2. 調(diào)試培訓什么?概述 調(diào)試是對編寫的程序進行檢驗的過程,以確保編寫的程序滿足我們的控制要求。調(diào)試分靜態(tài)調(diào)試和動態(tài)調(diào)試。靜態(tài)調(diào)試 信息欄(出錯) 信息欄(成功) 方法:編譯程序 鼠標雙擊會怎樣?鼠標雙擊會怎樣?動態(tài)調(diào)試1.組態(tài)保存,編譯,下載2.連接、調(diào)試 3.變量調(diào)試 動態(tài)調(diào)試例1:實現(xiàn)對PI102的手工置值。動態(tài)調(diào)試 例2:在以下梯形圖程序中對開關量Y5手工置值。打開變量調(diào)試窗口添加變量Y5、D5、D6、D7、D8、D9、D10,并觀察D5、D6、D7、D8、D9、D10的狀態(tài)。把Y5置為O

50、N,觀察D5、D6、D7、D8、D9、D10的狀態(tài)變化。調(diào)試輔助工具調(diào)試文本 如何實現(xiàn)在調(diào)試狀態(tài)下從一個段落快速切換到其它段落? 調(diào)試輔助工具跳轉按鈕 九、綜合編程應用九、綜合編程應用 1.常見編程應用 累積問題 BSC模塊實現(xiàn)串級控制 聯(lián)鎖設計(輸入處理、濾波) 2.編程注意事項 注釋文本 乘除運算 主要內(nèi)容:主要內(nèi)容:培訓什么?累積量的處理累積量的處理 實現(xiàn)流量累積的兩個辦法:1、模擬量組態(tài)流量累積(常規(guī))2、通過定義8字節(jié)變量,用模塊 Total_Accum進行累積 。(程序實現(xiàn))方法一方法一方法二方法二 系統(tǒng)工作時,對位號首先轉換成不帶量程不帶單位的無因次數(shù) ,也就是說,流量信號首先被轉換成0-100%之間的數(shù),由于位號的下限為0,所以直接除以量程即可。 TOTAL_ACCUM實際上是對這樣的一組百分數(shù)每秒鐘累加一次。流量累積原理 累積的結果放在FQ101中,但是我們需要查看的累積值是需要把每一個流量的瞬時信號還原成實際測量值,所以系統(tǒng)進行處理時,要將累積計算的結果FQ101乘以量程除以系

溫馨提示

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

最新文檔

評論

0/150

提交評論