《西門子S7-300400PLC技術(shù)與應(yīng)用》課件 第4章 S7-300400的線性編程_第1頁
《西門子S7-300400PLC技術(shù)與應(yīng)用》課件 第4章 S7-300400的線性編程_第2頁
《西門子S7-300400PLC技術(shù)與應(yīng)用》課件 第4章 S7-300400的線性編程_第3頁
《西門子S7-300400PLC技術(shù)與應(yīng)用》課件 第4章 S7-300400的線性編程_第4頁
《西門子S7-300400PLC技術(shù)與應(yīng)用》課件 第4章 S7-300400的線性編程_第5頁
已閱讀5頁,還剩181頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

26六月2025第4章S7-300/400的線性編程

線性化編程:整個用戶程序放在循環(huán)控制組織塊OB1(主程序)中,循環(huán)掃描時不斷地依次執(zhí)行OB1中的全部指令。優(yōu)點(diǎn):不帶分支,不涉及功能塊、功能、數(shù)據(jù)塊、局部變量和中斷等較復(fù)雜的概念,結(jié)構(gòu)簡單,容易入門。缺點(diǎn):由于所有的指令都在一個塊中,即使程序中的某些部分代碼在大多數(shù)時候并不需要執(zhí)行,但循環(huán)掃描工作方式中每個掃描周期都要掃描執(zhí)行所有的指令,CPU額外增加了不必要的負(fù)擔(dān),沒有充分利用。此外如果要求多次執(zhí)行相同或類似的操作,線性化編程的方法需要重復(fù)編寫相同和類似的程序。26六月2025第4章S7-300/400的線性編程

4.1指令的組成4.2位邏輯運(yùn)算指令4.3定時器指令4.4計數(shù)器指令4.5裝載和傳送指令4.6比較指令4.7轉(zhuǎn)換指令4.8數(shù)學(xué)運(yùn)算指令4.9移位和循環(huán)指令26六月2025指令是能執(zhí)行的一種基本操作的描述,是程序的基本單元。用戶程序是由若干條順序排列的指令構(gòu)成的,對應(yīng)語句表(STL)和梯形圖(LAD)等編程語言。指令語句指令梯形圖指令4.1

指令的組成26六月2025(1)語句指令一條語句指令由一個操作碼和一個操作數(shù)組成。例如:OI1.2

