西門子模塊6ES7312-5BF04-0AB0型號齊全
西門子模塊6ES7312-5BF04-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可以生成靜態(tài)變量,,在下次函數調用時數據可以保留,而FC的變量只在調用期內有效,,下次調用又重新更換,。每次調用FC的I/O區(qū)域必須要自己每次手動輸入,而FB就不要,,省去不少麻煩,如果在上位機控制直接輸入DB控制地址就可以,。
舉個例子來說,有50臺電機需要控制,,這些電機除了參數不一樣,,控制流程上是一樣的,每個
電機需要不同的參數去運行,,運行中的過程參數要參與到下一次的控制過程中,。
這個要求,用FC做的話,,你需要針對不同的電機分配好DB塊,,來逐一的確認參數地址,不能混
淆,,保存和調用不能出錯,,可以想象會有多麻煩。如果用FB來做呢,?寫好控制過程和定義的參
數的調用就可以了,。針對電機重復調用同一個FB,每次調用一個獨立的DB作為背景數據塊
,*不必理會背景DB中的數據是怎么存儲的,。如果功能需要修改,,只要修改該FB就行了。
還有其他的例子,,比如PID,、比如流量累計等等。
fc就相當于流水線,,加工完就過去了,!沒有任何紀錄。fb+db不但可以加工,,還能記錄數據的,。
一般有多個設備的時候,我們編寫一個fb然后多次調用,,自動生成相應的db,,這樣簡化了我們
的工作。
FB的變量聲明表中有靜態(tài)變量,并可以進行多級的參數傳遞,因此在調用FB時需生成背景數據塊,
而FC則沒有這些.FB可以替代FC,反之則不行.
多級的參數傳遞即所謂的MULTIINSTANCE,,你可以把FB,,DB做為另外一個FB中的函數來調用,
如在FB2中可以使用FB1中的參數,,而終只生成一個背景數據塊,。
Zane:
FB其實不會占用過多的資源,因為一個程序總是有這些變量的,,無論是全局的還是局部變量,。
我現在,大量使用的是FB,,FC只用來編一些邏輯,及簡單的子程序,,或僅僅幾個CALL指令調用
FB,。使用FB及局部變量,更有利于程序的模塊化,增加程序的可移植性,就象西門子公司提供的FB
塊.
其實FB和FC根本的區(qū)別是:FB支持靜態(tài)變量,而FC只支持臨時變量,。
靜態(tài)變量:是調用FB返回時,,仍然要為FB保留此變量區(qū),因此不會改變這一區(qū)域的數據值,。臨
時變量卻沒有這樣的特性,。
所以在FC中如果在對臨時數據變量處寫入確定的數據前,就去讀時就可能產生不可預見的結果
,,而對于靜態(tài)變量卻不會,,因為它會保留你上次寫入的結果。
萬泉河:
咱們編制的控制程序,FB極少用到,。所說的用FB來替代FC實用的情況,,更是少見,有誰曾經把
FC全部用光啦,?恐怕系統(tǒng)都不能負擔了,。
提供的標準庫中,FB倒是不少的,。
如果你要編制的函數沒有用到靜態(tài)變量,,恐怕沒有必要使用FB吧?我看高級語言中,,雖然靜態(tài)
變量使用很容易,,但實際用也很少啊。
俠客:我和zane的觀點一樣,,我工作中也是把相同功能的工作編制成FB,,然后在FC里調用,程
序修改起來方便,,舉個例子:如果你有10臺電機,,一般我們都要給他編制啟動,停止邏輯,,報
警,,復位邏輯。如果我編一個FB把這些邏輯都做好了,,為每一個電機分配一個背景數據塊的話
,,我在FC調用這些電機時,我只要把這些電機對應的I/O點添到FB的管腳上就可以了,,*不再
用考慮他里面的邏輯了,,如果你全是用FC編這些邏輯的話,1,、你要寫10遍,,2、如果你用粘貼
和復制的話,,有可能有的I/O點忘記修改或其他一些錯誤,,3、程序的結構性不強,,維護起來浪費
時間,。
所以,FB和FC結合起來用是的,。
建議大家試試FB,,當你理解了FB后,,你會感到驚喜的
Zane:關于FB,FC的使用,,我也是在具體的應用中一步一步地體會過來的,,不過這僅是我個人
的看法與體會,并沒有說一定要這樣用,,各位可以做不同的嘗試,。但有一點是肯定的,就是在
動手寫程序之前,,事先對整個項目要有一個很好的規(guī)劃,。
看老外的程序通常都是在FC里直接編程,而國內的多是在FB里編程然后再在FC里調用,。這兩種
方法各有什么優(yōu)缺點呢,?
用FC能實現的任務,就沒必要用FB,。
FCFB本質上一樣
調用FB相當于在FC里opndi,,并使用ar2來索引變量
FB的優(yōu)點是數據塊里的變量可按名字使用,僅僅是顯示而已,,執(zhí)行效率和fc一樣
補充:
實際上FC更加靈活,在fc里可以多次調用opndi訪問多個背景塊,,ar2也可以做多種用途
而fb里的ar2原則上是不能使用了,調用fb還要數據塊,,麻煩
補充2:
FB實際上是編程環(huán)境玩的一個魔法而已
PLC的程序指令上實際是沒有FB和FC的區(qū)別的
調用FB或者FC終都是轉化為UC或CC的調用指令
要觀察編程環(huán)境的這個魔法,,只需寫一個帶參子程序(FB或FC),并在另一個塊里調用,全部
下載后,,再更改子程序的參數接口,,下載該子程序
(此時調用塊的調用指令已無效),然后上載調用塊
1,,一般用FB編寫一些常用的控制程序,,例如閥泵的控制等等,在接口得stat變量里面可以定義一些閥門得開度預設值(不通過輸入,,直接在HMI上面可以控制的),,并且可以把現場的故障信號寫入stat變量中,直接送到HMI上面,。
2,而FC一般就是調用這些FB,,給一些輸入輸出即可,。
3,FC的所有輸入輸出必須賦值,,而FB只要給出背景數據塊即可,。
4,,當然如果說我不需要什么過程的數值,那就FC好了,,簡單,。
如果大家對計算機編程有點了解的話,我覺得可以這樣理解:
1,、FC象程序里的“函數",,直接調用,針對過程編程,;
2,、FB則象是“類",具有接口,、屬性以及方法,,用于對“控制對象"編程,而FB的DB就象是一個具體的“控制對象"的實例,。
西門子S7-200PLC具有脈沖輸出功能,,在運動控制系統(tǒng)中,伺服電機和步進電機是很重要的精確定位裝置,,而控制伺服電機和步進電機需要使用脈沖輸出,。S7-200系列PLC可以輸出20--100KHz的脈沖。使用PTO和PWM指令可以輸出普通脈沖和脈寬調制輸出,。通過smb66-75,,smb166-175來控制Q0.0的輸出,通過smb76-85,,smb176-185來控制Q0.1的脈沖輸出,。
控制伺服電機
伺服電機是運動控制中一個很重要的器件,通過它可以進行精確的位置控制,。它一般帶有編碼器,,通過高速計數功能,中斷功能和脈沖輸出功能,,構成一個閉環(huán)系統(tǒng),,來進行精確的位置控制。
PLC的脈沖輸出
由于PLC在進行高速輸出時需要使用晶體管輸出,。當將高速輸出點作為普通輸出而帶電感性負載時,,例如電磁閥,繼電器線圈等,,一定要注意,,在負載端加保護,例如并聯(lián)二極管等,。以保護輸出點,。
PLC的程序分為主程序,、子程序和中斷程序,本文詳細的介紹了西門子S7-200系列PLC中斷程序的編程方法,。具體的講解不同種類的中斷程序的實現方法,。熟練的使用中斷程序是PLC編程的一項必要技能。相信本文會對廣大PLC編程人員有所幫助,。S7-200的中斷包括定時中斷,,IO中斷和通訊中斷。其中IO中斷可以通過外部的IO點來觸發(fā)中斷子程序,??梢栽O置成幾種模式,例如上升沿觸發(fā),,下降沿觸發(fā)等,。定時中斷是固定時間間隔便觸發(fā)一次中斷程序。通訊中斷可以在數據接收或發(fā)送完成時或報文接收完成時觸發(fā)中斷程序,。
定時中斷功能
定時中斷是測量周期的一個很重要的工具,。在使用編碼器測速度時也要用到定時中斷,即用周期和脈沖數的比例關系來計算速度,。定時中斷的中斷號為10(定時中斷0),11(定時中斷1),,21(定時器T32中斷),22(定時器T96中斷),。
通訊中斷的實現
S7-200的自由口通訊需要設置相應的中斷來判斷通訊是否正常,。通訊分為三種即字符發(fā)送和接受完成,報文接受完成,。其中斷號為口1為8,9,23,,口2為25,26,24
STEP 7-Micro/WIN 32編程軟件功能的實現可以在聯(lián)機工作方式(在線方式)下進行,部分功能的實現也可以在離線工作方式下進行,。
聯(lián)機方式:有編程軟件的計算機或編程器與PLC連接,,此時允許兩者之間作直接的通信。有關聯(lián)機的方法可參見PLC之家的其它文章,。
離線方式:有編程軟件的計算機或編程器與PLC斷開連接,,此時能完成大部分基本功能。如編程,、編譯和調試程序,、系統(tǒng)組態(tài)等。
@
西門子S7-200系列PLC取反與跳變指令使用及應用實例
取反(NOT)指令將它左邊電路的邏輯運算結果取反,,運算結果若為1則變?yōu)?,,為0則變?yōu)?,該指令沒有操作數,。能流到達該觸點時即停止,;若能流未到達該觸點,該觸點給右側提供能流,。
? 正(EU,,Edge Up,上升沿)/(ED,,Edge Down)負跳變指令 正跳變觸點檢測到一次正跳變(觸點的輸入信號由0變?yōu)?)時,,或負跳變觸點檢測到一次負跳變(觸點的輸入信號由1變?yōu)?)時,觸點接通一個掃描周期,。它們沒有操作數,,觸點符號中間的“P"和“N"分別表示正跳變(Positive Transition)和負跳變(Negative Transition)。
? 取反與跳變指令的應用
@
西門子PLC控制系統(tǒng)設計的幾個步驟
(一)決定系統(tǒng)所需的動作及次序,。
當使用可編程控制器時,,重要的一環(huán)是決定系統(tǒng)所需的輸入及輸出。輸入及輸出要求:
設定系統(tǒng)輸入及輸出數目,。
(2) 第二步是決定控制先后,、各器件相應關系以及作出何種反應。
(二)對輸入及輸出器件編號
每一輸入和輸出,,包括定時器,、計數器、內置寄存器等都有一個應編號,,不能混用,。
(三)畫出梯形圖。
根據控制系統(tǒng)的動作要求,,畫出梯形圖,。
(四)將梯形圖轉化為程序
把繼電器梯形圖轉變?yōu)榭删幊炭刂破鞯木幋a,當完成梯形圖以后,,下一步是把它的編碼編譯成可編程控制器能識別的程序,。
這種程序語言是由序號(即地址)、指令(控制語句),、器件號(即數據)組成,。地址是控制語句及數據所存儲或擺放的位置,指令告訴可編程控制器怎樣利用器件作出相應的動作,。
(五)在編程方式下用鍵盤輸入程序,。
(六)編程及設計控制程序。
(七)測試控制程序的錯誤并修改,。
(八)保存完整的控制程序,。
一、移位指令和循環(huán)指令概述
1,、功能:STEP7移位指令能夠將累加器1低字的內容或者整個累加器的內容逐位向左或者向右移動,。移動位數由輸入值N決定,。向左移位相當于累加器的內容乘以2的冪次方;向右移位相當于累加器的內容除以2的N次方,。循環(huán)指令能夠將累加器1整個內容逐位向左或者向右循環(huán)移位,。
2、分類:
移位指令:字左移指令SHL_W
字右移指令SHR_W
1 .系統(tǒng)設計的主要內容
( 1 )擬定控制系統(tǒng)設計的技術條件,。技術條件一般以設計任務書的形式來確定,,它是整個設計的依據;
( 2 )選擇電氣傳動形式和電動機,、電磁閥等執(zhí)行機構,;
( 3 )選定 PLC 的型號;
( 4 )編制 PLC 的輸入 / 輸出分配表或繪制輸入 / 輸出端子接線圖,;
( 5 )根據系統(tǒng)設計的要求編寫軟件規(guī)格說明書,,然后再用相應的編程語言(常用梯形圖)進行程序設計;
( 6 )了解并遵循用戶認知心理學,,重視人機界面的設計,,增強人與機器之間的友善關系;
( 7 )設計操作臺,、電氣柜及非標準電器元部件,;
( 8 )編寫設計說明書和使用說明書