FC塊與(yu) FB最大的區別就是FB塊擁有自己的DB塊來存儲(chu) 數據,而FC卻沒有,所以在多次調用同一個(ge) FC塊有時出現錯誤,譬如將FC寫(xie) 成一個(ge) 定器,
當多次調用改FC塊編寫(xie) 的定時器時,由於(yu) 每次調用時設定的時間不同,則會(hui) 對計時造成影響。解決(jue) 這個(ge) 問題可以使用STEP中FB塊的一個(ge) 功能多重背景數據。
多重背景數據簡單說就是為(wei) 每次調用的功能塊分別獨立的數據存儲(chu) 區,互不幹擾。
一、 CPU自帶的clock memory(也就是係統時鍾功能)
1、在硬件組態中 CPU---屬性----時鍾脈衝(chong) 器---勾選時鍾存儲(chu) 器---填寫(xie) 字節0及MB0
如下圖所示 MB0中7個(ge) 位對應的時間脈衝(chong) (此時間脈衝(chong) 為(wei) 方波,不是上升沿)
2、然後書(shu) 寫(xie) 程序由於(yu) 設置的係統時鍾為(wei) 方波型,不能直接用於(yu) 計時,需要做成上升沿(每隔N秒一次上升沿)
3、通過用ADD_I指令來實現計時,將之前做的每隔一秒鍾導通的上升沿作為(wei) 使能,每隔1S中自加1一次,來實現計時
二、利用多重背景數據來建立定時器
1、新建一個(ge) FB塊FB50 “勾選多重背景功能” 並書(shu) 寫(xie) 定時器的程序
2、再建立另一個(ge) FB塊FB51用來存放之前的編寫(xie) 功能的FB塊
3、打開第二步建立的FB塊 在“STAR”類型下的“數據類型”選擇為(wei) “FB
4、“數據類型”填寫(xie) 第一步建立的FB50
5、在“多重背景”選項欄中可以找到第四步建立的數據塊,並將它們(men) 拖入FB51中,然後填寫(xie) 在各個(ge) 引腳上填寫(xie) 數據
6、最後OB1中調用存放著功能塊的FB塊FB51;並分配一個(ge) 背景DB塊,如下圖DB32
7、進入DB32 可以看到每個(ge) 功能塊所分配了不同的地址
8、測試 在變量表中對各個(ge) 定時器設定時間,然後監控,各個(ge) 定時器設定值各不相同;互不幹擾。