有些語句指令不帶操作數(shù),它們的操作數(shù)是唯一的,隱含在指令當(dāng)中。例如:“NOT”就是對邏輯操作結(jié)果(RLO)取反。操作碼,給出要執(zhí)行的功能,它告訴PLC的CPU應(yīng)該做什么動作。這里表示執(zhí)行“或”操作。操作數(shù),由標(biāo)識符和參數(shù)組成。操作數(shù)為執(zhí)行操作所需要的信息,它告訴CPU操作的對象是什么。這里指出這是對輸入繼電器I1.2進(jìn)行的操作。26六月2025(2)梯形圖指令梯形圖指令用圖形元素表示PLC要完成的操作。例如:在該梯形圖指令中,——(S)——可以作為操作碼,表示一個二進(jìn)制的置位指令;Q0.0是操作數(shù),表示置位的對象。26六月20254.2位邏輯運(yùn)算指令位邏輯指令處理兩個數(shù)字:“1”和“0”,這兩個數(shù)字構(gòu)成二進(jìn)制數(shù)字系統(tǒng)的基礎(chǔ)。數(shù)字“1”和“0”稱為二進(jìn)制數(shù)字或二進(jìn)制位,可代表輸入觸點(diǎn)的閉合和斷開,或者輸出線圈的通電和斷電。位邏輯指令的功能就是采集輸入/輸出信號狀態(tài)(1或者0),并根據(jù)布爾邏輯對它們進(jìn)行組合運(yùn)算,再將邏輯運(yùn)算結(jié)果(1或者0)儲存在狀態(tài)字寄存器的RLO位上或輸出線圈位上,如位存儲器M或者輸出映像存儲器Q等。26六月2025表4.1LAD位邏輯指令26六月2025表4.2位邏輯指令表STL位邏輯指令說明基本STL位邏輯指令A與AN與非O或ON或非X異或XN異或非O先與后或嵌套STL位邏輯指令A(“與”操作嵌套開始AN(“與非”操作嵌套開始O(“或”操作嵌套開始ON(“或非”操作嵌套開始X(“異或”操作嵌套開始XN(“異或非”操作嵌套開始)嵌套閉合STL位邏輯指令說明其他STL位邏輯指令=賦值CLRRLO清零FN下降沿檢測FP上升沿檢測NOTRLO取反R復(fù)位S置位SAVE將RLO存入BR寄存器SETRLO置位26六月20254.2.1觸點(diǎn)和線圈指令

在LAD中通常使用類似繼電器控制電路中的觸點(diǎn)符號及線圈符號來表示觸點(diǎn)和線圈指令。觸點(diǎn)有常開觸點(diǎn)和常閉觸點(diǎn)觸點(diǎn)表示一個位信號的狀態(tài).地址可以選擇I、Q、M、DB、L數(shù)據(jù)區(qū)。對應(yīng)的元件被操作時,其常開觸點(diǎn)閉合,否則對應(yīng)常開觸點(diǎn)復(fù)位,即觸點(diǎn)仍處于斷開的狀態(tài)。對應(yīng)的元件被操作時,其常閉觸點(diǎn)斷開,否則對應(yīng)常閉觸點(diǎn)復(fù)位,即觸點(diǎn)保持閉合狀態(tài)。26六月20254.2.1觸點(diǎn)和線圈指令線圈輸出指令對一個位信號進(jìn)行賦值。地址可以選擇Q、M、DB、L數(shù)據(jù)區(qū)。線圈可以作為輸出信號、程序處理的中間點(diǎn),當(dāng)觸發(fā)條件滿足時,線圈被賦值為1,當(dāng)條件再次不滿足時,線圈被賦值為0。輸出線圈總是在程序段的最右邊。線圈輸出等同于STL程序中的賦值指令“=”。線圈有線圈輸出和中間輸出。26六月20254.2.1觸點(diǎn)和線圈指令梯形圖設(shè)計中,如果一個邏輯串很長,不便于編輯?;蛘咝枰玫竭壿嬏幚淼闹虚g狀態(tài)時,可以使用中間輸出指令將邏輯串分成幾段。前一段的邏輯運(yùn)算結(jié)果可以作為中間輸出存儲在存儲器M中,該存儲位可以當(dāng)作一個觸點(diǎn)出現(xiàn)在其他的邏輯串中,中間輸出只能放在梯形圖邏輯串的中間,不能出現(xiàn)在邏輯串的兩端。26六月20254.2.1觸點(diǎn)和線圈指令該例中左圖的Network1中間指令的作用就是將此處的RLO的值存在位存儲器M0.0中,以便Network2中使用該存儲器。一般中間指令用在復(fù)雜的邏輯串中,簡單的邏輯串一般都等效于Network3,采用輸出線圈連續(xù)使用的方法來編寫程序。圖4.126六月20254.2.2基本邏輯指令基本邏輯指令有“與”、“或”、“異或”和“取反”等指令。邏輯與指令在梯形圖里是用觸點(diǎn)串聯(lián)表示。只有當(dāng)兩個觸點(diǎn)的輸入狀態(tài)都是“1”時,輸出為“1”。兩者中,只要有一個為“0”,則輸出為“0”。邏輯與指令在STL指令中的“A”表示對原變量(常開觸點(diǎn))執(zhí)行邏輯與操作。“AN”表示對反變量(常閉觸點(diǎn))執(zhí)行邏輯與操作。圖4.2邏輯與指令示例26六月20254.2.2基本邏輯指令邏輯或指令在梯形圖中用觸點(diǎn)并聯(lián)表示。只要有一個觸點(diǎn)的輸入狀態(tài)為“1”,輸出為“1”,若兩者都為“0”,則輸出為“0”。邏輯或指令在STL指令中的“O”表示對原變量(常開觸點(diǎn))執(zhí)行邏輯或操作?!癘N”表示對反變量(常閉觸點(diǎn))執(zhí)行邏輯或操作。圖4.3邏輯或指令示例26六月20254.2.2基本邏輯指令邏輯異或指令只有當(dāng)一個觸點(diǎn)的輸入狀態(tài)為“1”,另一個觸點(diǎn)的輸入狀態(tài)為“0”時,輸出為“1”,如果兩個觸點(diǎn)狀態(tài)同時為“1”或同時為“0”,則輸出為“0”。在STL指令中的“X”表示對原變量(常開觸點(diǎn))執(zhí)行邏輯異或操作,“XN”表示對反變量(常閉觸點(diǎn))執(zhí)行邏輯異或操作。圖4.4異或電路示例圖4.5同或電路示26六月20254.2.3嵌套指令

“與”運(yùn)算嵌套開始A(“與非”運(yùn)算嵌套開始AN(“或”操作嵌套開始O(“或非”運(yùn)算嵌套開始ON(“異或”運(yùn)算嵌套開始X(“同或”運(yùn)算嵌套開始XN(可以將RLO和OR位以及一個函數(shù)代碼保存到嵌套堆棧中,最多可有7個嵌套堆棧輸入項。26六月20254.2.3嵌套指令

使用嵌套結(jié)束)指令,打開括號組A(、AN(、O(、ON(、X(、XN(的語句,可以從嵌套堆棧中刪除一個輸入項,恢復(fù)OR位,根據(jù)函數(shù)代碼,將包含在堆棧條目中的RLO與當(dāng)前RLO互連,并將結(jié)果分配給RLO。如果函數(shù)代碼為“AND(與)”或“ANDNOT(與非)”,則也包括OR位。與嵌套指令的用法如下圖所示。26六月20254.2.3嵌套指令“先與后或(O)”指令根據(jù)先“與”后“或”規(guī)則對“與”運(yùn)算結(jié)果執(zhí)行“或”運(yùn)算。CPU的掃描順序是先“與”后“或”,遇到括號時則先掃描括號內(nèi)的指令,再掃描括號外的指令。對于STL先與后或的操作可不使用括號,先或后與操作規(guī)則必須使用括號來改變自然掃描式順序。所以或嵌套指令很少使用,圖4.9所示的例子就是采用先與后或的原則來編寫程序,所以可以不采用嵌套指令。圖4.7先與后或原則編程示例26六月20254.2.4置位復(fù)位指令置位(S)和復(fù)位(R)指令,根據(jù)觸發(fā)條件(RLO值)來決定線圈的信號狀態(tài)是否改變。當(dāng)觸發(fā)條件滿足(RLO=1),置位指令將一個線圈置1,當(dāng)條件再次不滿足(RLO=0),線圈值保持不變,只有觸發(fā)復(fù)位指令才能將線圈值復(fù)位為0。同樣當(dāng)觸發(fā)條件滿足(RLO=1),復(fù)位指令將一個線圈置0,當(dāng)條件再次不滿足(RLO=0),線圈值保持不變,只有觸發(fā)置位指令才能將線圈置位為1。26六月20254.2.4置位復(fù)位指令圖4.8置位和復(fù)位指令的用法示例圖4.9置位和復(fù)位指令示例的時序圖26六月20254.2.5RS和SR觸發(fā)器指令在LAD中RS和SR觸發(fā)器帶有觸發(fā)器優(yōu)先級。RS觸發(fā)器為“置位優(yōu)先”型觸發(fā)器,當(dāng)置位信號S和復(fù)位信號R同時為1時,觸發(fā)器最終為置位狀態(tài);SR觸發(fā)器為“復(fù)位優(yōu)先”型觸發(fā)器,當(dāng)置位信號S和復(fù)位信號R同時為1時,觸發(fā)器最終為復(fù)位狀態(tài)。26六月20254.2.5RS和SR觸發(fā)器指令圖4.10RS觸發(fā)器和SR觸發(fā)器的梯形圖和工作時序圖26六月20254.2.6對RLO的直接操作指令在step7中,可用表4.3中的指令來直接改變邏輯操作結(jié)果RLO的狀態(tài)。

26六月20254.2.6對RLO的直接操作指令Network1中,設(shè)I0.0閉合、I0.1斷開,則RLO應(yīng)該為1,但經(jīng)過NOT指令后RLO變?yōu)?,所以Q0.0為0(斷電)。在Network2中SAVE指令是將當(dāng)前的RLO狀態(tài)存入BR中。

Network1、Network2這兩種指令都有梯形圖和語句表兩種。Network3和Network4中的SET和CLR卻只有語句表形式,圖中的SET指令使得RLO為1,并將Q0.1和Q0.2賦值為1;CLR指令使得RLO為0,并將M1.01和Q0.3賦值為0。圖4.11對RLO的直接操作命令示例26六月20254.2.7邊沿檢測指令當(dāng)信號狀態(tài)變化時就產(chǎn)生跳變沿:從0變到1時,產(chǎn)生一個上升沿(也稱正跳沿);從1變到0時,產(chǎn)生一個下降沿(也稱負(fù)跳變)。跳變沿檢測的方法是:在每個掃描周期(OB1循環(huán)掃描一周),把當(dāng)前信號狀態(tài)和它在前一個掃描周期的狀態(tài)相比較,若不同,則表明有一個跳變沿。因此,前一個周期里的信號狀態(tài)必須被存儲,以便能和新的信號狀態(tài)相比較。26六月20254.2.7邊沿檢測指令S7-300/400PLC有兩種邊沿檢測指令:一種是對邏輯串操作結(jié)果RLO的跳變沿檢測的指令;另一種是對單個觸點(diǎn)跳變沿檢測的指令。(1)RLO跳變沿檢測指令RLO跳變沿檢測可分別檢測正跳沿和負(fù)跳沿。1)使用RLO上升沿檢測指令(FP<位>)可以在RLO從“0”變?yōu)椤?”時檢測到一個上升沿,并以RLO=1顯示。

在每一個程序掃描周期內(nèi),RLO位的信號狀態(tài)將與上一個周期中獲得的RLO位信號狀態(tài)進(jìn)行比較,看是否有變化,上一個周期的RLO信號狀態(tài)必須保存在沿標(biāo)志位地址(<位>)中,以便進(jìn)行比較。如果在當(dāng)前和先前的RLO“0”狀態(tài)之間發(fā)生變化(檢測到上升沿),則在該指令執(zhí)行后,RLO位將為“1”。26六月20254.2.7邊沿檢測指令2)使用RLO下降沿檢測指令(FN<位>)可以在RLO從“1”變?yōu)椤?”時檢測到下降沿,并以RLO=1顯示。在每一個程序掃描周期內(nèi),RLO位的信號狀態(tài)將與上一個周期中獲得的RLO位信號狀態(tài)進(jìn)行比較,看是否有變化。上一個周期的RLO信號狀態(tài)必須保存在沿標(biāo)志位地址(<位>)中,以便進(jìn)行比較。如果在當(dāng)前和先前的RLO"1”狀態(tài)之間發(fā)生變化(檢測到下降沿),則在該指令執(zhí)行后,RLO位將為“1”。26六月20254.2.7邊沿檢測指令表4.4RLO跳變沿檢測指令格式26六月20254.2.7邊沿檢測指令26六月20254.2.7邊沿檢測指令(2)觸點(diǎn)跳變沿檢測指令

觸點(diǎn)跳變沿檢測可分別檢測正跳沿和負(fù)跳沿。

1)觸點(diǎn)正跳沿檢測指令:在LAD中以功能框表示,它有三個輸入端,一個連接允許輸入端,而<位地址1>為被檢測的觸點(diǎn),第三個輸入端M_BIT所接的<位地址2>存儲上一個掃描周期觸點(diǎn)的狀態(tài)。有一個輸出端Q,當(dāng)觸點(diǎn)狀態(tài)從0到1時,輸出端Q接通一個掃描周期。POS(地址上升沿檢測指令)可以將<地址1>的信號狀態(tài)與存儲在<地址2>中的先前掃描的信號狀態(tài)進(jìn)行比較。如果當(dāng)前的RLO狀態(tài)為“1”,而先前的狀態(tài)為“0”(上升沿檢測),則在操作之后,RLO位將為“1”。26六月20254.2.7邊沿檢測指令2)觸點(diǎn)負(fù)跳沿檢測指令:在LAD中以功能框表示,它有三個輸入端,一個連接允許輸入端,而<位地址1>為被檢測的觸點(diǎn),第三個輸入端M_BIT所接的<位地址2>存儲上一個掃描周期觸點(diǎn)的狀態(tài)。有一個輸出端Q,當(dāng)觸點(diǎn)狀態(tài)從1到0時,輸出端Q接通一個掃描周期。NEG(地址下降沿檢測指令)可以將<地址1>的信號狀態(tài)與存儲在<地址2>中的先前掃描的信號狀態(tài)進(jìn)行比較。如果當(dāng)前的RLO狀態(tài)為“1”,而先前的狀態(tài)為“0”(上升沿檢測),則在操作之后,RLO位將為“1”。26六月20254.2.7邊沿檢測指令26六月20254.2.7邊沿檢測指令圖4.14觸點(diǎn)跳變沿指令示例26六月20254.2.8位邏輯指令的應(yīng)用實(shí)例1.多個開關(guān)控制同一盞燈程序

在實(shí)際家用電路中,經(jīng)常需要多個開關(guān)控制同一盞燈的亮滅,例如一個房間中有四個開關(guān)I1.1、I1.2、I1.3和I1.4可以同時控制燈Q4.0,當(dāng)任意按其中的一個開關(guān)是,燈亮,再按一個開關(guān)是,燈熄滅,以此類推,可以實(shí)現(xiàn)四個開關(guān)控制同一盞燈。26六月20254.2.8位邏輯指令的應(yīng)用實(shí)例1.多個開關(guān)控制同一盞燈程序26六月20254.2.8位邏輯指令的應(yīng)用實(shí)例2.用置位復(fù)位指令來控制電動機(jī)的正反轉(zhuǎn)

圖4.17是電機(jī)正反轉(zhuǎn)電路的電氣原理圖。輸入/輸出信號定義:輸入:I0.0—正轉(zhuǎn)啟動按鈕

I0.1—反轉(zhuǎn)啟動按鈕

I0.2—停車按鈕I0.3—FR過載保護(hù)輸出:Q0.0—電動機(jī)正轉(zhuǎn)

Q0.1—電動機(jī)反轉(zhuǎn)

(a)電動機(jī)主電路26六月20254.2.8位邏輯指令的應(yīng)用實(shí)例26六月20254.2.8位邏輯指令的應(yīng)用實(shí)例2.用置位復(fù)位指令來控制電動機(jī)的正反轉(zhuǎn)程序如圖4.18所示,實(shí)現(xiàn)電動機(jī)能正/反轉(zhuǎn)、停車;正/反轉(zhuǎn)可任意切換。圖4.18采用置位復(fù)位指令的電機(jī)正反轉(zhuǎn)電路程序圖26六月20254.2.8位邏輯指令的應(yīng)用實(shí)例3.四人搶答器控制

四人搶答器設(shè)計控制要求如下:一人按下?lián)尨鸢粹o,接通本組搶答信號燈,告訴主持人和觀眾本組獲得搶答權(quán),同時切斷其他各組信號燈電路,信號燈只能亮一盞;

進(jìn)入下一輪搶答時,主持人按下復(fù)位按鈕,清除上一輪搶答信號,搶答重新開始。

另外,主持人按下復(fù)位按鈕10s后,如果沒有人搶答,此題作廢,進(jìn)入下一輪搶答。26六月20254.2.8位邏輯指令的應(yīng)用實(shí)例26六月20254.2.8位邏輯指令的應(yīng)用實(shí)例26六月20254.2.8位邏輯指令的應(yīng)用實(shí)例圖4.19小車往返運(yùn)動示意圖和I/O分配表4.小車往復(fù)運(yùn)動控制程序

小車運(yùn)行示意圖如圖4.19(a)所示,該系統(tǒng)的I/O分配表如圖4.19的(b)所示,該系統(tǒng)有三個限位開關(guān)分別是:中間限位開關(guān)I0.0、左限位開關(guān)I0.2和右限位開關(guān)I0.1,初始狀態(tài)時,小車在停在中間,限位開關(guān)I0.0=ON;按下啟動按鈕I0.3,小車按圖所示順序往復(fù)運(yùn)動,按下停止按鈕I0.4,小車需要停在初始位置(中間)。26六月20254.2.8位邏輯指令的應(yīng)用實(shí)例圖4.20小車往返運(yùn)動的梯形圖程序圖4.20是小車往返運(yùn)行的程序圖,改程序采用了上升沿檢測指令和置位復(fù)位指令等等,該程序的核心關(guān)鍵問題是按下停止按鈕時,小車并不是立即停止,而是要回到原位(中間位置)才停,所以要對停止信號加自鎖保持,小車回到原位后再清除停止信號。

26六月20254.3定時器指令

定時器相當(dāng)于繼電器電路中的時間繼電器,用于產(chǎn)生時間序列,以實(shí)現(xiàn)等待、監(jiān)控、測量時間間隔等。在S7-300/400系列PLC的CPU存儲器中,為定時器保留有存儲區(qū),該存儲區(qū)為每個定時器保留一個16位定時器字和一個二進(jìn)制的定時器位。定時器字:用來存放它當(dāng)前的定時時間值。定時器位:決定定時器觸點(diǎn)的狀態(tài)。不同的CPU模塊所支持的定時器數(shù)目不等。在使用定時器時,定時器的地址編號必須在有效的范圍之內(nèi)。26六月20254.3.1定時器的基礎(chǔ)知識1.定時時間的設(shè)定

定時器的使用和時間繼電器一樣,也要設(shè)置定時時間,即定時值。定時值的設(shè)定有兩種方法進(jìn)行。(1)直接表示法

直接表示法僅在語句表指令(STL)中使用,其指令格式如下:W#16#wxyz時間基準(zhǔn)(即時間間隔或分辨率),取值為0、1、2、3。BCD碼格式的時間值,設(shè)定值范圍為(1-999)。26六月20254.3.1定時器的基礎(chǔ)知識定時時間=時基*定時值。例如:W#16#3025=10s*25=250s。在定時器開始工作后,定時值不斷遞減,遞減至零表示時間到,定時器進(jìn)行相應(yīng)動作。26六月20254.3.1定時器的基礎(chǔ)知識第0~11位:表示的是定時時間設(shè)定值,是以3位BCD碼格式存

放,使用范圍是0~999;第12~13位:表示的是定時器的時基值。定時器字的格式:26六月20254.3.1定時器的基礎(chǔ)知識(2)S5時間表示法

S5時間表示法在STL、LAD以及梯形圖方塊中都能用,其指令格式如下:S5T#aHbbMccSdddMS其中,aH表示a小時,bbM表示bb分鐘,ccS表示cc秒,dddMS表示ddd毫秒。定時范圍為1MS一2H46M30s(1ms-9990s)。26六月20254.3.1定時器的基礎(chǔ)知識(3)設(shè)定時間的裝載S7-300/400系列PLC的定時時間設(shè)定需要通過S7的裝載指令L進(jìn)行。可以用兩種方法設(shè)定時間與選擇時間單位。其允許設(shè)定的最大時間值為9990s(即2h46min30s)26六月20254.3.1定時器的基礎(chǔ)知識2.定時器的表達(dá)形式定時器塊圖指令為一個指令塊,包含觸發(fā)條件、定時器復(fù)位、預(yù)置值等與定時器所有相關(guān)的條件參數(shù)。定時器線圈指令將與定時器相關(guān)的條件參數(shù)分開使用,可以在不同的程序段中對定時器參數(shù)進(jìn)行賦值和讀取。26六月20254.3.1定時器的基礎(chǔ)知識2.定時器的表達(dá)形式Tno為定時器的編號,其范圍與CPU的型號有關(guān);S為啟動信號,當(dāng)S端出現(xiàn)上升沿時啟動指定的定時器;R為復(fù)位信號,當(dāng)R端出現(xiàn)上升延時器定時器復(fù)位當(dāng)前值清零;TV為設(shè)定時間值輸入,最大設(shè)定時間為9990秒,輸入格式按S5系統(tǒng)時間格式,如S5T#10S、S5T#1H20M30S等。26六月20254.3.1定時器的基礎(chǔ)知識2.定時器的表達(dá)形式Q為定時器輸出。定時器啟動后,剩余時間非0時,Q輸出為1;定時器停止或剩余時間為0時,Q輸出為0。該端可以連接位變量,如Q0.0等,也可以懸空。26六月20254.3.1定時器的基礎(chǔ)知識2.定時器的表達(dá)形式BI端口以整數(shù)格式顯示或輸出剩余時間,采用16進(jìn)制形式。如16#0034、16#00FB等。該端口可以接各種字存儲器,也可以懸空。BCD端口以BCD碼格式顯示或輸出剩余時間,采用s5系列系統(tǒng)時間格式。如S5T#10S、S5T#1H20M30S、S5T#10M10S等。該端口可以接各種字存儲器如QW0、MW10等,也可以懸空。26六月20254.3.1定時器的基礎(chǔ)知識2.定時器的表達(dá)形式定時器STL指令:使用L指令以整數(shù)的格式將定時器的定時剩余值寫入到累加器1中;使用LC指令以BCD碼的格式將定時器的定時剩余值和時基一起寫入到累加器1中;使用普通復(fù)位指令R可以將定時器復(fù)位(禁止啟動)。26六月20254.3.2脈沖定時器(SP)指令圖4.22:脈沖定時器的方塊圖指令在LAD中的用法及其相應(yīng)的STL指令。圖4.23:脈沖延時定時器的線圈指令在LAD中的用法及其相應(yīng)的STL指令。這兩張圖實(shí)現(xiàn)的功能一樣。4-224-23其中,STL中的“L”為累加器1的裝載指令,可將定時器的定時值作為整數(shù)裝入累加器l;“LC”為BCD裝載指令,可將定時器的定時值作為BCD碼裝入累加器,“T”為傳送指令,可將累加器1的內(nèi)容傳送給指定的字節(jié)、字或雙字單元。26六月20254.3.2脈沖定時器(SP)指令4-22時序圖可以看出,如果I1.1和I1.2邏輯與運(yùn)算后的信號(即R信號)的RLO為0,且I1.0(即S信號)出現(xiàn)上升沿,則脈沖延時型定時器啟動,啟動的同時,其觸點(diǎn)T1也接通,此后只要I1.0信號的RLO保持1,定時器就繼續(xù)運(yùn)行,在定時器運(yùn)行期間,只要剩余時間不為零,其常開觸點(diǎn)閉合,同時輸出Q0.0為1,直到定時器時間t達(dá)到后觸點(diǎn)T1斷開。但如果I1.0接通的保持時間小于定時時間t,那么在I1.0斷開的同時定時器的觸點(diǎn)T1也同時斷開。

無論何時,只要R信號的RLO出生上升沿,定時器就立即復(fù)位,并使定時器的常開觸點(diǎn)斷開,Q輸出為零,同時剩余時間清零。26六月20254.3.3擴(kuò)展脈沖定時器(SE)指令

圖4.25說明了擴(kuò)展脈沖定時器的方塊圖指令在LAD中的用法及其相應(yīng)的STL指令,而圖4.26是擴(kuò)展脈沖定時器的線圈指令在LAD中的用法及其相應(yīng)的STL指令,這兩張圖實(shí)現(xiàn)的功能是一樣的。4-254-2626六月20254.3.3擴(kuò)展脈沖定時器(SE)指令從時序圖4.27可以看出,如果R信號(即I1.4和I1.5邏輯或運(yùn)算后的信號)的RLO為0,且S信號(即I1.3)出現(xiàn)上升沿,則擴(kuò)展脈沖定時器啟動,啟動的同時,其觸點(diǎn)T2也接通,并從設(shè)定的時間值開始倒計時,即使S信號的保持時間小于定時值,定時器的觸點(diǎn)T2也能同樣持續(xù)定時時間t后才斷開。但是,若在啟動信號斷開后,定時器進(jìn)行“斷開延時”階段,啟動信號再次輸入。這時將以最后一個信號輸入作為啟動信號,重新執(zhí)行延時動作,在定時器運(yùn)行期間,只要剩余時間不為零,其常開觸點(diǎn)T2閉合,同時輸出Q0.1為1,直到定時器時間t達(dá)到后觸點(diǎn)T2斷開。

無論何時,只要R信號的RLO出生上升沿,定時器就立即復(fù)位,并使定時器的常開觸點(diǎn)斷開,Q輸出為零,同時剩余時間清零。26六月20254.3.4接通延時定時器(SD)指令圖4.28說明了接通延時定時器的方塊圖指令在LAD中的用法及其相應(yīng)的STL指令,圖中可以看出由于BCD端口懸空,所以對應(yīng)的STL指令出現(xiàn)了NOP0空指令,此指令不影響程序的運(yùn)行;而圖4.29是接通延時定時器的線圈指令在LAD中的用法及其相應(yīng)的STL指令,這兩張圖實(shí)現(xiàn)的功能是一樣的。4-284-2926六月20254.3.4接通延時定時器(SD)指令從時序圖可以看出,如果R信號(I2.0)的RLO為0,且S信號(I1.6和I1.7邏輯或運(yùn)算后的信號)出現(xiàn)上升沿,則定時器啟動,并從設(shè)定的時間(該例為10s)只開始倒計時,如果在定時器結(jié)束之前,S信號的RLO出現(xiàn)下降沿,定時器就立即停止運(yùn)行并復(fù)位,Q0.2輸出為零。當(dāng)定時器時間到達(dá)而S信號是的RLO仍為1時,定時期常開觸點(diǎn)閉合,同時Q0.2輸出為1,直到S信號的RLO變?yōu)?或定時器被復(fù)位。4-3026六月20254.3.5保持型接通延時定時器(SS)指令

圖4.31說明了保持型接通延時定時器的方塊圖指令在LAD中的用法及其相應(yīng)的STL指令,圖中可以看出由于BI端口懸空,所以對應(yīng)的STL指令出現(xiàn)了NOP0空指令,此指令不影響程序的運(yùn)行;而圖4.32是保持型接通延時定時器的線圈指令在LAD中的用法及其相應(yīng)的STL指令,這兩張圖實(shí)現(xiàn)的功能是一樣的。4-314-3226六月20254.3.5保持型接通延時定時器(SS)指令從時序圖可以看出,如果R信號(I2.2)的RLO為0,且S信號(I2.1)的上升沿到達(dá),定時器便保持這一S信號,不管S信號接通的時間是否大于設(shè)定的時間t,定時器總是保持延時狀態(tài),到達(dá)設(shè)定時間t后,定時器觸點(diǎn)接通。但是,若在啟動信號斷開后,定時器進(jìn)行“保持延時”階段,S信號再一次輸入,這時將以最后一次輸入的上升沿作為S信號,重新進(jìn)行延時時間t的計算。延時接通保持型定時器使用結(jié)束后,必須用復(fù)位信號對其進(jìn)行復(fù)位。

無論何時,只要R信號的RLO出生上升沿,定時器就立即復(fù)位,并使定時器的常開觸點(diǎn)斷開,Q輸出為零,同時剩余時間清零。4-3326六月20254.3.6斷電延時定時器(SF)指令

圖4.34說明了斷電延時定時器的方塊圖指令在LAD中的用法及其相應(yīng)的STL指令,圖中可以看出由于BI端口和BCD端口都懸空,所以對應(yīng)的STL指令出現(xiàn)了兩條NOP0空指令,此指令不影響程序的運(yùn)行;而圖4.35是斷電延時定時器的線圈指令在LAD中的用法及其相應(yīng)的STL指令,這兩張圖實(shí)現(xiàn)的功能是一樣的。4-344-3526六月20254.3.6斷電延時定時器(SF)指令從時序圖可以看出,如果R信號(I2.4和I2.5邏輯與的值)的RLO為0,且S信號(I2.3)的下降沿到達(dá),延時觸點(diǎn)保持定時時間t后才斷開,Q0.4輸出為0。但是,若在S信號恢復(fù)斷開后,定時器進(jìn)行“斷開延時”階段,S信號再一次輸入,這時將以最后一次信號斷開點(diǎn)作為斷開延時時間計算的起點(diǎn),重新進(jìn)行計時。

無論何時,只要R信號的RLO出生上升沿,定時器就立即復(fù)位,并使定時器的常開觸點(diǎn)斷開,Q輸出為零,同時剩余時間清零。4-3626六月20254.3.7CPU的時鐘存儲器S7-300系列PLC除了在step7編程軟件提供前面介紹的五種定時器以外,還可以使用CPU系統(tǒng)時鐘存儲器(ClockMemory)實(shí)現(xiàn)精確的定時功能。要使用該功能,需在硬件組態(tài)環(huán)境下用鼠標(biāo)雙擊CPU模塊打開CPU屬性對話框,選擇Cycle/ClockMemory屬性選項卡,然后勾選“ClockMemory”選項激活該功能,設(shè)置ClockMemory如圖4.37所示。

在“MemoryByte”區(qū)域輸入想為該項功能設(shè)置的地址,如需要使用MB100時,則直接輸入100。26六月20254.3.7CPU的時鐘存儲器ClockMemory的功能是定義各位的變化規(guī)律按照不同頻率的方波(占空比位50%)來改變,各位的周期及頻率如表4.8所示。如果在硬件配置中設(shè)置了該項功能,就可以在編程時使用該存儲器來獲得不同的頻率的方波信號。26六月20254.3.8定時器指令的應(yīng)用示例1.方波發(fā)生器程序方波信號是常用的一種控制信號,如控制間歇鈴聲等,它也可以采用多種編程方法來實(shí)現(xiàn)。這里介紹兩種。(1)用接通延時定時器(SD)產(chǎn)生占空比可調(diào)的方波發(fā)生器。Q0.0方波輸出,定時器T1設(shè)置輸出Q0.0為1的時間,定時器T2設(shè)置輸出為0的時間,這里占空比是40%。4-384-3926六月2025(2)用定時器梯形圖方塊產(chǎn)生占空比可調(diào)的方波發(fā)生器。

Q0.0為方波輸出,關(guān)斷延時定時器T1(S-OFFDT方塊)設(shè)置輸出Q0.0為1的時間(2s),接通延時定時器T2(S-ODT方塊)設(shè)置輸出Q0.0為0的時間(3s),占空比為40%。4-4026六月20252.傳輸帶實(shí)例圖4.41是有三條傳送帶和漏斗組成的物料三級運(yùn)輸系統(tǒng),為防止物料堆積,要求按下啟動按鈕I0.0后A傳輸(Q0.0)帶首先開始工作,10秒后B傳輸帶(Q0.1)自動啟動,再過10秒以后C傳輸帶(Q0.2)自動啟動,按下停止按鈕,停機(jī)的順序和啟動的正好相反,間隔也是10秒。4-4126六月2025根據(jù)上述要求編寫的工作程序如圖4.42所示。4-4226六月20253.十字路口交通燈實(shí)例如圖4.43所示為雙干道交通信號燈設(shè)置示意圖。信號燈的動作受開關(guān)總體控制,按一下啟動按鈕(常開按鈕),信號燈系統(tǒng)開始工作,并周而復(fù)始地循環(huán)動作;按一下停止按鈕(常開按鈕),所有信號燈都熄滅。26六月2025

信號燈的工作流程是:首先南北向紅燈,東西向綠燈,綠燈持續(xù)25S后,變?yōu)橐?HZ頻率閃爍的綠燈,起到警示作用,閃爍持續(xù)5S后,東西向綠燈熄滅,東西向黃燈點(diǎn)亮,黃燈持續(xù)5S后熄滅,東西向紅燈、南北向綠燈同時點(diǎn)亮,南北向綠燈持續(xù)45S后,變?yōu)橐?HZ頻率閃爍的綠燈,起到警示作用,閃爍持續(xù)5S后,南北向綠燈熄滅,南北向黃燈點(diǎn)亮,黃燈持續(xù)5S后熄滅,南北向紅燈、東西向綠燈同時點(diǎn)亮,如此周而復(fù)始,信號燈的控制時序如圖4.44所示。T1T2T3T4T5T626六月2025

交通信號燈控制程序比較復(fù)雜,所以在這里分為周期控制、定時時序設(shè)計、南北向信號燈的設(shè)計和東西向信號燈四個部分來設(shè)計和介紹。

1)周期控制程序。如圖4.45所示,周期控制信號在啟動按鈕,按下的瞬間開始生效,在停止按鈕,按下的瞬間變?yōu)闊o效,由M0.0這個中間觸點(diǎn)來體現(xiàn),由此可編寫出周期控制程序。4-4526六月20252)定時時序設(shè)計。定時時序由控制周期信號M0.0控制,由各定時器具體實(shí)現(xiàn)控制程序,如圖4.46所示。26六月20253)南北向信號燈控制程序。根據(jù)圖4.47的時序關(guān)系可知,“南北紅燈”在兩種情況下需要點(diǎn)亮:一是為進(jìn)入定時周期的前35s即M0.0為1且T3定時器到達(dá)之前;二是整個周期結(jié)束即T6定時器到達(dá)之后?!澳媳本G燈”只有在進(jìn)入定時周期后T3定時到達(dá)且T4定時未到達(dá)時常亮,在T4定時到達(dá)且T5定時未到達(dá)時以1Hz的頻率閃亮?!澳媳秉S燈”只有在進(jìn)入定時周期后T5定時到達(dá)且T6定時未到達(dá)時點(diǎn)亮。26六月20254)東西向信號燈控制程序。根據(jù)圖4.48的時序關(guān)系可知,“東西紅燈”只有在進(jìn)入定時周期后T3定時到達(dá)且T6定時未到達(dá)時點(diǎn)亮?!皷|西黃燈”只有在進(jìn)入定時周期后T2定時到達(dá)且T3定時未到達(dá)時點(diǎn)亮。而“南北綠燈”在三種情況下需要點(diǎn)亮:一是進(jìn)入定時周期的前25s即M0.0為1且T1定時器到達(dá)之前常亮;二是在進(jìn)入定時周期后T1定時到達(dá)且T2定時未到達(dá)時以1Hz的頻率閃亮;三是整個周期結(jié)束即T6定時器到達(dá)之后常亮。26六月20254.4計數(shù)器指令生產(chǎn)過程中常常要對現(xiàn)場發(fā)生動作的次數(shù)進(jìn)行記錄并據(jù)此發(fā)出控制命令,例如要計算車庫內(nèi)停車的數(shù)量,生產(chǎn)車間內(nèi)生產(chǎn)的工件的數(shù)量等等,計數(shù)器就是為了完成這一功能而開發(fā)的。26六月20254.4.1計數(shù)器的理論知識1.計數(shù)器的存儲器區(qū)S7CPU的存儲器中,有為計數(shù)器保留的存儲區(qū),為每個計數(shù)器地址保留一個16位字和一個二進(jìn)制計數(shù)器位。計數(shù)器字:用來存放它的當(dāng)前計數(shù)值。計數(shù)器位:用來決定計數(shù)器觸點(diǎn)的狀態(tài)。用計數(shù)器地址(C和計數(shù)器號,如C2)來存取當(dāng)前計數(shù)值和計數(shù)器位,帶位操作數(shù)的指令存取計數(shù)器位,帶字操作數(shù)的指令存取計數(shù)器的計數(shù)值。只有計數(shù)器指令能訪問計數(shù)器存儲器區(qū)。梯形圖指令集支持256個計數(shù)器,地址范圍是C0~C255,其地址范圍因CPU具體型號不同而有差異。

