詳細介紹
西門子PLC通信模塊代理商
FB--功能塊,帶背景數據塊
FC--功能,相當于函數
他們之間的主要區別是:FC使用的是共享數據塊,FB使用的是背景數據塊舉個例子,如果您要對3個參數相同的電機進行控制,那么只需要使用FB編程外加3個背景數據塊就可以了,但是,如果您使用FC,那么您需要不斷的修改共享數據塊,否則會導致數據丟失。FB確保了3個電機的參數互不干擾。
FB,FC本質都是一樣的,都相當于子程序,可以被其他程序調用(也可以調用其他子程序)。他們的大區別是,FB與DB配合使用,DB中保存著FB使用的數據,即使FB退出后也會一直保留。FC就沒有一個的數據塊來存放數據,只在運行期間會被分配一個臨時的數據區。在實際編程中,是使用FB還是FC,要看實際的需要決定。FB的好處樓上以講得很好了。
FB與FC沒有太大的差別,FB帶有背景數據塊,而FC沒有。所以FB帶上不同的數據塊,就可以帶上不同的參數值。這樣就可以用同一FB和不同的背景數據塊,被多個對象調用
FC和FB像C中的函數,只不過FB可以生成靜態變量,在下次函數調用時數據可以保留,而FC的變量只在調用期內有效,下次調用又重新更換。
S7-300plc中的FB和FC的分別?FB帶有自己的背景DB而FC沒有自己的背景DB, 用FC 和FB 有什么分別呢,他們都能實現控制功能,到底該用FB還是該用FC,什么時候用FB什么時候用FC?
FB與FC沒有太大的差別,FB帶有背景數據塊,而FC沒有。所以FB帶上不同的數據塊,就可以帶上不同的參數值。這樣就可以用同一FB和不同的背景數據塊,被多個對象調用。
FC和FB像C中的函數,只不過FB可以生成靜態變量,在下次函數調用時數據可以保留,而FC的變量只在調用期內有效,下次調用又重新更換。每次調用FC的I/O區域必須要自己每次手動輸入,而FB就不要,省去不少麻煩,如果在上位機控制直接輸入DB控制地址就可以。
如果我們設置一組新的參數,將SS_Speed由10Hz設置為11Hz(持續時于目標速度,加速曲線還能夠正常保持,系統也不會提示錯誤。
同樣如果參數合理,PLC發送的第三個、第四個。。。、第n個脈沖,繼續根據以上算法計算脈沖頻率,直到發送的第n個脈沖速度近似達到設定的目標速度,保持加速曲線。
根據以上的數學計算,我們可以看到在設置低速度和速度值的時候,一定注意檢查設置值的合理性,否則會造成上述的錯誤而無法完成PTO設置。
1、引言
可編程控制器以其高可靠性,配置靈活和完善功能,工業控制系統中到越來越廣泛應用。但操作員所需要報表打印、趨勢圖形顯示、工況查尋、參數線修改等功能,PLC卻不能直接方便提供。通常采用計算機PC與PLC組成一個完整監控系統。本文以臺安TP02系列PLC為例,討論用Visual Basic(VB)實現PLC與上位機通訊。
2、VB通訊控件中使用
可編程控制器PLC與上位機PC之間通信,下位機為PLC,基于其可靠性*,主要承擔控制功能,而上位PC機主要承擔監察管理功能,兼備部分控制功能,如發出運行,停止命令。VB語言是基于WINDOWS操作系統功能強、易學易用、主面向學習對象程序設計語言。VB帶有專門管理串行通訊MSComm控件,只需設置幾個主要參數就可以實現PLC與PC串行通訊。要完成通信必須設置MSComm相關屬性值:
(1)CommPort:設置或傳回通信連接端口代號
(2)Settings:設置初始化參數。以字符串形式設置或傳回連接速度、奇偶校驗、數據位、停止位等4個參數
(3)PortOpen:設置或傳回通信連接端口狀態
(4)Input:從輸入寄存器傳 回并移除字符
(5)Output:將一個字符串寫入輸出寄存器
(6)InputLen:由串行端口讀入字符串長度
(7)InBufferCount:傳回接收寄存器中字符數
3、軟硬件之間:
臺安TP02與上位機PC通信時,實現兩者通信需要配備通信線。
4、通信程序實現
4.1 通信初始化程序
首先,窗體開始設計之前,添加MSComm控件。
西門子PLC通信模塊代理商多重數據塊是數據塊的一種特殊形式,如在OB1中調用FB10,在FB10中又調用FB1和FB2,則只要FB10的背景數據塊選擇為多重背景數據塊就可以了,FB1和FB2不需要建立背景數據塊,其接口參數都保存在FB10的多重背景數據塊中。建立多重背景數據塊的方法是:在建立數據塊只要在數據類型選項中選擇“實例的DB”就可以了,見下例。
下面通過一例簡單介紹一下多重背景數據塊使用的一些注意事項和方法。
例如,PLC控制兩臺電機,且控制兩臺電機的接口參數均相同。一般的作法,我們可以編寫功能塊FB1控制兩臺電機,當控制不同的電機時,分別使用不同的背景數據塊就可以控制不同的電機了(如臺電機的控制參數保存在DB1中,第二臺電機的控制參數保存在DB2中,我們可以在控制臺電機調用FB1時以DB1為背景數據就可以了,第二臺同樣以DB2為背景數據塊)。這樣就需要使用兩個背景數據,如果控制的電機臺數更多,則會使用更多的數據塊。使用多重背景數據塊就是為了減少數據塊的數量。
像這種情況,我們就可以利用多重背景數據塊來減少數據塊的使用量。拿本例來說,我們就可以在OB1中調用FB10,再在FB10中分別調用(每臺電機各調用一次)FB1來控制兩臺電機的運轉。對于每次調用,FB1都將它的數據存儲在FB1的背景數據塊DB1中。這樣就無需再為FB1分配數據塊,所有的功能塊都指向FB10的數據塊DB10。原理圖如下:
產品咨詢