安裝cfc編程語(yǔ)言后,系統(tǒng)將會(huì)默認(rèn)安裝cfc library功能庫(kù)。該功能庫(kù)包含elem_300、elem_400和elementa。其中,elem_300專門用于s7 300系列的cpu編程,elem_400專門用于s7 400系列的cpu編程,elementa則為通用功能塊,對(duì)控制器無(wú)具體要求。
圖 1 cfc library包含的功能塊
在使用上述功能塊進(jìn)行編程時(shí),需要注意如下事項(xiàng):
1. 對(duì)s7 300控制器編程,只允許使用elem_300和elementa下的功能塊,不允許使用elem_400下任何功能塊,即便功能塊號(hào)和功能描述相同;反之亦然,對(duì)s7 400控制器編程,則只允許使用elem_400和elementa下的功能塊,不允許使用elem_300下任何功能塊。實(shí)際使用過(guò)程中,可以通過(guò)打開(kāi)功能塊的屬性對(duì)話框,檢查author屬性是否和控制器類型匹配,否則相應(yīng)的功能可能無(wú)法正常運(yùn)行。
圖 2 功能塊的author屬性
2. 使用elem_300下的所有功能塊對(duì)s7 300控制器進(jìn)行編程時(shí),還需額外注意如下步驟。否則,該類功能塊將不能進(jìn)行正常的初始化,甚至無(wú)法正常工作。
a) cfc中除掉用正常所需的功能塊外,還需額外調(diào)用elem_300下的restart(fc70)功能塊,并設(shè)置其調(diào)用位置,雙擊如下圖所示的位置。
圖 3 調(diào)用restart功能塊
b) 系統(tǒng)將打開(kāi)如下的運(yùn)行順序編輯器對(duì)話框,并定位到該功能塊在ob3x中的安裝位置。在該功能塊上點(diǎn)擊右鍵delete,刪除該功能塊在循環(huán)ob3x中的安裝。
圖4 刪除該功能塊在循環(huán)ob3x中的安裝
c) 關(guān)閉該對(duì)話框回到cfc編輯器下,檢查該功能塊的安裝位置是否變更為ob100。
圖 5 restart的安裝位置ob100
d) 調(diào)用elem_300下的功能塊后,將不再允許用戶使用m存儲(chǔ)區(qū)的mw0,該字被這類功能塊占用,請(qǐng)檢查程序中是否使用了mw0字。
e) 檢查硬件組態(tài)中cpu屬性設(shè)置cycle/clock memory頁(yè)面下的clock memory是否激活,如果激活則不能使用默認(rèn)的mb0。
圖 6 clock memory不能使用默認(rèn)的mb0
3. 使用cfc library下的具有sample_t管腳的如下功能塊編程時(shí),需要注意其必須在循環(huán)ob3x中調(diào)用,否則其對(duì)應(yīng)的時(shí)間功能將不能正常工作。
功能塊
注 釋
afp(fb10)
脈沖發(fā)生器
cont_c(fb1)
連續(xù)pid控制功能塊
cont_s(fb2)
步進(jìn)pid控制功能塊
pulsegen(fb3)
pid控制脈沖功能塊
timer_p(fb5)
定時(shí)器(elementa/impuls)
表 1 帶有sample_t管腳的功能塊
a) 調(diào)用后,需要檢查如下位置所示是否為循環(huán)ob3x。
圖 7 功能塊的安裝位置
b) 編譯cfc時(shí),cfc v6.1及以下的版本,需要激活如下的update sampling time選項(xiàng)。
圖 8 激活update sampling time選項(xiàng)
c) 通過(guò)編譯,系統(tǒng)將會(huì)自動(dòng)更新sample_t管腳為該功能塊的掃描周期,單位為秒。例如,該功能塊的循環(huán)周期為100ms一次,則其sample_t的值將會(huì)自動(dòng)設(shè)置為0.1。可以通過(guò)功能塊上點(diǎn)擊鼠標(biāo)右鍵 屬性,打開(kāi)屬性對(duì)話框,切換到i/os頁(yè)面,查看sample_t管腳的值。
圖 9 打開(kāi)功能塊屬性對(duì)話框
圖 10 檢查sample_t管腳value列的值
注:該管腳為系統(tǒng)維護(hù)的功能管腳,其決定了功能塊的定時(shí)準(zhǔn)確性,不允許人為離線或在線修改。
如上所述為使用cfc library時(shí)的注意事項(xiàng),更多信息請(qǐng)參考cfc library的在線幫助或訪問(wèn)附錄所示西門子服務(wù)網(wǎng)站查找相關(guān)信息。