26六月20254.4.1計數(shù)器的理論知識計數(shù)器的字格式:占兩個字節(jié),第0~11位:表示計數(shù)值(BCD碼格式),計數(shù)范圍是0~999。對計數(shù)器進(jìn)行置數(shù)(設(shè)置初始值)操作時,累加器1低字中的內(nèi)容被裝入計數(shù)器字,計數(shù)器的計數(shù)值將以此為初值增加或減小。當(dāng)計數(shù)值達(dá)到上限999時,累加停止;計數(shù)值到達(dá)下限0時,將不再減小??梢杂枚喾N方式為累加器1置數(shù),但要確保累加器1低字符合所規(guī)定的格式。26六月20254.4.1計數(shù)器的理論知識2.計數(shù)值的動作過程

在其他型號的PLC中,甚至是德國西門子的S7-200PLC,計數(shù)器的設(shè)定值都是與加“計數(shù)到”的概念相關(guān)聯(lián),也就是說在常規(guī)中,當(dāng)技術(shù)達(dá)到設(shè)定值時,計數(shù)器輸出觸點(diǎn)(即計數(shù)器的位)有動作,但S7-300PLC的計數(shù)器與此不同,只要當(dāng)前計數(shù)值不為0,計數(shù)器的輸出為1,即其常開觸點(diǎn)閉合,常閉觸點(diǎn)打開。

