![]() | 6AG1211-1AE31-4XB0 SIPLUS S7-1200 CPU 1211C 直流/直流/直流 對于中等負(fù)載 帶防腐蝕涂層 根據(jù) 6ES7211-1AE31-0XB0 . 緊湊型 CPU,DC/DC/DC, 機(jī)載 I/O: 6 數(shù)字輸入 24V DC 4 數(shù)字輸出 24V DC 2 AI 0-10V DC, 電源:20.4-28.8V 程序存儲器/數(shù)據(jù)存儲器 30 KB |
功能塊 (FB)
功能塊 (FB) 是使用背景數(shù)據(jù)塊保存其參數(shù)和靜態(tài)數(shù)據(jù)的代碼塊。 FB 具有位于數(shù)據(jù)塊 (DB) 或“背景”DB 中的變量存儲器。 背景 DB 提供與 FB 的實(shí)例(或調(diào)用)關(guān)聯(lián)的一塊存儲區(qū)并在 FB 完成后存儲數(shù)據(jù)。 可將不同的背景 DB 與 FB 的不同調(diào)用進(jìn)行關(guān)聯(lián)。 通過背景 DB 可使用一個通用 FB 控制多個設(shè)備。 通過使一個代碼塊對 FB 和背景 DB 進(jìn)行調(diào)用,來構(gòu)建程序。 然后,CPU 執(zhí)行該 FB 中的程序代碼,并將塊參數(shù)和靜態(tài)局部數(shù)據(jù)存儲在背景 DB 中。 FB 執(zhí)行完成后,CPU 會返回到調(diào)用該 FB 的代碼塊中。 背景 DB 保留該 FB 實(shí)例的值。 隨后在同一掃描周期或其它掃描周期中調(diào)用該功能塊時可使用這些值。
可重復(fù)使用的代碼塊和關(guān)聯(lián)的存儲區(qū)
用戶通常使用 FB 控制在一個掃描周期內(nèi)未完成其運(yùn)行的任務(wù)或設(shè)備的運(yùn)行。 要存儲運(yùn)行參數(shù)以便從一個掃描快速訪問到下一個掃描,用戶程序中的每一個 FB 都具有一個或多個背景 DB。 調(diào)用 FB 時,也需要包含塊參數(shù)以及用于該調(diào)用或 FB “實(shí)例”的靜態(tài)局部數(shù)據(jù)的背景 DB。 FB 完成執(zhí)行后,背景 DB 將保留這些值。
通過設(shè)計(jì)用于通用控制任務(wù)的 FB,可對多個設(shè)備重復(fù)使用 FB,方法是:為 FB 的不同調(diào)用選擇不同的背景 DB。
FB 將 Input、Output 和 InOut 以及靜態(tài)參數(shù)存儲在背景數(shù)據(jù)塊中。
您還可以在 RUN 模式下修改和下載函數(shù)塊接口。
在背景數(shù)據(jù)塊中分配起始值
背景數(shù)據(jù)塊存儲每個參數(shù)的默認(rèn)值和起始值。 起始值提供在執(zhí)行 FB 時使用的值。 然后可在用戶程序執(zhí)行期間修改起始值。
FB 接口還提供一個“默認(rèn)值”(Default value) 列,使您能夠在編寫程序代碼時為參數(shù)分配新的起始值。 然后將 FB 中的這個默認(rèn)值傳給關(guān)聯(lián)背景數(shù)據(jù)塊中的起始值。 如果不在 FB 接口中為參數(shù)分配新的起始值,則將背景數(shù)據(jù)塊中的默認(rèn)值復(fù)制到起始值。
使用帶多個 DB 的單個 FB
下圖顯示了三次調(diào)用同一個 FB 的 OB,方法是針對每次調(diào)用使用一個不同的數(shù)據(jù)塊。 該結(jié)構(gòu)使一個通用 FB 可以控制多個相似的設(shè)備(如電機(jī)),方法是在每次調(diào)用時為各設(shè)備分配不同的背景數(shù)據(jù)塊。 每個背景 DB 存儲單個設(shè)備的數(shù)據(jù)(如速度、加速時間和總運(yùn)行時間)。
在此實(shí)例中,F(xiàn)B 22 控制三個獨(dú)立的設(shè)備,其中 DB 201 用于存儲個設(shè)備的運(yùn)行數(shù)據(jù),DB 202 用于存儲第二個設(shè)備的運(yùn)行數(shù)據(jù),DB 203 用于存儲第三個設(shè)備的運(yùn)行數(shù)據(jù)。