朗風(fēng)快學(xué)PLC(八)西門子S7-300的程序結(jié)構(gòu)OB-FB-FC-DB_第1頁
朗風(fēng)快學(xué)PLC(八)西門子S7-300的程序結(jié)構(gòu)OB-FB-FC-DB_第2頁
朗風(fēng)快學(xué)PLC(八)西門子S7-300的程序結(jié)構(gòu)OB-FB-FC-DB_第3頁
朗風(fēng)快學(xué)PLC(八)西門子S7-300的程序結(jié)構(gòu)OB-FB-FC-DB_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

朗風(fēng)快學(xué)PLC(八)西門子S7-300的程序結(jié)構(gòu)OB,FB,FC,DB想要學(xué)習(xí)西門子PLC,OB,FB,FC和DB是必須要學(xué)習(xí)的!那么它們在整個程序里面起到什么作用呢?今天帶大家了解一下。OB是西門子300/400里面最重要的組織塊,從OB1-OB122它們有很多不同的功能,今天我們將最常用的OB1,OB1是主程序循環(huán),一個程序中90%的指令都是寫在OB1里面或者是在OB1里面調(diào)用的,那么其他10%寫在哪?答案是其他的組織塊里面。PLC采用循環(huán)掃描的工作方式。從OB1的第一行掃描到最后一行。但是對于300系列PLC,程序都是非常多的。即使是90%的程序?qū)懺贠B1里面也是不現(xiàn)實的。所以需要調(diào)用FB和FC。進(jìn)而使得程序可看性更強一些。這也就是結(jié)構(gòu)化編程。FB和FC塊,我們從兩者的名字就可以進(jìn)行區(qū)分,可以用一個公式即FB=FC+DB來表示,F(xiàn)B是具有DB背景塊的特殊FC,也就是說FB具有FC的功能,同時擁有一個DB塊。FC全稱是Function函數(shù)。注:DB塊全稱DataBlock數(shù)據(jù)存儲區(qū)域,類似數(shù)據(jù)庫中關(guān)系表結(jié)構(gòu)。那首先什么函數(shù)呢?函數(shù)f(x)就像機器或黑箱,給予輸入值x便產(chǎn)生唯一輸出值f(x)。x是自變量,f(x)是因變量。我們再看一下FB和FC的內(nèi)部結(jié)構(gòu),作為一個塊擁有屬于自己的管腳,其中包括:IN——變量從外部輸入,只能被本程序讀,不能被本程序?qū)?。OUT——是由本程序塊輸出的,可以被本程序塊讀寫,其他程序只能讀這個值而不能寫。IN_OUT——輸入輸出變量,本程序和其他程序都可以讀寫這個引腳的值。TEMP——臨時變量,顧名思義是暫時存儲數(shù)據(jù)的變量。這些臨時的數(shù)據(jù)存儲在CPU工作儲存區(qū)的局部數(shù)據(jù)堆棧(即L區(qū))中。STAT——在plc運行期間始終被存儲,S7將靜態(tài)變量定義在背景數(shù)據(jù)塊(僅FB擁有靜態(tài)變量),當(dāng)被調(diào)用時可以讀寫靜態(tài)變量,調(diào)用結(jié)束后靜態(tài)變量保存在數(shù)據(jù)塊中,靜態(tài)變量在某種程度上可以作為全局變量來進(jìn)行使用,但使用時需要注意,這里不建議新手使用。我們再看一下FC和FB的區(qū)別;FC,功能。因為是一個功能,如果這個功能在多處都能用到,那么這段FC就具有通用性。我們在程序的其他地方就可以調(diào)用,簡化代碼,這個是FC的模塊式的作用。當(dāng)然,F(xiàn)C也可以作為我們被調(diào)用的一個子程序,用OB1去調(diào)用他,以實現(xiàn)結(jié)構(gòu)化編程。因此,對于FC而言,它的功能是:第一,實現(xiàn)功能化編程。比如,我們有大車,小車,起升3個結(jié)構(gòu)。我們就可以定義3個FC,跟這3個機構(gòu)一一對應(yīng),然后用OB1依次調(diào)用。為什么這樣做,為什么不都放在OB1里。你也可以放OB1里,對段數(shù)比較少,很簡單的項目就把代碼都放在OB1里。如果功能,機構(gòu)多了,最好還是分開來,這樣有利于程序的可讀可調(diào),更符合規(guī)范。否則一個小故障都會導(dǎo)致你把OB1翻個遍,會很麻煩的。找準(zhǔn)故障機構(gòu),在相應(yīng)的FC里再去找會少看很多代碼。這個道理比較簡單。而且,對于同樣的功能,比如說我們有5個功能一樣的閥或者電機,我們就可以做一個FC,然后調(diào)用5次FC就可以。但是一般情況下,F(xiàn)C是無法儲存數(shù)據(jù)的,因為程序沒有給它建立一個獨特的存儲區(qū)。如果我們有5個電機,但這5個電機的溫度需要存儲怎么辦?這個時候就需要數(shù)據(jù)塊,也就是FB和DB的配合。在建立FB塊的時候我們只需要填寫輸入和輸出接口就可以。但是在調(diào)用的時候就需要輸入數(shù)據(jù)塊也就是DB了。編寫FB的時候需要將INPUT和OUTPUT進(jìn)行編輯。調(diào)用FB的時候需要填寫DB塊,否則PLC會報紅,而FC則不需要。因為FB功能更強悍些,每次調(diào)用他都需要一個DB來供他為邏輯計算存放數(shù)據(jù)。而不像FC,需要輸入輸出接口地址來作為數(shù)據(jù)來源。每次調(diào)用FB時,需要指明一個DB,兩個相互配合。而DB中存放的數(shù)據(jù),也可以供全局享用。比如,有一個電機的加速功能塊,作用是調(diào)節(jié)電機的加速。我們需要輸入的參數(shù)是加速時間,最高速度兩個參數(shù),然后計算得出速度給定。這個時候我們最好用FB。現(xiàn)有電機1,輸入加速時間2,最高速度20。那么2,20這個值放在哪呢,我們調(diào)用FB時,就可以放到DB電機1里去了。現(xiàn)有電機2,加速時間3,最高速度30,。我們?nèi)匀徽{(diào)用這個FB,3和30放DB電機2里就可以了。如果用FC,也可以做這個塊。但是,沒有DB來存放這些數(shù)據(jù),就很不方便,也就失去了通用性。當(dāng)然我不是說FC就不能實現(xiàn)帶數(shù)據(jù)的功能,只是通常來說FB處理帶數(shù)據(jù)的復(fù)雜功能,F(xiàn)C處理沒有數(shù)據(jù)的簡單功能,這樣做很容易。

溫馨提示

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

評論

0/150

提交評論