26六月20254.4.1計數(shù)器的理論知識1)加法計數(shù)器置計數(shù)初值時,計數(shù)器輸出不動作,輸出為0;在當(dāng)前計數(shù)值大于0的時候,其輸出為1。實(shí)際上加法計數(shù)器工作時,計數(shù)值一般都大于0,輸出一般都為1,不變化。此時可用查看當(dāng)前剩余計數(shù)值,然后將其和預(yù)想的值作比較,如果相等,則執(zhí)行對應(yīng)的操作,這樣來實(shí)現(xiàn)計數(shù)到的概念。2)減法計數(shù)器先把設(shè)定的計數(shù)初值送入計數(shù)器的字中,計數(shù)器輸出會立即從0到1,產(chǎn)生一個正跳變;在當(dāng)前計數(shù)值大于0的時候,計數(shù)器輸出為1;當(dāng)減計數(shù)減到0,即當(dāng)前計數(shù)值等于0時,計數(shù)器輸出從1變?yōu)?,產(chǎn)生一個負(fù)跳變沿。用負(fù)跳變沿檢測指令,實(shí)現(xiàn)計數(shù)器的“計數(shù)到”,也可以用計數(shù)器的常閉觸點(diǎn)和裝計數(shù)值的允許信號的常開觸點(diǎn)串聯(lián)來實(shí)現(xiàn)計數(shù)器的“計數(shù)到”。

