咱們編制的控制程序,FB極少用到。所說的用FB來替代FC實用的情況,更是少見,有誰曾經把
FC全部用光啦?恐怕系統都不能負擔了。
提供的標準庫中,FB倒是不少的。
如果你要編制的函數沒有用到靜態變量,恐怕沒有必要使用FB吧?我看高級語言中,雖然靜態
變量使用很容易,但實際用也很少啊。
俠客:我和zane的觀點一樣,我工作中也是把相同功能的工作編制成FB,然后在FC里調用,程
序修改起來方便,舉個例子:如果你有10臺電機,一般我們都要給他編制啟動,停止邏輯,報
警,復位邏輯。如果我編一個FB把這些邏輯都做好了,為每一個電機分配一個背景數據塊的話
,我在FC調用這些電機時,我只要把這些電機對應的I/O點添到FB的管腳上就可以了,*不再
用考慮他里面的邏輯了,如果你全是用FC編這些邏輯的話,1、你要寫10遍,2、如果你用粘貼
和復制的話,有可能有的I/O點忘記修改或其他一些錯誤,3、程序的結構性不強,維護起來浪費
時間。
所以,FB和FC結合起來用是的。
建議大家試試FB,當你理解了FB后,你會感到驚喜的
Zane:關于FB,FC的使用,我也是在具體的應用中一步一步地體會過來的,不過這僅是我個人
的看法與體會,并沒有說一定要這樣用,各位可以做不同的嘗試。但有一點是肯定的,就是在
動手寫程序之前,事先對整個項目要有一個很好的規劃。
看老外的程序通常都是在FC里直接編程,而國內的多是在FB里編程然后再在FC里調用。這兩種
方法各有什么優缺點呢?
用FC能實現的任務,就沒必要用FB。
FCFB本質上一樣
調用FB相當于在FC里opndi,并使用ar2來索引變量
FB的優點是數據塊里的變量可按名字使用,僅僅是顯示而已,執行效率和fc一樣
補充:
實際上FC更加靈活,在fc里可以多次調用opndi訪問多個背景塊,ar2也可以做多種用途
而fb里的ar2原則上是不能使用了,調用fb還要數據塊,麻煩
補充2:
FB實際上是編程環境玩的一個魔法而已
PLC的程序指令上實際是沒有FB和FC的區別的
調用FB或者FC終都是轉化為UC或CC的調用指令
要觀察編程環境的這個魔法,只需寫一個帶參子程序(FB或FC),并在另一個塊里調用,全部
下載后,再更改子程序的參數接口,下載該子程序
(此時調用塊的調用指令已無效),然后上載調用塊
1,一般用FB編寫一些常用的控制程序,例如閥泵的控制等等,在接口得stat變量里面可以定義一些閥門得開度預設值(不通過輸入,直接在HMI上面可以控制的),并且可以把現場的故障信號寫入stat變量中,直接送到HMI上面。
2,而FC一般就是調用這些FB,給一些輸入輸出即可。
3,FC的所有輸入輸出必須賦值,而FB只要給出背景數據塊即可。
4,當然如果說我不需要什么過程的數值,那就FC好了,簡單。
如果大家對計算機編程有點了解的話,我覺得可以這樣理解:
1、FC象程序里的“函數”,直接調用,針對過程編程;
2、FB則象是“類”,具有接口、屬性以及方法,用于對“控制對象”編程,而FB的DB就象是一個具體的“控制對象”的實例。
西門子S7-200PLC具有脈沖輸出功能,在運動控制系統中,伺服電機和步進電機是很重要的精確定位裝置,而控制伺服電機和步進電機需要使用脈沖輸出。S7-200系列PLC可以輸出20--100KHz的脈沖。使用PTO和PWM指令可以輸出普通脈沖和脈寬調制輸出。通過smb66-75,smb166-175來控制Q0.0的輸出,通過smb76-85,smb176-185來控制Q0.1的脈沖輸出。