加入收藏 在線留言 聯系我們
關注微信
手機掃一掃 立刻聯系商家
全國服務熱線18717946324
單位新聞
西門子6ES7331-7KB02-0AB0(產品信息)
發布時間: 2023-05-11 10:13 更新時間: 2024-11-23 08:00
觀看西門子6ES7331-7KB02-0AB0(產品信息)視頻

西門子6ES7331-7KB02-0AB0(產品信息)

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控制地址就可以。

   舉個例子來說,有50臺電機需要控制,這些電機除了參數不一樣,控制流程上是一樣的,每個

   電機需要不同的參數去運行,運行中的過程參數要參與到下一次的控制過程中。

   這個要求,用FC做的話,你需要針對不同的電機分配好DB塊,來逐一的確認參數地址,不能混

   淆,保存和調用不能出錯,可以想象會有多麻煩。如果用FB來做呢?寫好控制過程和定義的參

   數的調用就可以了。針對電機重復調用同一個FB,每次調用一個獨立的DB作為背景數據塊

   ,*不必理會背景DB中的數據是怎么存儲的。如果功能需要修改,只要修改該FB就行了。

20210922225004736786

   還有其他的例子,比如PID、比如流量累計等等。

   fc就相當于流水線,加工完就過去了!沒有任何紀錄。fb+db不但可以加工,還能記錄數據的。

   一般有多個設備的時候,我們編寫一個fb然后多次調用,自動生成相應的db,這樣簡化了我們

   的工作。

   FB的變量聲明表中有靜態變量,并可以進行多級的參數傳遞,因此在調用FB時需生成背景數據塊,

   而FC則沒有這些.FB可以替代FC,反之則不行.

   多級的參數傳遞即所謂的MULTIINSTANCE,你可以把FB,DB做為另外一個FB中的函數來調用,

   如在FB2中可以使用FB1中的參數,而終只生成一個背景數據塊。

   Zane:

   FB其實不會占用過多的資源,因為一個程序總是有這些變量的,無論是全局的還是局部變量。

   我現在,大量使用的是FB,FC只用來編一些邏輯,及簡單的子程序,或僅僅幾個CALL指令調用

   FB。使用FB及局部變量,更有利于程序的模塊化,增加程序的可移植性,就象西門子公司提供的FB

   塊.

   其實FB和FC根本的區別是:FB支持靜態變量,而FC只支持臨時變量。

   靜態變量:是調用FB返回時,仍然要為FB保留此變量區,因此不會改變這一區域的數據值。臨

   時變量卻沒有這樣的特性。

   所以在FC中如果在對臨時數據變量處寫入確定的數據前,就去讀時就可能產生不可預見的結果

   ,而對于靜態變量卻不會,因為它會保留你上次寫入的結果。

   萬泉河:

   咱們編制的控制程序,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:

SMART1000

   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的脈沖輸出。

   控制伺服電機

   伺服電機是運動控制中一個很重要的器件,通過它可以進行**的位置控制。它一般帶有編碼器,通過高速計數功能,中斷功能和脈沖輸出功能,構成一個閉環系統,來進行**的位置控制。

   PLC的脈沖輸出

   由于PLC在進行高速輸出時需要使用晶體管輸出。當將高速輸出點作為普通輸出而帶電感性負載時,例如電磁閥,繼電器線圈等,一定要注意,在負載端加保護,例如并聯二極管等。以保護輸出點。

   PLC的程序分為主程序、子程序和中斷程序,本文詳細的介紹了西門子S7-200系列PLC中斷程序的編程方法。具體的講解不同種類的中斷程序的實現方法。熟練的使用中斷程序是PLC編程的一項必要技能。相信本文會對廣大PLC編程人員有所幫助。S7-200的中斷包括定時中斷,IO中斷和通訊中斷。其中IO中斷可以通過外部的IO點來觸發中斷子程序??梢栽O置成幾種模式,例如上升沿觸發,下降沿觸發等。定時中斷是固定時間間隔便觸發一次中斷程序。通訊中斷可以在數據接收或發送完成時或報文接收完成時觸發中斷程序。

   定時中斷功能

   定時中斷是測量周期的一個很重要的工具。在使用編碼器測速度時也要用到定時中斷,即用周期和脈沖數的比例關系來計算速度。定時中斷的中斷號為10(定時中斷0),11(定時中斷1),21(定時器T32中斷),22(定時器T96中斷)。

   通訊中斷的實現

   S7-200的自由口通訊需要設置相應的中斷來判斷通訊是否正常。通訊分為三種即字符發送和接受完成,報文接受完成。其中斷號為口1為8,9,23,口2為25,26,24

STEP 7-Micro/WIN 32編程軟件功能的實現可以在聯機工作方式(在線方式)下進行,部分功能的實現也可以在離線工作方式下進行。

聯機方式:有編程軟件的計算機或編程器與PLC連接,此時允許兩者之間作直接的通信。有關聯機的方法可參見PLC之家的其它文章。

離線方式:有編程軟件的計算機或編程器與PLC斷開連接,此時能完成大部分基本功能。如編程、編譯和調試程序、系統組態等。

@
西門子S7-200系列PLC取反與跳變指令使用及應用實例

取反(NOT)指令將它左邊電路的邏輯運算結果取反,運算結果若為1則變為0,為0則變為1,該指令沒有操作數。能流到達該觸點時即停止;若能流未到達該觸點,該觸點給右側提供能流。

?  正(EU,Edge Up,上升沿)/(ED,Edge Down)負跳變指令  正跳變觸點檢測到一次正跳變(觸點的輸入信號由0變為1)時,或負跳變觸點檢測到一次負跳變(觸點的輸入信號由1變為0)時,觸點接通一個掃描周期。它們沒有操作數,觸點符號中間的“P"和“N"分別表示正跳變(Positive Transition)和負跳變(Negative Transition)

西門子6ES7331-7KB02-0AB0(產品信息)

聯系方式

  • 電  話:18717946324
  • 聯系人:占雪芬
  • 手  機:18717946324
  • 微  信:18717946324