26六月20254.4.1計數(shù)器的理論知識綜上所述,無論是加法計數(shù)器還是減法計數(shù)器:當(dāng)前計數(shù)值等于0,計數(shù)器輸出為0;若當(dāng)前計數(shù)值大于0,則計數(shù)器輸出為1;復(fù)位時計數(shù)器清0,其輸出為0。26六月20254.4.1計數(shù)器的理論知識3.計數(shù)值的三種表達(dá)形式26六月20254.4.1計數(shù)器的理論知識3.計數(shù)值的三種表達(dá)形式26六月20254.4.1計數(shù)器的理論知識3.計數(shù)值的三種表達(dá)形式使用LAD編程,計數(shù)器指令分為兩種:1)計數(shù)器塊圖計數(shù)器指令2)計數(shù)器線圈指令使用STL編程,計數(shù)器指令只有加計數(shù)器CU和減計數(shù)器CD兩個指令。26六月20254.4.1計數(shù)器的理論知識使用LAD編程,計數(shù)器指令分為兩種:1)計數(shù)器塊圖計數(shù)器指令,包括加、減、加減塊圖計數(shù)器指令,計數(shù)器中包含計數(shù)器復(fù)位、預(yù)置等功能;26六月20254.4.1計數(shù)器的理論知識表4.8中塊圖中的符號含義如下:1)Cno為計數(shù)器的編號,其編號范圍與CPU的具體型號有關(guān);2)CU為加計數(shù)器輸入端,該端每出現(xiàn)一個上升沿,計數(shù)器自動加1,當(dāng)計數(shù)器的當(dāng)前值為999時,計數(shù)器保持為999,加1操作無效;3)CD為減計數(shù)器輸入端,該端每出現(xiàn)一個上升沿,計數(shù)器自動減1,當(dāng)計數(shù)器的當(dāng)前值為0時,計數(shù)器保持為0,減1操作無效;26六月20254.4.1計數(shù)器的理論知識表4.8中塊圖中的符號含義如下:4)S為預(yù)置信號輸入端,該端出現(xiàn)上升沿的瞬間,將計數(shù)初值作為當(dāng)前值;5)PV為計數(shù)初值輸入端,可以通過字存儲器(如MW2、IW4等)為計數(shù)器提供初值,也可以直接輸入BCD碼形式的立即數(shù),此時立即數(shù)的格式為c#xxx,如C#5,c#116等;26六月20254.4.1計數(shù)器的理論知識表4.8中塊圖中的符號含義如下:6)R為計數(shù)器復(fù)位信號的輸入端。任何情況下,只要該斷出現(xiàn)上盛宴,計數(shù)器就會馬上復(fù)位,復(fù)位后計數(shù)器的當(dāng)前值為0,輸出也為0;7)Q為計數(shù)器狀態(tài)輸出端,只要計數(shù)器的當(dāng)前值不為0,計數(shù)器的狀態(tài)就為1,該端可以連接位存儲器,如Q0.0、M1.0等,也可以懸空,Q的狀態(tài)與計數(shù)器Cno的狀態(tài)相同;26六月20254.4.1計數(shù)器的理論知識表4.8中塊圖中的符號含義如下:8)CV為以二進(jìn)制格式輸出(或顯示)的計數(shù)器當(dāng)前值,如16#0012、16#00CF等,該端口可以連接各種字存儲器,如MW2、QW4等,也可以懸空;9)CV_BCD是以BCD碼格式輸出(或顯示)的計數(shù)器當(dāng)前值,如C#12、C#6等,該端口可以連接各種字存儲器,如MW2、QW4等,也可以懸空。26六月20254.4.1計數(shù)器的理論知識3.計數(shù)值的三種表達(dá)形式2)計數(shù)器線圈指令,包括計數(shù)器置初值指令,加、減計數(shù)器線圈指令。26六月20254.4.1計數(shù)器的理論知識3.計數(shù)值的三種表達(dá)形式使用STL編程,計數(shù)器指令只有加計數(shù)器CU和減計數(shù)器CD兩個指令;S、R、T等指令,可以對計數(shù)器進(jìn)行預(yù)置初值、復(fù)位等操作。26六月20254.4.2加/減計數(shù)器(S_CUD)圖4.49說明了加/減計數(shù)器(即可逆計數(shù)器)的方塊圖指令在LAD中的用法及其相應(yīng)的STL指令。26六月20254.4.2加/減計數(shù)器(S_CUD)圖4.50是加/減計數(shù)器的線圈指令在LAD中的用法及其相應(yīng)的STL指令。26六月20254.4.2加/減計數(shù)器(S_CUD)兩張圖實(shí)現(xiàn)的功能一樣。26六月20254.4.2加/減計數(shù)器(S_CUD)I1.3出現(xiàn)一次上升沿,C2就自動加1;I1.4每出現(xiàn)一次上升沿,C2就自動減1。當(dāng)前值保存在MW10(16進(jìn)制整數(shù))和MW20(BCD碼格式)中,如果,但當(dāng)前C2的當(dāng)前計數(shù)值不為0,則Q0.2就為1,否則,Q0.2為0。當(dāng)I1.5出現(xiàn)上升沿時,計數(shù)器的當(dāng)前值將被立即置為4(由C#4決定),同時Q0.2為1,以后將從4開始計數(shù);如果I1.6出現(xiàn)上升沿,則計數(shù)器的當(dāng)前值立即置0,同時Q0.2為0,以后C2將從0開始計數(shù)。26六月20254.4.3加計數(shù)器(S_CU)圖4.53說明了加計數(shù)器的方塊圖指令在LAD中的用法及其相應(yīng)的STL指令。4-5326六月20254.4.3加計數(shù)器(S_CU)圖4.54加計數(shù)器的線圈指令用法圖4.53是加法計數(shù)器的線圈指令在LAD中的用法及其相應(yīng)的STL指令。26六月20254.4.3加計數(shù)器(S_CU)兩張圖實(shí)現(xiàn)的功能是一樣的。只是線圈指令中不能存儲該計數(shù)器的當(dāng)前值。26六月20254.4.4減計數(shù)器(S_CD)圖4.54說明了減計數(shù)器的方塊圖指令在LAD中的用法及其相應(yīng)的STL指令。圖中可以看出由于BI端口和BCD端口都懸空,所以對應(yīng)的STL指令出現(xiàn)了兩條“NOP0”空指令,此指令不影響程序的運(yùn)行。4-5426六月20254.4.4減計數(shù)器(S_CD)圖4.55是減計數(shù)器的線圈指令在LAD中的用法及其相應(yīng)的STL指令。4-5526六月20254.4.4減計數(shù)器(S_CD)這兩張圖實(shí)現(xiàn)的功能是一樣的。只是線圈指令中不能存儲該計數(shù)器的當(dāng)前值。26六月20254.4.5計數(shù)器指令的應(yīng)用示例1.用計數(shù)器擴(kuò)展定時器的定時范圍實(shí)例S7-300/400的定時器的最長定時時間為9990S,如果需要更長的定時時間,我們可以使用計數(shù)器指令來擴(kuò)展定時器的范圍,下圖的實(shí)例就是用計數(shù)器和定時器配合使用來達(dá)到一個36小時的擴(kuò)展定時電路。26六月20254.4.5計數(shù)器指令的應(yīng)用示例

