陜西西門子S7-200SMARTPLC代理批發(fā)銷售
西門子S7-200 PLC的功能塊圖(FBD)

功能塊圖(FBD)類似于數(shù)字電子電路,它是將具有各種與、或、非、異或等邏輯關(guān)系的功能塊圖按一定的控制邏輯組合起來。這種編程語言適合那些熟悉數(shù)字電路的人員。
【例】 圖4-86分別使用上述三種編程語言實現(xiàn)如下控制:
當(dāng)輸入點(diǎn)I0.2和內(nèi)部條件M1.0同時接通時觸發(fā)定時器T37,T37的設(shè)定值存放在AC0中。

圖4-86 S7-200的三種編程語言對照
S7-200系列的PLC利用編程軟件STEP 7-Micro/WIN32所提供的梯形圖語言(LAD)、語句表語言(STL)及功能塊圖(FBD)共3種編程語言對實際系統(tǒng)完成軟件編程、運(yùn)行及監(jiān)控。
梯形圖是在繼電器一接觸器控制系統(tǒng)中的控制電路圖的基礎(chǔ)上演變而來的,是應(yīng)用多的一種編程語言,梯形圖與繼電器控制電路圖的基本思想是*的,只是在使用符號和表達(dá)方式上有一定區(qū)別。只要有繼電器控制電路的基礎(chǔ),就能在很短的時間內(nèi),掌握梯形圖的使用和編程方法。
有的PLC的梯形圖有兩根母線,但大部分PLC現(xiàn)在只保留左邊的母線了(包括S7-200PLC)。在梯形圖中,觸點(diǎn)代表邏輯“輸入”條件,如開關(guān)、按鈕、內(nèi)部條件等;線圈通常代表邏輯“輸出”結(jié)果,如燈、電機(jī)接觸器、中間繼電器等。對于S7-200系列PLC來說,還有一種輸出——“方塊圖”,它代表附加的指令,如定時器、計數(shù)器和功能指令等。
梯形圖語言簡單明了,易于理解,是所有編程語言的之一。
下面說明PTO/PWM的初始化及操作步驟,它可以進(jìn)一步理解PTO及PWM功能。在整個說明過程中,一直使用Q0.0輸出。初始化說明假定PLC進(jìn)入運(yùn)行(RUN)進(jìn)行,即利用特殊繼電器SM0.1調(diào)用初始化子程序。假如情況與此不符(如需對PTO/PWM功能重置),當(dāng)然可以利用其他條件調(diào)用初始化程序。
①PWM初始化步驟如下:
·利用SM0.1將輸出位(Q0.0)復(fù)位,并調(diào)用初始化子程序。即隨后的掃描周期不再調(diào)用該初始化子程序,降低掃描時間的同時,使程序結(jié)構(gòu)化更強(qiáng)。
·設(shè)置控制字節(jié),將控制字寫入SMB67(或SMB77)。如16#C1,其意義是,選擇并允許PWM方式的工作,以μs為時間基準(zhǔn),允許更新PWM的周期時間。
·將字型數(shù)據(jù)的PWM周期值寫入SMW68(或SMW78)。
·將字型數(shù)據(jù)的PWM的脈沖寬度值寫入SMW70(或SMW80)。
·如果希望隨時改變脈沖寬度,可以重新向SMB67裝入控制字(16#C2或16#C3)。
·執(zhí)行PLS指令,PLC自動對PTO/PWM的硬件做初始化編程。
·退出子程序。

【例1】 在實驗室環(huán)境中,驗證PWM的功能,控制要求如下:
當(dāng)CPU從STOP到RUN時,輸出點(diǎn)Q0.1立即輸出脈沖,要求周期2s,脈寬1s;當(dāng)輸入按鈕I0.0按下之后,周期不改變,脈寬改為0.5s。
分析:
·由于實驗室的設(shè)備以學(xué)生練習(xí)為目的,其輸出類型均為繼電器類型(交/直流輸出都可連接),同時也為了便于監(jiān)控和延長使用壽命,周期和脈寬值不要太?。〞r基應(yīng)為μs),本例中因為周期和脈寬都以秒為單位,所以時基為ms,如周期2s,則設(shè)定值為2000。
·改變PWM的輸出形式,必須通過重新初始化來實現(xiàn)(通過I0.0上升沿來調(diào)用重新初始化程序段),在重新初始化的過程中,只需對改變的參數(shù)重新賦值,并通過執(zhí)行PLS指令啟動PWM輸出按新參數(shù)運(yùn)行。
②PTO操作的初始化。首先應(yīng)確定高速脈沖串的輸出端子(Q0.0或Q0.1)和脈沖序列的實現(xiàn)方式(單段或多段)。然后再進(jìn)行PTO的初始化,其過程如下:
·利用SM0.1將輸出位(Q0.0或Q0.1)復(fù)位,并調(diào)用初始化子程序。即隨后的掃描周期不再調(diào)用該初始化子程序,降低掃描時間的同時,使程序結(jié)構(gòu)化更強(qiáng)。
·設(shè)置控制字節(jié),將控制字寫入SMB67或SMB77。
·如果是單段PTO,則向SMW68或SMW78寫入初始周期值,并向SMD72或SMD82寫入脈沖個數(shù)。
·如果是多段PTO,則需向SMB166S或MB176寫入段數(shù),向SMW168或SMW178裝入包絡(luò)表的首地址(可以子程序的形式建立包絡(luò)表)。
·當(dāng)脈沖序列輸出完成時,發(fā)出告知信號或觸發(fā)其他操作時,需將中斷事件號19或20和某個中斷服務(wù)程序相連接(ATCH)。
·編寫中斷服務(wù)子程序。
·設(shè)置全局開中斷。
·執(zhí)行PLS指令。
·退出子程序。

