一 | OB(Organization block) 組織塊 |
image-202405
OB(Organization block)英文翻譯即組織塊,它是操作系統和用戶程序之間的接口,用于執行具體的程序。
在 CPU 啟動時循環程序處理在循環或延時時間到達時當發生外部條件觸發時當發生故障、錯誤時在TIA Portal中我們Zui常用的OB塊即Main函數(OB1) ,通過Main函數調用 FB、FC,并且這些 FB、FC 還可以繼續向下嵌套調用 FB、FC。除主程序和啟動 OB 以外,其他 OB 的執行是根據各種中斷條件(錯誤、時間、硬件等)來觸發的,OB 無法被 FB、FC 調用。
嵌套深度:是指可從 OB 調用功能 (FC) 或功能塊 (FB) 等程序代碼塊的深度。
從程序循環 OB 或啟動 OB 開始調用 FC 和 FB 等程序代碼塊,嵌套深度為 16 層;從其他中斷 OB 開始調用 FC 和 FB 等程序代碼塊,嵌套深度為 6 層;OB 事件
每個組織塊都有各自的優先級,在低優先級 OB 運行過程中,高優先級 OB 到來會打斷低優先級執行。
>=0 | 1 |
>=0 | 1 |
<=2 | 2 |
<=4 | OB 20:3 OB 21:4 OB 22:5 OB 23:6 OB 123 - OB 32767:3 |
<=4 | OB 30:8 OB 31:9 OB 32:10 OB 33:11 OB 34:12 OB 35:13 OB 36:14 OB 37:16 OB 38:17 OB 123 - OB 32767:7 |
<=50 | 18 |
<=1 | 22或26 |
<=1 | 5 |
<=1 | 6 |
<=1 | 6 |
<=1 | 4 |
<=1 | 4 |
<=1 | 4 |
<=1 | 25 |
<=1 | 24 |
<=1 | - |
<=1 | - |
* V4.0 版本 CPU 以前,延時中斷 OB + 循環中斷 OB 數量 <=4
** V4.0 版本 CPU 開始支持
*** V4.1 版本 CPU 開始支持
**** V4.2 版本 CPU 開始支持
注:關于各OB的使用說明,可查看TIA Portal中幫助文件;
二 | DB(Data block) 數據塊 |
image-202405
定義
DB(Data Block)數據塊可以分為:全局數據塊和背景數據塊。數據塊用于存儲用戶數據及程序中間變量,其中背景數據塊由背景功能塊FB生成,內部數據結構由FB的接口定義區決定;
尋址方式
在TIA Portal中可通過juedui地址尋址或通過符號尋址;使用juedui地址尋址,需要將優化塊訪問選擇取消(默認使用優化塊訪問)。
image-202405
符號地址尋址
image-202405
juedui地址:尋址即通過地址DB編號+地址偏移量組成,例如:DB100.dbx0.0
image-202405
三 | FC(Function) 和 FB(Function Block) |
定義
FC(Function)功能:是不含存儲區的代碼塊,常用于對一組輸入值執行特定運算,例如:可使用 FC 執行標準運算和可重復使用的運算(例如數學計算)或者執行工藝功能(如使用位邏輯運算執行獨立的控制)。
FB(Function Block)功能塊:帶背景數據塊的FC--功能。
塊接口
FB 、FC塊都有一個塊接口區,可以用來定義塊接口。在塊接口區域中可以定義的接口類型:Input(輸入)、Output(輸出)、InOut(輸入輸出)、Static(靜態變量,FC無)、Temp(臨時變量)以及 Constant (常量)注:FC 或 FB可帶參數或者不帶參數
image-202405
接口類型 | 讀寫訪問 | 描述 |
Input | 只讀 | 調用 FB 或 FC 塊時,將數據傳送到 FB 或 FC 塊,實參可以為常數 |
Output | 讀寫 | 將 FB 或 FC 塊執行的結果輸出,實參不可以為常數 |
Inout | 讀寫 | 讀取外部實參數值并且將結果返回到實參,實參不可為常數 |
Static (FC無) | 讀寫 | 靜態變量存儲在背景 DB 塊中,不參與對外的參數傳遞 |
Temp | 讀寫 | - |
Constant | 只讀 | - |
對于帶參數的 FB 或FC 塊,有形參和實參 2 個概念,如圖 3 所示。
形參:塊接口區域定義的 Input,Output,InOut 參數;在調用塊時,會以引腳方式出現在塊上。Input 和 InOut 類型的變量出現在塊的左側;Output 類型的變量出現在塊的右側。
實參:在調用帶參數的塊時,為形參填寫的實際變量。
image-202405四 | FC塊和FB塊 區別和應用 |
經常有小伙伴有疑問FB和FC有什么區別, 在什么場景下應用FC,什么場景下應用FB?
首先,從字面意思來看FC(Function)-功能, FB(Function Block)-功能塊;這兩個之間差了一個"塊",這個塊就是我們常說的背景數據塊(Background DB),FB使用背景數據塊作為存儲區,FC沒有獨立的存儲區,使用全局DB或M區;這是FB與FC的Zui主要區別;
其次, FB局部變量有STAT和TEMP,FC由于沒有自己的存儲區因此不具有STAT,且TEMP本身出不能設置初始值。
FB塊優點:
易于移植性,對于相同控制邏輯不同參數的被控對象,只要使用不同的背景DB,同一個FB塊就可以方便多重背景,減少重復工作,提高效率多次調用時,參數修改方便有獨立的存儲區FC塊優點:
小巧靈活,對于非多次調用的程序更易理解不占用額外的存儲資源FC應用范圍:
由于FC不具備背景存儲區,因此FC常用來做為子程序入口使用,保持程序簡介易懂, 易復制;例如:工藝段1程序全部放在FC1里面,再由FC1調用相應程序;工藝段1程序全部放在FC2里面,再由FC2調用相應程序;用于執行不含邏輯運算或公共部分程序的功能,例如:處理IO映射、報警程序處理由輸入“直接”到輸出的邏輯功能塊,直接即中間不需要使用臨時變量,只在輸入和輸出之間傳遞參數的功能;例如:將1個16位word轉化為16個Bit輸出功能,或將輸入數據做等比例輸入等功能;FB應用范圍:
FB應用范圍較廣,可完成所有FC實現的功能,但一般情況FB常用來作為某一類相同對象的控制功能塊,然后在FC中調用FB;例如:可將FB應用于電機控制塊,在FB中實現電機的啟動,停止,報警,計時等功能,每個不同的背景DB即可看做一個對象;可大提高程序的設計效率;
常見問題:
為何定義的FB,FC塊,多次調用后程序混亂?
對于,多次調用的程序塊,FB塊建議更換調用不同的背景DB;FC則需要確保使用的存儲地址不重復,即每次調用,塊中調用的地址不重復。
為何含有定時器或計數器的FB或FC單次調用ok,多次調用時定時器或計數器混亂?
對于多次調用的FB,FC,如為S7定時器,計數器,則需要在IN接口中定義TIMER或Counter,每調用一次FB或FC,均賦不同的定時器或計數器號。如為IEC定時器,計數器,則需要在IN接口定義Block_DB,每調用一次FB或FC,均賦不同的DB塊給其中的IEC定時器或計數器。
- 西門子s7-200 smart 基本控制庫(LBC)應用 2024-12-02
- 精智面板圖形視圖透明度設置 2024-12-02
- 我這樣使用博途 2024-12-02
- 改進驅動器仿真器模型 2024-12-02
- Modbus和TCP究竟有什么區別?
- 西門子Zui強大的通訊功能,PROFIBUS通訊,高手必學 2024-12-02
- RS485與Modbus通信協議 2024-12-02
- 硬接線和通訊有什么區別?為什么很多電工排斥通訊方式,喜歡硬接線? 2024-12-02
- 西門子HMI如何傳送授權 2024-12-02
- 圖解:西門子精致屏HMI如何傳送授權 2024-12-02
- 西門子s7-200 smart 基本控制庫(LBC)應用五:理想氣體溫壓補償的實現 2024-12-02
- 西門子V90驅動電機選型(新版) 2024-12-02
- 什么是西門子S7-1500T CPU 的代碼工作存儲器?有什么作用?使用注意事項是什么? 2024-12-02
- 西門子S7-1200網絡連接及HMI連接如何組態? 2024-12-02
- 測試SIMATIC ET200 SMART IM60 擴展IO模塊 2024-12-02
聯系方式
- 電 話:13922889745
- 經理:向小姐
- 手 機:18475208684
- 微 信:18475208684