I0.1為啟動按鈕,I0.2為停止按鈕,由于它們不是自鎖按鈕,所以這里用M1.0這個輔助觸點(diǎn)作為其啟動停止信號,M1.0為1時啟動,M1.0為0時停止,M1.0為0狀態(tài)時,計數(shù)器C1是復(fù)位的。

M1.0變?yōu)?狀態(tài)時,其常開觸點(diǎn)接通,使T2和T3組成的振蕩電路開始工作,計數(shù)器的預(yù)置值C#9被送入計數(shù)器C1。M1.0的常閉觸點(diǎn)斷開,C1被解除復(fù)位。

振蕩電路的振蕩周期為T2和T3預(yù)置值之和,故圖中振蕩電路相當(dāng)于周期為4H的時鐘脈沖發(fā)生器。每隔4H,T3的定時時間到,T2的常開觸點(diǎn)由接通變?yōu)閿嚅_,其脈沖的下降沿通過減計數(shù)線圈CD使C1的計數(shù)值減1,出現(xiàn)9個負(fù)脈沖后也就是4x9=36H后,C1的當(dāng)前值減為0。其常閉觸點(diǎn)閉合,使Q0.1的線圈通電。26六月20254.4.5計數(shù)器指令的應(yīng)用示例2.用計數(shù)器控制信號燈實(shí)例控制要求為控制按鈕I0.0按下3次,信號燈Q4.0亮;再按下3次,信號燈滅。相應(yīng)的時序圖如圖所示。26六月20254.4.5計數(shù)器指令的應(yīng)用示例首先需要I0.1接通一次,加載C0和C1的初始值。I0.0每接通一次,C0計數(shù)值減1;當(dāng)C0計數(shù)值為0時,Q4.0接通。此后C1開始對I0.0的上升沿進(jìn)行減計數(shù);當(dāng)C1計數(shù)值為0時,C0、C1被復(fù)位,Q4.0斷開。26六月20254.4.5計數(shù)器指令的應(yīng)用示例

3.停車場車位的計數(shù)控制實(shí)例

某停車場有50個停車位,其入口處與出口處各有一個接近開關(guān),用來檢測車輛的進(jìn)入與駛出。

當(dāng)停車場尚有停車位時,尚有車位指示燈Q4.0點(diǎn)亮,入口處的欄桿才可以將門打開,車輛可以進(jìn)入停車場停放。

若停車位已滿,則車位已滿指示燈Q4.2將點(diǎn)亮,并且入門處的欄桿不能將門打開讓車輛進(jìn)入。

26六月20254.4.5計數(shù)器指令的應(yīng)用示例

3.停車場車位的計數(shù)控制實(shí)例PLC的1/0配置如下:輸入:

I1.1為停車場入口接近開關(guān)S1;

I1.0為停車場出口接近開關(guān)S2;I1.5為計數(shù)器復(fù)位按鈕SB1;

I2.0為系統(tǒng)啟動開關(guān)SA1;I2.1為系統(tǒng)停止開關(guān)SA2;

I2.2為入口欄桿啟動按鈕SB3。輸出:

Q4.0為尚有停車位指示燈;

Q4.1為入口欄桿控制信號;Q4.2為停車位已滿指示燈。26六月20254.4.5計數(shù)器指令的應(yīng)用示例26六月20254.4.5計數(shù)器指令的應(yīng)用示例Network1中,C1為加/減可逆計數(shù)器,預(yù)置停車場的車位為50,每次有車輛進(jìn)入時對輸入脈沖進(jìn)行減1計數(shù),有車輛從出口出來時對輸人脈沖進(jìn)行加1計數(shù),計數(shù)器的當(dāng)前值就是停車場的車位數(shù)。在Network1~Network4中,合上系統(tǒng)啟停開關(guān)SA1,觸點(diǎn)I2.0閉合,啟動停車場控制系統(tǒng),同時將計數(shù)器的預(yù)置值裝載到計數(shù)器字中,由于S端只有在上升沿的時侯進(jìn)行操作,因此在控制過程中該信號保持“1”不影響計數(shù)器的工作。按下系統(tǒng)停止按鈕SA2,觸點(diǎn)I2.1閉合,停車場控制系統(tǒng)停止工作。