【例2】 多段PTO輸出控制應(yīng)用舉例。
某臺步進(jìn)電動機(jī)的運(yùn)行曲線如圖4-81所示,需要4000個脈沖,其中需要200個脈沖使電動機(jī)從A點(diǎn)加速運(yùn)行到B點(diǎn),然后恒速運(yùn)行3400個脈沖到C點(diǎn),后需要400個脈沖減速到D點(diǎn),這時指示燈Q0.5亮,表示從A點(diǎn)到D點(diǎn)的運(yùn)行過程結(jié)束。
①選擇由Q0.0輸出,由圖4-81可知,選擇3段(AB段、BC段和CD段)PTO的輸出形式。
②確定周期值的時基單位,因為在BC段輸出的頻率大,為10kHz,對應(yīng)的周期值為100μs,因此選擇時基單位為μs,向控制字節(jié)SMB67寫入控制字16#A0。
③確定初始周期值、周期增量值。
·初始周期值的確定比較容易,是每段初始頻率的倒數(shù)。AB段為500μs,BC段為100μs,CD段為100μs。
·周期增量值的確定。周期增量值的確定可通過計算來得到,計算公式為:(Tn+1-Tn)/N,式中,Tn+1為該段結(jié)束的周期時間,Tn為該段開始的周期時間,N為該段的脈沖數(shù)。
④建立包絡(luò)表。設(shè)包絡(luò)表的首地址為VB200,包絡(luò)表中的參數(shù)如表4-37所示。
表4-37 包絡(luò)表的參數(shù)
V變量存儲器地址 | 參數(shù)名稱 | 參數(shù)值 |
VB200 | 總包絡(luò)段數(shù) | 3 |
VW201 | 加速階段 | 初始周期值 | 500μs |
VW203 | 周期增量值 | -2μs |
VD205 | 輸出脈沖數(shù) | 200 |
VW209 | 恒速階段 | 初始周期值 | 100μs |
VW211 | 周期增量值 | 0μs |
VD213 | 輸出脈沖數(shù) | 3400 |
VW217 | 減速階段 | 初始周期值 | 100μs |
VW219 | 周期增量值 | 1μS |
VD221 | 輸出脈沖數(shù) | 400 |
⑤設(shè)置中斷事件,編寫中斷服務(wù)子程序。當(dāng)3段PTO輸出完成時,對應(yīng)的中斷事件號是19,用中斷連接指令將中斷事件號19與中斷服務(wù)子程序INT2連接起來,編寫中斷服務(wù)子程序。
⑥設(shè)置全局開中斷ENI。
⑦執(zhí)行PLS指令。
步進(jìn)電動機(jī)系統(tǒng)的控制程序如圖4-82所示,是由主程序、初始化子程序和中斷服務(wù)程序構(gòu)成的。
注意:本程序不宜在實驗室環(huán)境運(yùn)行,因為4000個脈沖會在不到1s就會輸出完成,這既不便于觀察,也會損壞實驗設(shè)備。如用于實驗,應(yīng)大幅度地減小頻率及各段脈沖數(shù)。
PTO輸出形式是指從Q0.0或(和)Q0.1輸出周期的一段或幾段方波脈沖序列,周期值為16位無符號數(shù)據(jù),周期范圍為50~65535μs或2~65535ms,一般對周期值的設(shè)定為偶數(shù),否則會引起輸出波形占空比的失真。每段脈沖序列中,脈沖的數(shù)量為32位數(shù)據(jù),可分別設(shè)定為1~ 4294967295個。
在PTO輸出形式中,允許連續(xù)輸出多個方波脈沖序列(脈沖串),每個脈沖串的周期和脈沖數(shù)可以不同。當(dāng)需要輸出多個脈沖串時,允許這些脈沖串進(jìn)行排隊,在當(dāng)前的脈沖串輸出完成后,立即輸出新的脈沖串。根據(jù)實現(xiàn)方式,可分為單段PTO和多段PTO。
①單段PTO。在單段PTO輸出時,序列中只能存放1個脈沖串的控制參數(shù)(入口地址)。在當(dāng)前脈沖串輸出期間,就要對與下一個脈沖串相關(guān)的特殊繼電器進(jìn)行更新,待當(dāng)前的脈沖串輸出完成后,通過執(zhí)行PLS指令,就可以立即輸出新的脈沖串,實現(xiàn)多段脈沖串的連續(xù)輸出。

