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