26六月20254.4.5計數(shù)器指令的應(yīng)用示例在Network1中,當(dāng)車輛到達(dá)進(jìn)口處時,接近開關(guān)S2動作,觸點(diǎn)I1.1閉合,計數(shù)器C1進(jìn)行減1計數(shù),計數(shù)器C1的Q端輸出高電平,M0.0置1。在Network2中,觸點(diǎn)M0.0已經(jīng)閉合,由于觸點(diǎn)I2.0已閉合,因此Q4.0得電,使尚有車位指示燈亮;在Network3中,觸點(diǎn)M0.0閉合,由于觸點(diǎn)I2.0已閉合,按下入口欄桿啟動按鈕SB3,觸點(diǎn)I2.2閉合,Q4.1得電,入口欄桿開啟,允許車輛進(jìn)入;在Network4中,觸點(diǎn)M0.0閉合,通過NOT指令,使Q4.2不能得電,但是車輛已滿的時候,M0.0斷開,通過NOT指令,使Q4.2得電,使車輛已滿指示燈點(diǎn)亮。當(dāng)車輛離開停車場到達(dá)出口處時,接近開關(guān)S1動作,I1.0得電,動合觸點(diǎn)I1.0閉合,計數(shù)器C1進(jìn)行加1計數(shù)。計數(shù)器C1的MW2與MW8中顯示的是當(dāng)前的計數(shù)值。復(fù)習(xí)導(dǎo)入計數(shù)器指令1.計數(shù)器的存儲器區(qū)2.計數(shù)值的動作過程當(dāng)前計數(shù)值等于0,計數(shù)器輸出為0;若當(dāng)前計數(shù)值大于0,則計數(shù)器輸出為1;復(fù)位時計數(shù)器清0,其輸出為0。3.計數(shù)值的三種表達(dá)形式26六月202526六月2025數(shù)據(jù)裝載:指將存儲器的內(nèi)容或特定數(shù)據(jù)裝入到累加器或地址寄存器中。傳送:指將累加器或地址寄存器的內(nèi)容傳送到指定的存儲器中。移動:指將某一存儲器的內(nèi)容或特定的數(shù)據(jù)移動到另一存儲器中。數(shù)據(jù)裝載與傳送指令用于在各個存儲區(qū)之間交換數(shù)據(jù)及存儲區(qū)與過程輸入/輸出模板之交換數(shù)據(jù)。CPU在每次掃描中無條件執(zhí)行數(shù)據(jù)裝載與傳送指令,而不受RLO的影響。4.5裝載和傳送指令26六月20254.5裝載和傳送指令在西門子PLC中,數(shù)據(jù)裝載和傳送指令必須經(jīng)過一個載體,這個載體就是累加器。

累加器是CPU中的一種專用寄存器,可以作為“緩沖器”。數(shù)據(jù)的傳送和變換一般是通過累加器進(jìn)行的,而不是在存儲區(qū)直接進(jìn)行。在S7-300/400PLC中,有兩個32位的累加器:累加器1與累加器2。當(dāng)執(zhí)行裝入指令(Load,L)時,將數(shù)據(jù)裝入到累加器1中,累加器1中原有的數(shù)據(jù)被移入到累加器2中,累加器2中原有的數(shù)據(jù)被覆蓋。當(dāng)執(zhí)行傳送指令(Transfer,T)時,將累加器1中的數(shù)據(jù)傳送到目的存儲區(qū)中,而累加器1中的內(nèi)容保持不變。L和T指令可以對字節(jié)(8位)、字(16位)、雙字(32位)數(shù)據(jù)進(jìn)行操作,當(dāng)數(shù)據(jù)長度小于32位時,數(shù)據(jù)在累加器1中右對齊(低位對齊),其余各位填0。26六月20254.5裝載和傳送指令數(shù)據(jù)裝載指令L和數(shù)據(jù)傳送指令T可以完成下列區(qū)域的數(shù)據(jù)交換:1)輸入/輸出存儲區(qū)I/O與位存儲區(qū)M、過程輸入存儲區(qū)PI、過程輸出存儲區(qū)PQ、定時器T、計數(shù)器C、數(shù)據(jù)區(qū)D的數(shù)據(jù)交換。2)過程輸入/輸出存儲區(qū)PI/PQ與位存儲區(qū)M、定時器T、計數(shù)器C、數(shù)據(jù)區(qū)D的數(shù)據(jù)交換。3)定時器T、計數(shù)器C與過程輸入/輸出存儲區(qū)PI/PQ、位存儲區(qū)M、數(shù)據(jù)區(qū)D的數(shù)據(jù)交換。

26六月20254.5裝載和傳送指令具體指令如表4.10所示。

指令類型指令說明裝載指令L<操作數(shù)>將數(shù)據(jù)裝入累加器1中,累加器1原有內(nèi)容移動到累加器2LSTW將狀態(tài)字的內(nèi)容裝入累加器1LAR1<D>將累加器1中的內(nèi)容裝入地址寄存器1LAR1將累加器l中的內(nèi)容裝入地址寄存器1。裝入AR1的內(nèi)容可以是立即數(shù)或者是存儲區(qū)、地址寄存器2(AR2)中的內(nèi)容。如果在指令中沒有給出操作數(shù),則將累加器1中的內(nèi)容直接裝入AR1LAR2將累加器1中的內(nèi)容裝入地址寄存器2。裝入AR2的內(nèi)容可以是立即數(shù)或者是存儲區(qū)的內(nèi)容。如果在指令中沒有給出操作數(shù),則將累加器1中的內(nèi)容直接裝入AR2LAR1AR2將地址寄存器2的內(nèi)容裝入地址寄存器1LAR2<D>將兩個雙整數(shù)(32位指針)裝入地址寄存器2LT/C<定時器/計數(shù)器>將指定定時器的剩余時間值和時基或者是指定計數(shù)器的當(dāng)前計數(shù)值以BCD碼格式裝入累加器1,累加器1中原來內(nèi)容裝入累加器2中26六月20254.5裝載和傳送指令具體指令如表4.10所示。

指令類型指令說明傳送指令T<操作數(shù)>將累加器1中的內(nèi)咨傳送到目的地址,累加器1內(nèi)容不變TSTW將累加器1的0~8位傳送到狀態(tài)字TAR1將地址寄存器1中的內(nèi)容傳送到累加器1TAR1<D>將地址寄存器1的內(nèi)容傳送到目的地(32位指針)TAR1AR2將地址寄存器1的內(nèi)容傳送到地址寄存器2TAR2將地址寄存器2中的內(nèi)容傳送到累加器1TAR2<D>將地址寄存器2的內(nèi)容傳送到目的地(32位指針)交換CAR交換地址寄存器1和地址寄存器2的內(nèi)容26六月20254.5裝載和傳送指令表4.11L、LC、T指令示例指令說明L116將一個16位整型常數(shù)裝入累加器1的低字中LL#168將一個32位整數(shù)常數(shù)立即裝載入累加器1中LB#16#CF將一個8位十六進(jìn)制常數(shù)立即裝載入累加器1中LDW#16#2FFC_03CF將一個32位十六進(jìn)制常數(shù)立即裝載入累加器1中L2#1010_0101_0101_1010將一個16位二進(jìn)制常數(shù)裝載入累加器1中L‘LOVE’將4個字符ABCD裝載入累加器1中LC#99將16位計數(shù)常數(shù)裝載入累加器1中LS5T#8S將16位S5定時器型時間常數(shù)裝載入累加器1中L1.0E+5將32位實(shí)型常數(shù)裝載入累加器1中LP#I4.0將32位指向I4.0的指針裝載入累加器1中LD#2009_09_09將16位日期值裝載入累加器1中LT#2D_3H_4M_5S將32位時間值裝載入累加器1中26六月20254.5裝載和傳送指令表4.11L、LC、T指令示例指令說明LIB0將輸入字節(jié)IB0裝入累加器1低字節(jié)中LMB12將存儲字節(jié)MB12裝入累加器1低字節(jié)中LDBB12將數(shù)據(jù)字節(jié)DBB12裝入累加器1低字節(jié)中LDIW12將背景數(shù)據(jù)字DIW12裝入累加器1低字中LLD52將本地數(shù)據(jù)雙字LD52裝入累加器1中LC2將計數(shù)器C2的當(dāng)前計數(shù)值以二進(jìn)制格式裝入累加器1中LCT1將定時器T1的當(dāng)前值以BCD碼格式裝入累加器1中TQB2將累加器1低字的低字節(jié)傳送給輸出字節(jié)QB2TMW10將累加器1低字傳送給存儲字MW10TDBD4將累加器1傳送給數(shù)據(jù)雙字DBD426六月20254.5裝載和傳送指令表4.12和地址相關(guān)的裝載和傳送指令示例指令說明LAR1將累加器1的內(nèi)容裝入AR1LAR1P#I1.0將輸入位I1.0的地址指針裝入AR1LAR1P#M10.2將一個32位的指針常數(shù)裝入AR1LAR1P#3.5將指針數(shù)據(jù)3.5裝入AR1LAR1MD12將存儲雙字MD12中的內(nèi)容裝入AR1LAR1DBD12將數(shù)據(jù)雙字DBD12中的內(nèi)容裝入AR1LAR1DID20將背景數(shù)據(jù)雙字DID20中的內(nèi)容裝入AR1LAR2LD180將本地數(shù)據(jù)雙字LD180中的內(nèi)容裝入AR2LAR1AR2將AR2的內(nèi)容傳送給AR1TAR1將AR1的內(nèi)容傳送給累加器1TAR1DBD2將AR1的內(nèi)容傳送給數(shù)據(jù)雙字DBD2TAR1DID20將AR1的內(nèi)容傳送給背景數(shù)據(jù)雙字DID20TAR1LD180將AR1的內(nèi)容傳送給本地數(shù)據(jù)雙字LD180TAR2AR1將AR1的內(nèi)容傳送給AR226六月20254.5裝載和傳送指令

除了上面列舉的STL指令,在梯形圖中有一個方塊傳輸指令MOVE。傳輸指令MOVE為字節(jié)(B)、字(W)或雙字(D)數(shù)據(jù)對象賦值。只有使能輸入端EN為1,才執(zhí)行傳輸操作,使輸出OUT等于輸入IN,并使使能輸出ENO為1,ENO的邏輯狀態(tài)總與EN一致。如果希望IN無條件傳輸給OUT,則把EN端直接連接至左母線。26六月20254.5裝載和傳送指令使用MOVE指令,能傳送數(shù)據(jù)長度為8位字節(jié)、16位字或32位雙字的基本數(shù)據(jù)類型(包括常數(shù))。實(shí)際應(yīng)用中IN可以是常數(shù)、I、Q、M、D、L等類型,OUT端操作數(shù)可以是Q、M、D、L等類型,但必須保證兩端在數(shù)據(jù)寬度上的相匹配。如果要傳送用戶定義的數(shù)據(jù)類型,例如數(shù)組或結(jié)構(gòu),必須使用系統(tǒng)功能塊移BLKMOV(SFC20)。