采用單段PTO的優(yōu)點(diǎn)是:各個脈沖串的時間基準(zhǔn)可以不同。
采用單段PTO的缺點(diǎn)是:編程復(fù)雜且繁瑣,當(dāng)參數(shù)設(shè)置不當(dāng)時,會造成各個脈沖串連接的不平滑。
②多段PTO。當(dāng)采用多段PTO輸出高速脈沖串時,需要將包絡(luò)表的V內(nèi)存起始偏移地址裝載到SMW168或SMW178,并建立一個包絡(luò)表,在包絡(luò)表中存儲各個脈沖串的參數(shù),當(dāng)執(zhí)行PLS指令時,CPU自動按順序從包絡(luò)表中調(diào)出各個脈沖串的入口地址,連續(xù)輸出各個脈沖串。
包絡(luò)表由段數(shù)和每段參數(shù)構(gòu)成,每段長度為8個字節(jié),用于存儲初始周期值(16位),周期增量值(16位),脈沖個數(shù)(32位)。表4-36給出了多段PTO操作的包絡(luò)表格式。
表4-36 包絡(luò)表的格式
字節(jié)偏移地址 | 段 數(shù) | 存儲說明 |
VBn | - | 段數(shù)目,數(shù)據(jù)范圍:1~255(0不產(chǎn)生PTO輸出) |
VWn+1 | 1# | 初始周期值,字型數(shù)據(jù),數(shù)據(jù)范圍:2~65535 |
VWn+3 | 周期增量值,有符號整數(shù),范圍:-32768~+32767 |
VDn+5 | 輸出脈沖數(shù),無符號整數(shù),范圍:1~4294967295 |
VWn+9 | 2# | 初始周期值,字型數(shù)據(jù),數(shù)據(jù)范圍:2~65535 |
VWn+11 | 周期增量值,有符號整數(shù),范圍:-32768~+32767 |
VDn+13 | 輸出脈沖數(shù),無符號整數(shù),范圍:1~4294967295 |
… | … | … |
采用多段PTO輸出的優(yōu)點(diǎn)是:編程簡單,可按照程序設(shè)定的周期增量值自動增減脈沖周期。
采用多段PTO輸出的缺點(diǎn)是:所有脈沖串的時間基準(zhǔn)必須*,當(dāng)執(zhí)行PLS指令時,包絡(luò)表中的所有參數(shù)均不能改變。

陜西西門子S7-200SMARTPLC代理批發(fā)銷售