fb 是功能塊的略稱(chēng),是將順控程序內(nèi)反復(fù)使用的梯形圖塊部件化,以便能在順控程序中引用的功能塊。由此,在提高了程序開(kāi)發(fā)效率的同時(shí),還可減少程序錯(cuò)誤,提高程序質(zhì)量。

將順控程序部件化究竟是指什么?
下面通過(guò)以下簡(jiǎn)單的程序來(lái)演示部件化的流程。
例 ) 輸入信號(hào) (x1)12 次 on 時(shí),輸出信號(hào) (y12) 變?yōu)?on 的程序

以下介紹創(chuàng)建 fb 的順控程序時(shí)的技巧:
1. 將多個(gè)位傳送到字標(biāo)簽中的方法:
通過(guò)使用 bset、brst 指令,設(shè)置對(duì)于對(duì)象字的各個(gè)位的 on/off 信息, 可以將多個(gè)位傳送到字標(biāo)簽中。

2. 在 fb 中瀏覽多個(gè)連續(xù)數(shù)據(jù)的方法:
通過(guò)以下方法可以將 fb 的輸入輸出標(biāo)簽的連續(xù)區(qū)域獲取到 fb 的內(nèi)部標(biāo)簽中。
以下以輸入標(biāo)簽為例進(jìn)行說(shuō)明。
(1) 在主程序中預(yù)先將值存儲(chǔ)到 d1000 開(kāi)始的 n 點(diǎn)的 d 寄存器中。
(2) 在 fb 的輸入標(biāo)簽中指定 d1000。
(3) 在 fb 的內(nèi)部,通過(guò) bmov 將從輸入標(biāo)簽 (i_write_data) 開(kāi)始的 n 點(diǎn)傳送到內(nèi)部標(biāo)簽 ( 需要預(yù)先預(yù)留出 n 點(diǎn)的排列 ) 中。

但是,在此情況下,如果省略了 fb 的輸入輸出標(biāo)簽,內(nèi)部標(biāo)簽中將可能存儲(chǔ)期望以外的數(shù)據(jù),導(dǎo)致順控程序失控并執(zhí)行預(yù)料以外的動(dòng)作,因此不要省略輸入輸出標(biāo)簽。
3. 在 fb 內(nèi)使用變址寄存器的方法
在 fb 內(nèi)使用變址寄存器的情況下,為了保護(hù)變址寄存器,應(yīng)添加變址寄存器的保存梯形圖及還原梯形圖。
[ 創(chuàng)建示例 ]
在執(zhí)行 fb 內(nèi)的程序之前將變址寄存器 z7、z8、z9 進(jìn)行保存,在程序結(jié)束時(shí)將保存的變址寄存器還原的程序示例如下所示。