26六月20254.5裝載和傳送指令如果指令框的EN輸入有能流并且執(zhí)行時無錯誤,則ENO將流傳給下一元件。如果執(zhí)行過程中有錯誤,能流在出現(xiàn)錯誤的指令框終止。ENO可以與下一指令框的EN端相連,即幾個指令框可以在一行中串聯(lián),只有前一個指令框被正確執(zhí)行,后一個才能被執(zhí)行。MOVE在梯形圖中的應(yīng)用如圖4.59所示。

圖4.59MOVE方框圖的應(yīng)用程序26六月20254.6.1比較指令介紹用來比較兩個相同數(shù)據(jù)類型數(shù)據(jù)的大小。按照比較的數(shù)據(jù)類型可以分為:整數(shù)(l)比較指令、雙整數(shù)(D)比較指令和實(shí)數(shù)(R)比較指令。按照想要比較的結(jié)果可以分為:等于(==)、不等于(<>)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)。被比較數(shù)的數(shù)據(jù)可以是l、Q、M、L、D或常數(shù)。4.6比較指令26六月20254.6.1比較指令介紹每一個?都對應(yīng)著==、<>、>、<、>=、<=六種情況。26六月20254.6.1比較指令介紹梯形圖中的方框比較指令相當(dāng)于一個常開觸點(diǎn),可以與其他觸點(diǎn)串聯(lián)和并聯(lián)。比較指令框的使能輸入和使能輸出均為BOOL變量,可以取I、Q、M、L和D或常數(shù)。在使能輸入信號為1時,比較IN1和IN2輸入的兩個操作數(shù)。如果被比較的兩個數(shù)滿足指令指定的條件,比較結(jié)果為“真”,等效觸點(diǎn)閉合。16位狀態(tài)字寄存器中7號位CC1和6號位CC0稱為條件碼1和條件碼0。可以表示比較指令的執(zhí)行結(jié)果,反映累加器2、1中兩個數(shù)的關(guān)系,如00表示=;01表示<;10表示>;11表示非法浮點(diǎn)數(shù)。比較指令影響狀態(tài)字,用指令測試狀態(tài)字的有關(guān)位,可以得到更多的信息。26六月20254.6.2比較指令的應(yīng)用示例

1.應(yīng)用比較指令的方波發(fā)生器圖中的T1是接通延時定時器,I1.1的常開觸點(diǎn)并且T1的常閉觸點(diǎn)同時接通時,T1開始定時,其剩余時間值從預(yù)置時間值5s開始遞減。減至0時,T1的常閉觸點(diǎn)斷開,使它的Q輸出變?yōu)?狀態(tài),T1的常閉觸點(diǎn)閉合,又從預(yù)置時間值開始定時。26六月20254.6.2比較指令的應(yīng)用示例

1.應(yīng)用比較指令的方波發(fā)生器T1的剩余時間(單位為10ms),以十六進(jìn)制被寫入MW40,初始值為十六進(jìn)制數(shù)1F4(十進(jìn)制500),與十進(jìn)制常數(shù)200比較。剩余時間大于等于200(2000ms)時,比較指令等效的觸點(diǎn)閉合,Q0.0的線圈通電,通電的時間為3s。剩余時間小于200時,比較指令等效的觸點(diǎn)斷開,Q0.0的線圈斷電2s。通過改變和MW40比較的數(shù)字(本例為200)可以改變該方波的占空比。26六月20254.6.2比較指令的應(yīng)用示例2.兩臺電動機(jī)的單按鈕控制

通常一個電路的起動和停止控制是由2個按鈕分別完成的,當(dāng)一個PLC控制多個這種需要起停操作的電路時,將占用很多的I/O資源。一般PLC的I/O點(diǎn)是按3:2的比例配置的,由于大多數(shù)被控系統(tǒng)是輸入信號多,輸出信號少,有時在設(shè)計一個不太復(fù)雜的控制系統(tǒng)時,也會面臨輸入點(diǎn)不足的問題,因此用單按鈕實(shí)現(xiàn)起??刂频囊饬x很重要。

設(shè)某設(shè)備有2臺電動機(jī),對應(yīng)的地址分別為Q0.0和Q0.1,1個按鈕,對應(yīng)的地址為I2.1,

要求實(shí)現(xiàn)一個按鈕同時對2臺電動機(jī)的控制:

第1次按按鈕時只有電動機(jī)Q0.0工作;

第2次按按鈕時電動機(jī)Q0.0停車,電動機(jī)Q0.1工作;

第3次按按鈕時2臺電動機(jī)同時停車。

26六月20254.6.2比較指令的應(yīng)用示例如圖可用操作按鈕控制計數(shù)器的加1操作,然后用比較指令判斷計數(shù)器的當(dāng)前值是否為1、2或3。如果計數(shù)器的當(dāng)前值為1,則起動電動機(jī)Q0.0;如果計數(shù)器的當(dāng)前值為2,則起動電動機(jī)Q0.1,同時關(guān)閉電動機(jī)Q0.0;如果計數(shù)器的當(dāng)前值為3,則復(fù)位計數(shù)器,同時關(guān)閉電動機(jī)Q0.1。26六月20254.7轉(zhuǎn)換指令

在PLC程序中,會遇到各種類型的數(shù)據(jù)和數(shù)據(jù)運(yùn)算,而PLC中的算術(shù)運(yùn)算,要求在同類型數(shù)據(jù)之間進(jìn)行。另外,人們?nèi)粘S糜谳斎牒惋@示的數(shù)習(xí)慣用十進(jìn)制數(shù)(BCD碼數(shù)),因此在PLC程序編寫時會遇到數(shù)字轉(zhuǎn)換的問題,這時就需要用到轉(zhuǎn)換指令。26六月20254.7.1數(shù)據(jù)格式介紹指令之前,先把STEP7中常用的數(shù)據(jù)格式復(fù)習(xí)一下。1.BCD碼格式用四個二進(jìn)制位數(shù)字表示十進(jìn)制數(shù)的每一位。因?yàn)樽畲蟮臄?shù)是9,所以需要四位才能表示(1001),BCD碼數(shù)分為16位和32位,正數(shù)和負(fù)數(shù)。在STEP7中,16位的BCD碼數(shù)是由3位BCD碼構(gòu)成,數(shù)值范圍為-999~+999;32位的BCD碼數(shù)是由7位BCD碼構(gòu)成,數(shù)值范圍為-9999999~+9999999。二進(jìn)制整數(shù)和雙整數(shù)都是以補(bǔ)碼的形式存儲和處理。26六月20254.7.1數(shù)據(jù)格式16位格式的BCD碼:第0~11位用來表示3位BCD碼,每4位(0~3、4~7、8~11)二進(jìn)制數(shù)分別表示1位BCD碼;第15位用來表示BCD碼的符號,正數(shù)為0,負(fù)數(shù)為1;第12、13、14位未用,一般取與符號位相同的數(shù)。32位格式的BCD碼:第0~27位用來表示7位BCD碼,每4位(0~3、4~7、8~11、12~15、16~19、20~23、24~27)二進(jìn)制數(shù)分別表示1位BCD碼;第31位是BCD碼的符號位:正數(shù)為0,負(fù)數(shù)為1;第28、29、30位未用,一般取與符號位相同的數(shù)。26六月20254.7.1數(shù)據(jù)格式2.整數(shù)(INT)、雙整數(shù)(DINT)格式整數(shù)和雙整數(shù)的二進(jìn)制數(shù)格式分為正數(shù)和負(fù)數(shù);16位和32位,其中32位整數(shù)又稱長整數(shù)或雙整數(shù)。用最高的位(第15位或者第31位)表示符號:0為正數(shù),1為負(fù)數(shù)。16位整數(shù)的范圍為-32768~+32767;32位整數(shù)的范圍為-2147483648~+2147483647。負(fù)的整數(shù)用二進(jìn)制的補(bǔ)碼(原碼取反加1)表示,16位整數(shù)的存儲格式如圖4.63所示,32位的存儲格式類似。26六月20254.7.1數(shù)據(jù)格式3.實(shí)數(shù)(REAL)格式STEP7中的實(shí)數(shù)是按照IEEE標(biāo)準(zhǔn)表示的,在存儲器中,實(shí)數(shù)占用兩個字節(jié)(32位),即存放實(shí)數(shù)(浮點(diǎn)數(shù))需要一個雙字(32位)。最高的31位是符號數(shù),0為正數(shù),1為負(fù)數(shù)。可以表示的數(shù)的范圍是1.175495×10-38~3.402823×1038實(shí)數(shù)值=(sign)(1+f)×2e-127式中,sign位符號,f為底數(shù)(尾數(shù));e為指數(shù)位數(shù)。例如,0.375(定點(diǎn)數(shù))或3.25E-1(浮

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論