西門子PLC編程中的FB、FC、DB、OB是什麼
在西門子PLC編程語言中有FB、FC、DB、OB等語言,那麼我們就來講一講西門子PLC編程中的FB、FC、DB、OB是什麼?
1、什麼是OB?
OB是組織塊,是英文Organization block的縮寫,組織塊是CPU係統和用戶程序之間的接口。OB組織塊是PLC編程底層語言,有一點像電腦主板的BIOS一樣,有一些OB組織塊是PLC程序工作的必要先決條件,如OB1循環調用指令,如果程序不調用OB1,我們編寫的程序隻會掃描一次之後就會停止了,這將無法正常工作。所以我們在編寫程序時,必須在OB1中調用或編寫,或利用中斷指令OB32。
在PLC中有很多不同作用的組織塊,比如,可以循環調用的OB1;可以檢測通訊是否正常的OB87; CPU硬件故障組織塊OB84;CPU上電隻執行一次的OB100等。
OB組織塊就是像是一個單位,各個部門的一把手一樣,在單位中各司其職,組織調度自己部門的人員來完成工作,它有著決定權和優先權。OB組織塊也像一個調度,根據PLC運行的不同狀況,輸出不同的控製指令。
在西門子編程中,有很多功能的OB組織塊,這裏不一一列舉,可以根據自己編程需要查詢相關手冊。
2、什麼是FB?
FB是功能塊,FB功能塊就是把一些應用程序模塊化了,就好像把編寫好的程序封裝在一個盒子裏,我們想用的時候就拿過來用,不需要在編寫相同控製功能的程序了,為我們編程提供了便利。FB功能塊是由單獨的背景數據塊做支撐的,就好比把封裝好程序的相同的盒子,它們擁有自己獨立的房間,即使它們相貌是完全一樣的,確可以根據房間的不同來區別它們,這就是在應用的時候互不幹擾的原因。
在西門子編程中,功能塊有兩種,一種是係統定義好的功能塊,一種是用戶自定義功能塊。
①、係統功能塊
係統定義好的功能塊,它是西門子工程師把一些常用的、不常用的程序編寫封裝好的,我們隻管拿來用,不可以修改。如,SFB 0 遞增計數器。
優點:是在編程時方便、省時。
缺點:是你得按它的規則來應用,必須熟悉功能塊的應用。
②、用戶功能塊
用戶自定義的功能塊,是我們需要我們自己編寫封裝的,引腳的多少和功能都是需要自己定義的。
優點:可以根據自己的控製工藝需要來編寫、定義引腳,方便靈活應用。
缺點:需要自己編程,工作量比較大。
3、什麼是FC?
FC是功能,FC是沒有自己獨立的背景數據塊,FC與FB的應用基本是致的,就好像FC沒有自己獨立的房間,大家都住在一個房間裏,所以它們必須是不同的,不能長一樣的相貌,以便於應用的時候區別對待,避免了混亂。
FC也是分為係統功能與用戶自定義功能,它與FB應用方法基本相同,不同的是FB運行過程的數據,都可以在DB塊中保存下來,隻到下一次運算,被新的數據覆蓋,而FC是不具備背景DB塊保存數據。
4、什麼是OB?
OB是數據塊,它是用來存儲設備、生產線中的變量數據的,數據塊是用來實現各邏輯塊之間的數據據交換、數據傳遞和共享數據。可以理解它是由一個個小格子的數據集散中心,DB數據塊就是存儲、轉運數據。
OB數據塊分為共享數據塊(DB)和背景數據塊(DI)。
共享數據塊,用於存儲PLC的全局數據,所有的FB、FC或OB都可以對通用數據塊進行讀寫操作。
背景數據塊( DI),用於傳遞功能塊的參數,隻能被指定的功能塊FB訪問,調用功能塊FB時,必須同時指定用於該功能塊的即時數據塊DI,即時數據塊內的數據可以自動生成,它們可以是FB變量聲明表中的數據。
FB、FC、DB、OB是如何應用的?
1、FB的應用
FB功能塊一般是應用在大型、複雜控製係統中,能夠實現重複的相同控製或各獨立編程係統間相互兼容。怎麼理解這句話呢,就拿我礦的充填自動化控製係統舉例吧,充填自動化控製中,使用了非常多的開關閥和調節閥,因控製工藝的不同,少則十幾二十個,多則幾十上百個,各個閥的控製都是相同的,就是開關控製和調節控製,編程時就可以建立一個FB功能塊,每一個閥控製來調用它,因為調用FB時產生的數據,存入調用時生成的獨立DB背景數據塊中,而會不會產生互相幹擾的問題。這樣就避免每一個閥控製都要獨立編輯自己的控製程序了。
下圖中的FB2,就是應用在不同的控製中,大家注意看一下它的背景數據塊是不相同的,一個是DB2,一個是DB3。
而在複雜的控製係統中,程序是需要很多人來編寫的,每個人編寫的習慣不同,會有兼容問題,他們隻要把自己編寫的程序封裝成FB塊,留出I/O接口就行了,大家編寫的程序就會相互兼容了。這就是FB的優勢所在。
***FB的應用是為了使編程模塊化,簡化編程,便於各獨立編程係統中的相互兼容。***
2、FC的應用
FC的應用就比FB要簡化一些,我們可以把程序封閉成FC,可以靈活調用,它是不可以重複調用的。它的功能與FB有很多的相同之處。我們可以理解FC是一個子程序,我們想用的是時候就調用它,不用的時候就不調用它。
FC的應用是把控製程序分類化,還是拿我礦充填自動化控製係統來說,充填是需要造漿、壓力水、下砂控製等,在編程時,可以把各係統控製程序,獨立編寫FC塊內,這樣的程序對檢修、維護都是有幫助的。
3、DB的應用
PLC處理的數據是二進製的,也就是1和0,所謂的數據就是一長串的1和0的組合,數據塊就是存儲這些數字串的一個方式。PLC還有別的存儲方式,比如M映像區。
DB塊是保存過程數據用的,可讀可寫,背景數據塊是與FB同時使用的,在你調用FB時,會自動按照FB形參的數據類型自動生成。全局數據塊是用戶自己定義和創建的,你可以把你的需要的過程數據寫入,也可以讀出來。如果你想把I0.0的狀態傳送到DB1,可以寫作:
A I 0.0
= DB1.DBX0.1
這段程序就是把I0.0的狀態寫入到了DB1的第一位DBX0.1中。
*****DB數據塊是具有斷電保存功能的。就是我們把數據寫入DB數據塊之後,即使PLC掉電了,DB數據塊中的數據是不會丟失的,直到數據被其它覆蓋才會改變,我們可以利用這個特性,來保存一些計算的數據。*****
4、OB的應用
程序是需要循環掃描來完成工作的,所以在編寫程序的第一步,就是要建立一個OB1組織塊,所有的程序都是需要OB1來調度執行的。
其它的OB組織塊就要看它的功能是什麼了,在程序時調用了。比如,我們想編寫一個在PLC通電後複位數據程序,那麼我們隻要調用OB100,在OB100中調用此複位程序,那麼這段程序隻在PLC通電瞬間做一次複位,之後就停止工作,不參與之後的程序控製了。而OB85、OB86、OB87是故障檢測,我們可以根據控製工藝要求來調用它們完成控製。
PLC程序編寫的注意事項
1、在修改程序時,不要貿然的刪除它,把不需要的或有疑問的程序段先屏蔽,在確定不需要時在刪除。
2、在調試、修改程序時,一定要做提前做好備份工作,可以在修改時出現錯誤恢複回去,這一點很重要,礦山電氣小東曾經因沒有備份而途添不少麻煩的。
3、自己編寫的程序是需要實際應用來驗證的,有的時候編寫時是不會體現出BUG的,隻有在實際應用中才能夠體現出來,這個時間有時會很長才能體現出來,所以新編寫的程序是要驗證觀察的,尤其是新學編程的人員。
4、給程序加一個密碼有時候是必要的,它的作用是避免自己或別人誤操作修改程序,也是保護自己的程序不被有目的的人所利用,也算是保護知識產權的一種手段吧。
在西門子PLC中讀取或搜索Tag的過程 | |
1:打開Siemens Simatic Manager 2:搜索所需的PLC程序,然後按OK。 3:點擊S7程序,然後點擊符號如下圖所示。 4:將打開一個新窗口並按ok。 5:打開菜單Find and Replace 輸入所需查詢的tag。假設我們需要一個溫度變送器,所以輸入temp文本。 然後點擊Find... |
西門子plc程序暫停功能怎麼實現 | |
這個沒有做過數控係統開發的,根本不知道這裏麵的門道。注意,對於運動控製特別是有位置控製的話,暫停並不是將當前脈衝停止即可,大多數情況下必須有個減速暫停功能,否則會造成伺服報警或步進丟步。當然大多數PLC能實現此功能,點動情況實際上就是這樣操作... |
西門子PLC用少數IO接口連接更多按鈕的方法 | |
西門子PLC為例說明用少數IO接口連接更多按鈕的方法。 接線如圖一所示: 梯形圖如圖二所示: 在這個例子中使用了SB0到SB5共6個按鈕,占用6個輸入口。操作時,按下按鈕SB0,再分別按其它按鈕,可以得到5個按鈕信號;不按按鈕SB0,操作其它按鈕,又可以得到5個按鈕... |
學西門子PLC的方法 | |
學PLC不單單是要看書就能學會的,至少要從兩方麵入手,基礎+軟件 首先,學習PLC編程首先需要從理論基礎開始。學習PLC的基本原理,硬件:搞清楚輸入和輸出端的基本結構,熟悉端口的基本電氣要求。 第二,軟件方麵:對於PLC係統,必須搞清楚什麼是I/O刷新,這... |
西門子plc1500用什麼指令怎麼二進製轉換成 | |
沒有專門的指令,你可以自己寫一個二進製轉十進製的功能: 以字節例如:二進製存儲在MB10,十進製存儲在MB11, MB11=M10.7*2^7+M10.6*2^6+M10.5*2^5+M10.4*2^4+M10.3*2^3+M10.2*2^2+M10.1*2^1+M10.0*2^0 功能中的加減乘除用相應的功能塊去轉換。... |
- 西門子plc鎖存型延時通定時器指令
- 如何使用西門子s7-200模擬器去測試程序
- 西門子S7-200 PLC編程軟件操作圖解
- 西門子s7-200plc怎麼控製直流電機
- 西門子S7-1200的PLC來控製電磁閥的動作
- fbd編程常用功能塊
- 西門子STEP7軟件中加減乘除指令
- 西門子300編程中FB塊用到C或者T之後多次
- 西門子S7300模擬量I/O使用圖解
- 如何設置西門子EM222擴展模塊
- 西門子S7-200能控製多少個伺服
- 西門子S7200四則運算指令表詳解
- S7-200如何通過向導設定PID教程
- step7安裝提示重啟怎麼解決
- 西門子S7300用異或指令實現一鍵啟停
- 西門子PLC生產日期和生命周期含義說明
- 西門子300PLC與溫控表怎樣連接通訊
- WinCC C語言腳本推薦
- 博圖軟件支持所有西門子型號都能組態嗎
- 西門子PLC編程中的FB、FC、DB、OB是什麼