電氣控制與plc應(yīng)用技術(shù)概述_第1頁
電氣控制與plc應(yīng)用技術(shù)概述_第2頁
電氣控制與plc應(yīng)用技術(shù)概述_第3頁
電氣控制與plc應(yīng)用技術(shù)概述_第4頁
電氣控制與plc應(yīng)用技術(shù)概述_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第5章 S7-200PLC的基本指令和程序設(shè)計(jì),教學(xué)內(nèi)容:,5.1 基本指令 5.2 程序控制類指令 5.3 PLC的編程及應(yīng)用,5.1 S7-200 PLC的基本指令,S7-200 PLC的基本指令多用于開關(guān)量邏輯控制,本節(jié)著重介紹梯形圖指令和語句表指令,并討論基本指令的功能及編程方法。 編程時,應(yīng)注意各操作數(shù)的數(shù)據(jù)類型及數(shù)值范圍。CPU對非法操作數(shù)將生成編譯錯誤代碼。,5.1.1 基本邏輯指令,基本邏輯指令在語句表語言中是指對位存儲單元的簡單邏輯運(yùn)算,在梯形圖中是指對觸點(diǎn)的簡單連接和對標(biāo)準(zhǔn)線圈的輸出。 S7-200可編程序控制器使用一個邏輯堆棧來分析控制邏輯,用語句表編程時要根據(jù)這一堆棧邏

2、輯進(jìn)行組織程序,用相關(guān)指令來實(shí)現(xiàn)堆棧操作,用梯形圖和功能框圖時,程序員不必考慮主機(jī)的這一邏輯,這兩種編程工具自動地插入必要的指令來處理各種堆棧邏輯操作。 S7-200可編程序控制器的主機(jī)邏輯堆棧結(jié)構(gòu)如表1所示。,5.1.1 基本邏輯指令,邏輯堆棧結(jié)構(gòu)是由九個堆棧存儲器位組成的串聯(lián)堆棧,棧頂是布爾型數(shù)據(jù)進(jìn)出堆棧的必由之路。進(jìn)棧時,數(shù)據(jù)由棧頂壓入,堆棧中原來所存的數(shù)據(jù)被串行下移一格,如果原來STACK(堆疊)8中存有數(shù)據(jù),則這數(shù)據(jù)被推出堆棧而自動丟失。出棧時,數(shù)據(jù)從棧頂被取出,所有數(shù)據(jù)串行上移一格,STACK 8中隨機(jī)地裝入一個數(shù)值。,表1邏輯堆棧結(jié)構(gòu),棧頂,5.1.1 基本邏輯指令,棧頂STAC

3、K 0在此邏輯堆棧的位運(yùn)算中兼有累加器的作用,存放第一操作數(shù)。對于簡單邏輯指令,通常是進(jìn)棧操作和一些最簡單的位運(yùn)算,這些運(yùn)算是棧頂與第二級堆棧的內(nèi)容進(jìn)行與、或、非等邏輯運(yùn)算。對于復(fù)雜指令,可以是堆棧中的其他數(shù)據(jù)位直接進(jìn)行運(yùn)算,結(jié)果經(jīng)棧頂彈出。 基本邏輯指令主要包括標(biāo)準(zhǔn)觸點(diǎn)指令、正負(fù)跳變指令、置位和復(fù)位指令等,主要是與位相關(guān)的輸入輸出及觸點(diǎn)的簡單連接。,5.1.1 基本邏輯指令,1. 標(biāo)準(zhǔn)觸點(diǎn)指令 梯形圖中常開和常閉觸點(diǎn)指令用觸點(diǎn)表示,常閉觸點(diǎn)中帶有“/”符號。當(dāng)存儲器某地址的位值為1時,則與之對應(yīng)的常開觸點(diǎn)的位值也為1,表示常開觸點(diǎn)閉合;而與之對應(yīng)的常閉觸點(diǎn)的位值為0,表示常開觸點(diǎn)斷開。 語句

4、表中的標(biāo)準(zhǔn)觸點(diǎn)指令有LD、LDN、A、AN、O、ON。這些指令對存儲器位在邏輯堆棧中進(jìn)行操作。 由于堆棧存儲單元數(shù)的限制,語句表中A、O、AN、ON指令最多可以連用有限次。同樣,梯形圖中,最多一次串聯(lián)或并聯(lián)的觸點(diǎn)數(shù)也有一定限制 標(biāo)準(zhǔn)觸點(diǎn)指令中,操作數(shù)的數(shù)據(jù)類型為BOOL型,操作數(shù)編址范圍可以是:I、Q、M、SM、T、C、S、V、L。,5.1.1 基本邏輯指令,(1)裝入常開觸點(diǎn)指令:LD,表示一個邏輯梯級的編程開始。在梯形圖中,每個從左母線開始的單一邏輯行、每個程序塊的開始、功能方框的輸入端都必須使用LD和LDN這兩條指令。以常開觸點(diǎn)開始時用LD指令,以常閉觸點(diǎn)開始時則用LDN指令。本指令對各

5、類內(nèi)部編程元件的常開觸點(diǎn)都適用。 指令格式:LD bit; 例:LD I0.2,(2)裝入常閉觸點(diǎn)指令:LDN,每個以常閉觸點(diǎn)開始的邏輯行都使用這一指令,各類內(nèi)部編程元件的常閉觸點(diǎn)都適用。 指令格式:LDN bit; 例:LDN I0.2,5.1.1 基本邏輯指令,(3)與,串聯(lián)常開觸點(diǎn)指令:A,表示觸點(diǎn)的串聯(lián)編程。串聯(lián)一個常開觸點(diǎn)。由于堆棧存儲器數(shù)量限制,梯形圖中,一次最多可有七個常開觸點(diǎn)串聯(lián)。 指令格式:A bit; 例: A M2.4,(4)與非,串聯(lián)常閉觸點(diǎn)指令:AN,即在梯形圖中串聯(lián)一個常閉觸點(diǎn)。在一個邏輯行中,最多可以連用六次。 指令格式:AN bit; 例: AN M2.4,(5

6、)或,并聯(lián)常開觸點(diǎn)指令:O,表示觸點(diǎn)的并聯(lián)編程。并聯(lián)一個常開觸點(diǎn)。在梯形圖中,一次最多可以有七個觸點(diǎn)相互并聯(lián)。 指令格式:O bit; 例: O M2.6,5.1.1 基本邏輯指令,(6)非或,并聯(lián)常閉觸點(diǎn)指令:ON,并聯(lián)一個常閉觸點(diǎn)。在梯形圖中,一次最多可以連用六次。 指令格式:ON bit; 例: ON M2.6,在語句表中,這幾條指令的執(zhí)行對邏輯堆棧的影響: CPU執(zhí)行LD指令,首先,將指令操作數(shù)的位( bit)值裝入堆棧棧頂,故也稱棧裝載指令。然后將堆棧其余各級內(nèi)容下壓一級,直至最后一級內(nèi)容丟失。 執(zhí)行A指令,將操作數(shù)的位值“與”棧頂值,運(yùn)算結(jié)果仍存入棧頂,堆棧沒有壓入和彈出操作。 執(zhí)

7、行O指令,將操作數(shù)的位值“或”棧頂值,運(yùn)算結(jié)果仍存入棧頂,堆棧沒有壓入和彈出操作。 執(zhí)行LDN、AN、ON指令,將操作數(shù)的位值取反后,再作相應(yīng)的“裝載”、“與”、“或”操作。,5.1.1 基本邏輯指令,指令LD I0.1(假設(shè)I0.1=1)執(zhí)行情況如表2所示。如果是 LDN指令,則將操作數(shù)取反后再裝入棧頂,其他操作相同。,表2 LD I0.1的執(zhí)行,原值S0串行下移一個單元,其余以此類推。,原S8自動丟失。,5.1.1 基本邏輯指令,指令A(yù) I0.2(假設(shè)I0.2=0)執(zhí)行情況如表3所示。如果是AN指令,則將操作數(shù)取反后再和棧頂值相與,結(jié)果放回棧頂。即: 1*1=1 S0,表3 指令A(yù) I0.

8、2的執(zhí)行,2、輸出指令,表示繼電器線圈編程(包括內(nèi)部繼電器線圈、輸出繼電器線圈)。當(dāng)執(zhí)行輸出指令時,把棧頂值“寫”到由操作數(shù)地址指定的存儲器的對應(yīng)位中。 梯形圖中,“()”表示線圈。當(dāng)執(zhí)行輸出指令時,“能流”到,則線圈被激勵。輸出映像寄存器或其他存儲器的相應(yīng)位為“1”,反之為“0”。 語句表中,輸出指令“=” 把棧頂值復(fù)制到由操作數(shù)地址指定的存儲器位。指令執(zhí)行前后堆棧各級棧值不變。 指令格式:= bit; 例: = Q2.6,5.1.1 基本邏輯指令,5.1.1 基本邏輯指令,程序?qū)嵗鹤屑?xì)比較不同編程工具的區(qū)別與聯(lián)系。,LD I0.0 /裝入常開觸點(diǎn) O I0.1 /或常開觸點(diǎn) A I0.2

9、 /與常開觸點(diǎn) = Q0.0 /輸出觸點(diǎn), /如果本梯級中將I0.1的觸點(diǎn)改 /為Q0.0的常開觸點(diǎn),則成為電 /機(jī)起動停止控制環(huán)節(jié)的梯形圖 LDN I0.0 /裝入常閉觸點(diǎn) ON I0.0 /或常閉觸點(diǎn) AN I0.2 /與常閉觸點(diǎn) = Q0.1 /輸出觸點(diǎn) LD I0.0 / O I0.1 / A I0.2 / NOT /取非,即輸出反相 = Q0.3 /,圖9 標(biāo) 準(zhǔn) 觸 點(diǎn) LAD 和 STL 例,5.1.1 基本邏輯指令,3. 正/負(fù)跳變指令 用于檢測脈沖的正跳變(上升沿)或負(fù)跳變(下降沿),利用跳變讓能流接通一個掃描周期,即可以產(chǎn)生一個寬度為一個掃描周期脈沖,常用此脈沖觸發(fā)內(nèi)部繼電

10、器線圈。 梯形圖中,正/負(fù)跳變指令在梯形圖中以觸點(diǎn)形式使用。 語句表中:,(1)正跳變指令:EU 一旦發(fā)現(xiàn)棧頂?shù)闹党霈F(xiàn)正跳變,該棧頂?shù)闹稻捅恢谩?”,并持續(xù)一個掃描周期的時間。 指令格式:EU (無操作數(shù)),5.1.1 基本邏輯指令,(2)負(fù)跳變指令:ED,一旦發(fā)現(xiàn)棧頂?shù)闹党霈F(xiàn)負(fù)跳變,該棧頂?shù)闹稻捅恢谩?”,并持續(xù)一個掃描周期的時間。 指令格式:ED (無操作數(shù)) 正、負(fù)跳變觸點(diǎn)指令編程舉例如圖10所示。,圖10 正、負(fù)跳變觸點(diǎn)指令編程,一個掃描周期長度,5.1.1 基本邏輯指令,4. 置位和復(fù)位指令 置位即置1,復(fù)位即置0。置位和復(fù)位指令可以將位存儲區(qū)的某一位開始的一個或多個(最多可達(dá)255

11、個)同類存儲器位置1或置0。這兩條指令在使用時需指明三點(diǎn):操作性質(zhì)、開始位和位的數(shù)量。各操作數(shù)類型及范圍如表4所示。,表4 置位和復(fù)位指令操作數(shù)類型及范圍,5.1.1 基本邏輯指令,(1)置位指令:S,將位存儲區(qū)的指定位(位bit)開始的N個同類存儲器位置位。 指令格式: S bit, N; 例: S Q0.0, 1,(2)復(fù)位指令:R,將位存儲區(qū)的指定位(位bit)開始的N個同類存儲器位復(fù)位。當(dāng)用復(fù)位指令時,如果是對定時器T位或計(jì)數(shù)器C位進(jìn)行復(fù)位,則定時器或計(jì)數(shù)器位被復(fù)位同時,定時器或計(jì)數(shù)器的當(dāng)前值被清零。 指令格式: R bit, N; 例: R Q0.2, 3,5.1.1 基本邏輯指令,

12、在語句表(STL)中,當(dāng)棧頂值為1時,才能執(zhí)行置位指令S或復(fù)位指令R。置位后即使棧頂值變?yōu)?,仍保持置位;復(fù)位后即使棧頂值變?yōu)?,仍保持復(fù)位??梢娺@兩條指令均有“記憶”功能。 置位和復(fù)位指令應(yīng)用編程序舉例如圖11所示。,圖11 置位復(fù)位指令,5.1.2 立即操作指令,立即指令允許對輸入和輸出點(diǎn)進(jìn)行快速和直接存取。當(dāng)用立即指令讀取輸入點(diǎn)的狀態(tài)時,相應(yīng)的輸入映像寄存器中的值并未發(fā)生更新;用立即指令訪問輸出點(diǎn)時,訪問的同時,相應(yīng)的輸出寄存器的內(nèi)容也被刷新。只有輸入繼電器I和輸出繼電器Q可以使用立即指令。,5.1.2 立即操作指令,1. 立即觸點(diǎn)指令 執(zhí)行立即觸點(diǎn)指令時,直接讀取物理輸入點(diǎn)的值,輸入映

13、像寄存器內(nèi)容不更新,指令操作數(shù)僅限于輸入物理點(diǎn)的值。 梯形圖中,立即觸點(diǎn)指令用常開和常閉立即觸點(diǎn)表示。觸點(diǎn)中的“I”表示立即之意。 在語句表中,每個標(biāo)準(zhǔn)觸點(diǎn)指令的后面加“I”(表示立即之意)。常開立即觸點(diǎn)編程由LDI、AI、OI指令描述,常閉立即觸點(diǎn)編程由LDNI、 ANI、 ONI指令描述。以LDI指令為例,執(zhí)行時,把物理輸入點(diǎn)的位值立即裝入棧頂。 指令格式:LDI bit 例: LDI I0.2,5.1.2 立即操作指令,2. 立即輸出指令,用立即指令訪問輸出點(diǎn)時,把棧頂值立即復(fù)制到指令所指定的物理輸出點(diǎn),同時,相應(yīng)的輸出映像寄存器的內(nèi)容也被刷新。 指令格式:=I bit 例: =I Q0

14、.2 立即I/O指令不受PLC循環(huán)掃描工作方式的約束,允許對輸入、輸出物理點(diǎn)進(jìn)行直接存取,執(zhí)行立即觸點(diǎn)指令時,CPU繞過輸入映像寄存器,直接讀取物理輸入點(diǎn)的狀態(tài)作為程序執(zhí)行期間的數(shù)據(jù)依據(jù),輸入映像寄存器不作刷新處理;執(zhí)行立即輸出指令時,則將結(jié)果同時立即復(fù)制到物理輸出點(diǎn)和相應(yīng)的輸出映像寄存器,而不是等待程序執(zhí)行階段結(jié)束后,轉(zhuǎn)入輸出刷新階段時才把結(jié)果傳送到物理輸出點(diǎn)。從而加快了輸入輸出響應(yīng)速度。,必須注意:立即I/O指令比一般指令訪問輸入輸出映像寄存器占用CPU的時間要長,因而不能盲目的使用,否則,會加長掃描周期的時間,反而對系統(tǒng)造成不利的影響。,用立即置位指令訪問輸出點(diǎn)時,從指令所指出的位(bi

15、t)開始的N個(最多為128個)物理輸出點(diǎn)被立即置位,同時,相應(yīng)的輸出映像寄存器的內(nèi)容也被刷新。 指令格式:SI bit, N; 例: SI Q0.0, 2,3. 立即置位指令,5.1.2 立即操作指令,5.1.2 立即操作指令,4. 立即復(fù)位指令,用立即復(fù)位指令訪問輸出點(diǎn)時,從指令所指出的位(bit)開始的N個(最多為128個)物理輸出點(diǎn)被立即復(fù)位,同時,相應(yīng)的輸出映像寄存器的內(nèi)容也被刷新。各操作數(shù)類型及范圍如表5所示。 指令格式: RI bit, N; 例: RI Q0.0, 1,表5 立即置位和立即復(fù)位指令操作數(shù)類型及范圍,5.1.2 立即操作指令,LD I0.0 = Q0.0 =I Q

16、0.1 /立即輸出觸點(diǎn) SI Q0.2,1 /從Q0.2開始的1個觸點(diǎn)被立即置1 LDI I0.0 /立即輸入觸點(diǎn)指令 = Q0.3 /輸出觸點(diǎn),非立即,圖12 立即指令程序,圖13 波形圖,5.1.3 復(fù)雜邏輯指令(邏輯堆棧),基本邏輯指令涉及可編程元件的觸點(diǎn)和線圈的簡單連接,不能表達(dá)在梯形圖中觸點(diǎn)的復(fù)雜連接結(jié)構(gòu)。復(fù)雜邏輯指令主要用來描述對觸點(diǎn)進(jìn)行的復(fù)雜連接,同時,它們對邏輯堆棧也可以實(shí)現(xiàn)非常復(fù)雜的操作。 邏輯堆棧指令只用于語句表編程。使用梯形圖、功能塊圖時,編輯器會自動插入相關(guān)的指令處理堆棧操作。 本類指令包括:ALD、OLD、LPS、LRD、LPP和LDS,這些指令中除LDS外,其余指令

17、都無操作數(shù)。,5.1.3 復(fù)雜邏輯指令(邏輯堆棧),1. 棧裝載與指令 2. 棧裝載或指令,OLD,棧裝載或指令(或塊)。用于將串聯(lián)電路塊進(jìn)行并聯(lián)連接。執(zhí)行OLD指令,將堆棧中的第一級和第二級的值進(jìn)行邏輯“或”操作,結(jié)果置于棧頂(堆棧第一級),并將堆棧中其余各級的內(nèi)容依次上彈一級。,ALD,棧裝載與指令(與塊)。用于將并聯(lián)電路塊進(jìn)行串聯(lián)連接。執(zhí)行ALD指令,將堆棧中的第一級和第二級的值進(jìn)行邏輯“與”操作,結(jié)果置于棧頂(堆棧第一級),并將堆棧中的第三級至第九級的值依次上彈一級。,5.1.3 復(fù)雜邏輯指令(邏輯堆棧),棧裝載與指令和棧裝載或指令的操作過程如圖14所示,圖中“x”表示不確定值。,圖1

18、4 棧裝載與指令和棧裝載或指令的操作過程,5.1.3 復(fù)雜邏輯指令(邏輯堆棧),3. 邏輯推入棧指令 4. 邏輯讀棧指令,LPS,邏輯推入棧指令(分支或主控指令)。用于復(fù)制棧頂?shù)闹挡⑦@個值推入棧頂,原堆棧中各級棧值依次下壓一級。在梯形圖中的分支結(jié)構(gòu)中,用于生成一條新的母線,左側(cè)為主控邏輯塊時,第一個完整的從邏輯行從此處開始。,LRD,邏輯讀棧指令。把堆棧中第二級的值復(fù)制到棧頂。堆棧沒有推入?;驈棾鰲2僮?,但原棧頂值被新的復(fù)制值取代。在梯形圖中的分支結(jié)構(gòu)中,當(dāng)左側(cè)為主控邏輯塊時,開始第二個和后邊更多的從邏輯塊。應(yīng)注意,LPS后第一個和最后一個從邏輯塊不用本指令。,5.1.3 復(fù)雜邏輯指令(邏輯

19、堆棧),5. 邏輯棧彈出指令 6. 裝入堆棧指令,LPP,邏輯棧彈出指令(分支結(jié)束或主控復(fù)位指令)。堆棧作彈出棧操作,將棧頂值彈出,原堆棧中各級棧值依次上彈一級,堆棧第二級的值成為新的棧頂值。在梯形圖中的分支結(jié)構(gòu)中,用于將LPS指令生成的一條新母線進(jìn)行恢復(fù)。應(yīng)注意,LPS與LPP必須配對使用。,LDS n(n=18),裝入堆棧指令。復(fù)制堆棧中的第n級的值到棧頂。原棧中各級棧值依次下壓一級,棧底值丟失。,LPS、LRD、LPP、LDS指令操作過程如圖15所示。,5.1.3 復(fù)雜邏輯指令(邏輯堆棧),圖15 LPS、LRD、LPP、LDS指令的操作過程,5.1.3 復(fù)雜邏輯指令(邏輯堆棧),應(yīng) 用

20、 舉 例:,LD I0.0 /裝入常開觸點(diǎn) LPS /邏輯推入棧,主控 A I0.5 /與常開觸點(diǎn) = Q7.0 /輸出觸點(diǎn) LRD /邏輯讀棧,新母線 LD I2.1 /裝入常開觸點(diǎn) O I1.3 /或常開觸點(diǎn) ALD /棧裝載與 = Q6.0 /輸出觸點(diǎn) LPP /邏輯彈出棧,母線復(fù)原 LD I3.1 /裝入常開出觸點(diǎn) O I2.0 /或常開觸點(diǎn) ALD /棧裝載與 = Q1.3 /輸出觸點(diǎn),圖16 邏輯堆棧指令的應(yīng)用,5.1.4 定時器和計(jì)數(shù)器指令,1. 定時器指令,定時器是由集成電路構(gòu)成,是PLC中的重要硬件編程元件。定時器編程時提前輸入時間預(yù)設(shè)值,在運(yùn)行時當(dāng)定時器的輸入條件滿足時開始

21、計(jì)時,當(dāng)前值從0開始按一定的時間單位增加,當(dāng)定時器的當(dāng)前值達(dá)到預(yù)設(shè)值時,定時器發(fā)生動作,發(fā)出中斷請求,以便PLC響應(yīng)而作出相應(yīng)的操作。此時它對應(yīng)的常開觸點(diǎn)閉合,常閉觸點(diǎn)斷開。 S7-200PLC的定時器類型有三種:TON(通電延時)、TONR(有記憶通電延時)和TOF(斷電延時)。 定時器的分辨率(時間增量/時間單位/分辨率)有3個等級:1ms、10ms和100ms,分辨率等級和定時器號關(guān)系如表6所示。,表6 定時器號和分辨率,定時時間的計(jì)算: T=PTS (T為實(shí)際定時時間,PT為預(yù)設(shè)值,S為分辨率等級) 例如:TON指令用定時器T33,預(yù)設(shè)值為125,則實(shí)際定時時間 T=125 10=12

22、50ms,5.1.4 定時器和計(jì)數(shù)器指令,定時器指令操作數(shù)有3個:編號、預(yù)設(shè)值和使能輸入。 1)編號:用定時器的名稱和它的常數(shù)編號(最大255)來表示,即Txxx,如:T4。 T4不僅僅是定時器的編號,它還包含兩方面的變量信息:定時器位和定時器當(dāng)前值。 定時器位:定時器位與時間繼電器的輸出相似,當(dāng)定時器的當(dāng)前值達(dá)到預(yù)設(shè)值PT時,該位被置為“1”。 定時器當(dāng)前值:存儲定時器當(dāng)前所累計(jì)的時間,它用16位符號整數(shù)來表示,故最大計(jì)數(shù)值為32767。 2)預(yù)設(shè)值PT:數(shù)據(jù)類型為INT型。尋址范圍可以是VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常數(shù)。 3)使

23、能輸入(只對LAD和FBD):BOOL型,可以是I、Q、M、SM、T、C、V、S、L和能流。 可以用復(fù)位指令來對3種定時器復(fù)位,復(fù)位指令的執(zhí)行結(jié)果是:使定時器位變?yōu)镺FF:定時器當(dāng)前值變?yōu)?。,5.1.4 定時器和計(jì)數(shù)器指令,5.1.4 定時器和計(jì)數(shù)器指令,(1)接通延時定時器指令:TON,用于單一間隔定時。上電周期或首次掃描,定時器位OFF,當(dāng)前值為0。使能輸入接通時,定時器位為OFF,當(dāng)前值從0開始計(jì)數(shù)時間,當(dāng)前值達(dá)到預(yù)設(shè)值時,定時器位為ON,當(dāng)前值連續(xù)計(jì)數(shù)到32767。使能輸入斷開,定時器自動復(fù)位,即定時器位OFF,當(dāng)前值為0。,填“計(jì)定時器號”,如:T35,填“預(yù)設(shè)值”,如:100,指

24、令格式:TON Txxx,PT T例: TON T120,8,5.1.4 定時器和計(jì)數(shù)器指令,(2)有記憶接通延時定時器指令:TONR,用于對許多間隔的累計(jì)定時。上電周期或首次掃描,定時器位OFF,當(dāng)前值保持。使能輸入接通時,定時器位為OFF,當(dāng)前值開始累計(jì)計(jì)數(shù)時間。使能輸入斷開,定時器位和當(dāng)前值保持最后狀態(tài)。使能輸入再次接通時,當(dāng)前值從上次的保持值繼續(xù)計(jì)數(shù),當(dāng)累計(jì)當(dāng)前值達(dá)到預(yù)設(shè)值時,定時器位ON,當(dāng)前值連續(xù)計(jì)數(shù)到32767。,填“計(jì)定時器號”,如:T31,填“預(yù)設(shè)值”,如:100,TONR定時器只能用復(fù)位指令進(jìn)行復(fù)位操作,使當(dāng)前值清零。 指令格式:TONR Txxx,PT; 例: TONR

25、T20,63,5.1.4 定時器和計(jì)數(shù)器指令,(3)斷開延時定時器指令:TOF,用于斷開后的單一間隔定時。上電周期或首次掃描,定時器位OFF,當(dāng)前值為0。使能輸入接通時,定時器位為ON,當(dāng)前值為0。當(dāng)使能輸入由接通到斷開時,定時器開始計(jì)數(shù),當(dāng)前值達(dá)到預(yù)設(shè)值時,定時器位OFF,當(dāng)前值等于預(yù)設(shè)值,停止計(jì)數(shù)。 TOF復(fù)位后,如果使能輸入再有從ON到OFF的負(fù)跳變,則可實(shí)現(xiàn)再次啟動。,填“計(jì)定時器號”,如:T35,填“預(yù)設(shè)值”,如:100,指令格式:TOF Txxx,PT; 例 TOF T35,6,5.1.4 定時器和計(jì)數(shù)器指令,LD I0.0 /使能輸入 TON T35,+4 /通電延時定時器,延時

26、時間為40ms LD I0.0 /使能輸入 TONR T2.+10 /有記憶通電延時定時器, /延時時間為100ms LD I0.0 /使能輸入 TOF T36,+3 /斷電延時定時器,延時時間為30ms,(4)應(yīng)用 舉例 :,圖 定 時 器 特 性,T35為通電延時定時器,T2為有記憶通電延時定時器,T36為斷電延時定時器,5.1.4 定時器和計(jì)數(shù)器指令,上述梯形圖程序中輸入輸出執(zhí)行時序關(guān)系如圖所示。,圖 定時器時序,5.1.4 定時器和計(jì)數(shù)器指令,(5)應(yīng)用定時器指令應(yīng)注意的幾個問題, 不能把一個定時器號同時用作斷開延時定時器(TOF)和接通延時定時器(TON)。 使用復(fù)位(R)指令對定時

27、器復(fù)位后,定時器位位“0”,定時器當(dāng)前值為“0”。 有記憶接通延時定時器(TONR)只能通過復(fù)位指令進(jìn)行復(fù)位。 對于斷開延時定時器(TOF),需要輸入端有一個負(fù)跳變(由on到off)的輸入信號啟動計(jì)時。 不同精度的定時器,它們當(dāng)前值的刷新周期是不同的,具體情況如下:,5.1.4 定時器和計(jì)數(shù)器指令,1)1ms分辨率定時器: 啟動后,定時器對1ms的時間間隔(時基信號)進(jìn)行計(jì)時。定時器當(dāng)前值每隔1ms刷新一次,在一個掃描周期中要刷新多次,不和掃描周期同步。 2)10ms分辨率定時器: 啟動后,定時器對10ms的時間間隔進(jìn)行計(jì)時。程序執(zhí)行時,在每次掃描周期開始對10ms定時器刷新,在一個掃描周期內(nèi)

28、定時器當(dāng)前值保持不變。 3)100ms分辨率定時器: 啟動后,定時器對100ms的時間間隔進(jìn)行計(jì)時。只有在定時器指令執(zhí)行時,100ms定時器的當(dāng)前值才被刷新。,5.1.4 定時器和計(jì)數(shù)器指令,2. 計(jì)數(shù)器指令,計(jì)數(shù)器用來累計(jì)輸入脈沖的次數(shù)。計(jì)數(shù)器也是由集成電路構(gòu)成,是應(yīng)用非常廣泛的編程元件,經(jīng)常用來對產(chǎn)品進(jìn)行計(jì)數(shù)。 計(jì)數(shù)器與定時器的結(jié)構(gòu)和使用基本相似,編程時輸入它的預(yù)設(shè)值PV(計(jì)數(shù)的次數(shù)),計(jì)數(shù)器累計(jì)它的脈沖輸入端電位上升沿(正跳變)個數(shù),當(dāng)計(jì)數(shù)達(dá)到預(yù)設(shè)值PV時,計(jì)數(shù)器發(fā)生動作,以便PLC作出相應(yīng)的技術(shù)控制處理。 計(jì)數(shù)器指令有3種:增計(jì)數(shù)CTU、增減計(jì)數(shù)CTUD和減計(jì)數(shù)CTD。 指令操作數(shù)4方

29、面:編號、預(yù)設(shè)值、脈沖輸入和復(fù)位輸入。,5.1.4 定時器和計(jì)數(shù)器指令,1)編號:用計(jì)數(shù)器名稱和它的常數(shù)編號(最大255)來表示,即Cxxx,如:C6。C6不僅僅是計(jì)數(shù)器的編號,它還包含兩方面的變量信息:計(jì)數(shù)器位和計(jì)數(shù)器當(dāng)前值。 計(jì)數(shù)器位:表示計(jì)數(shù)器是否發(fā)生動作的狀態(tài),當(dāng)計(jì)數(shù)器的當(dāng)前值達(dá)到預(yù)設(shè)值PV時,該位被置為“1”。 計(jì)數(shù)器當(dāng)前值:存儲計(jì)數(shù)器當(dāng)前所累計(jì)的脈沖個數(shù),它用16位符號整數(shù)來表示,故最大計(jì)數(shù)值為32767。 2)預(yù)設(shè)值PV:數(shù)據(jù)類型為INT型。尋址范圍可以是VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常數(shù)。 3)脈沖輸入:BOOL型,可

30、以是I、Q、M、SM、T、C、V、S、L和能流。 4)復(fù)位輸入:與脈沖輸入同類型和范圍。,5.1.4 定時器和計(jì)數(shù)器指令,(1)增計(jì)數(shù)器指令:CTU,首次掃描,計(jì)數(shù)器位OFF,當(dāng)前值為0。在增計(jì)數(shù)器的計(jì)數(shù)輸入端(CU)脈沖輸入的每個上升沿,計(jì)數(shù)器計(jì)數(shù)1次,當(dāng)前值增加1個單位,當(dāng)前值達(dá)到預(yù)設(shè)值時,計(jì)數(shù)器位ON,當(dāng)前值繼續(xù)計(jì)數(shù)到32767停止計(jì)數(shù)。復(fù)位輸入有效或執(zhí)行復(fù)位指令,計(jì)數(shù)器自動復(fù)位,即計(jì)數(shù)器位OFF,當(dāng)前值為0。,指令格式:CTU Cxxx,PV; 例: CTU C20,3,填“計(jì)數(shù)器器號”,如:C30,填“預(yù)設(shè)值”,如:3,脈沖輸入,復(fù)位輸入,5.1.4 定時器和計(jì)數(shù)器指令,應(yīng)用舉例:,

31、LD I0.0 /計(jì)數(shù)脈沖信號輸入端 LD I0.1 /復(fù)位信號輸入端 CTU C20,+3 /增計(jì)數(shù),計(jì)數(shù)設(shè)定值為3個脈沖 LD C20 /裝入計(jì)數(shù)器觸點(diǎn) = Q0.0 /輸出觸點(diǎn),圖 增計(jì)數(shù)程序及時序,5.1.4 定時器和計(jì)數(shù)器指令,(2)增減計(jì)數(shù)器指令:CTUD,該指令有兩個脈沖輸入端:CU輸入端用于遞增計(jì)數(shù),CD輸入端用于遞減計(jì)數(shù)。首次掃描,定時器位OFF,當(dāng)前值為0。CU輸入的每個上升沿,計(jì)數(shù)器當(dāng)前值增加1個單位,CD輸入的每個上升沿,都使計(jì)數(shù)器當(dāng)前值減小1個單位,當(dāng)前值達(dá)到預(yù)設(shè)值時,計(jì)數(shù)器位ON。 增減計(jì)數(shù)器計(jì)數(shù)到32767(最大值)后,下一個CU輸入的上升沿將使當(dāng)前值跳變?yōu)樽钚≈?/p>

32、(32768);反之,當(dāng)前值達(dá)到最小值(32768)時,下一個CD輸入的上升沿將使當(dāng)前值跳變?yōu)樽畲笾担?2767)。復(fù)位輸入有效或執(zhí)行復(fù)位指令,計(jì)數(shù)器自動復(fù)位,即計(jì)數(shù)器位OFF,當(dāng)前值為0。,指令格式:CTUD Cxxx ,PV; 例: CTUD C30,5,5.1.4 定時器和計(jì)數(shù)器指令,LD I0.0 /增計(jì)數(shù)輸入端 LD I0.1 /減計(jì)數(shù)輸入端 LD I0.2 /復(fù)位端 CTUD C30,+5 /增減計(jì)數(shù),設(shè)定脈沖數(shù)為5 LD C30 /裝入計(jì)數(shù)器觸點(diǎn) = Q0.0 /輸出觸點(diǎn),應(yīng)用舉例:,圖 增 減 計(jì) 數(shù) 程 序 及 時 序,5.1.4 定時器和計(jì)數(shù)器指令,(3)減計(jì)數(shù)器指令:CT

33、D,首次掃描,定時器位OFF,當(dāng)前值為預(yù)設(shè)值PV。計(jì)數(shù)器檢測到CD輸入的每個上升沿時,計(jì)數(shù)器當(dāng)前值減小1個單位,當(dāng)前值減到0時,計(jì)數(shù)器位ON。 裝載輸入(LD)有效,計(jì)數(shù)器位OFF,當(dāng)前值為預(yù)設(shè)值,而不是0。執(zhí)行復(fù)位指令,計(jì)數(shù)器自動復(fù)位.,指令格式:CTD Cxxx,PV; 例: CTD C40,4,5.1.4 定時器和計(jì)數(shù)器指令,應(yīng)用舉例:,LD I0.0 /減計(jì)數(shù)脈沖輸入端 LD I0.1 /裝載輸入端 CTD C40,+4 /減計(jì)數(shù)器,設(shè)定計(jì)數(shù)脈沖 /數(shù)為4 LD C40 /裝入計(jì)數(shù)器觸點(diǎn) = Q0.0 /輸出觸點(diǎn),圖 減 計(jì) 數(shù) 程 序 及 時 序,5.1.5 比較指令,比較指令是一種

34、比較判斷,用于比較兩個符號數(shù)或無符號數(shù)。 比較指令的類型有:字節(jié)比較、整數(shù)比較、雙字整數(shù)比較和實(shí)數(shù)比較。 比較運(yùn)算符有:=、=、(表示不等于)。 對比較指令可進(jìn)行LD、A和O的編程。 在梯形圖中以帶參數(shù)和運(yùn)算符號的觸點(diǎn)的形式編程,當(dāng)這兩數(shù)比較式的結(jié)果為真時,該觸點(diǎn)閉合。 在語句表中使用LD指令進(jìn)行編程時,當(dāng)比較式為真時,主機(jī)將棧頂置1。使用A/O指令進(jìn)行編程時,當(dāng)比較式為真時,則在棧頂執(zhí)行A/O操作,并將結(jié)果放入棧頂。,5.1.5 比較指令,1. 字節(jié)比較,字節(jié)比較用于比較兩個字節(jié)型整數(shù)值IN1和IN2的大小,字節(jié)比較是無符號的。比較式可以是LDB、AB或OB后直接加比較運(yùn)算符構(gòu)成。 如:LD

35、B=、AB、OB= 等。 整數(shù)IN1和IN2的尋址范圍:VB、IB、QB、MB、SB、 SMB、LB、*VD、*AC、*LD和常數(shù)。 指令格式例:LDB= VB10, VB12 AB MB0, MB1 OB= AC1, 116,5.1.5 比較指令,2. 整數(shù)比較,整數(shù)比較用于比較兩個一字長整數(shù)值IN1和IN2的大小,整數(shù)比較是有符號的(整數(shù)范圍為16#8000和16#7FFF之間)。比較式可以是LDW、AW或OW后直接加比較運(yùn)算符構(gòu)成。 如:LDW=、AW、OW= 等。 整數(shù)IN1和IN2的尋址范圍:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常

36、數(shù)。 指令格式例:LDW= VW10, VW12 AW MW0, MW4 OW= AC2, 1160,5.1.5 比較指令,3. 雙字整數(shù)比較,雙字整數(shù)比較用于比較兩個雙字長整數(shù)值IN1和IN2的大小,雙字整數(shù)比較是有符號的(雙字整數(shù)范圍為16#80000000和16#7FFFFFFF之間)。比較式可以是LDD、AD或OD后直接加比較運(yùn)算符構(gòu)成。 如:LDD=、AD、OD= 等。 雙字整數(shù)IN1和IN2的尋址范圍:VD、ID、QD、MD、SD、SMD、LD、HC、AC、*VD、*AC、*LD和常數(shù)。 指令格式例:LDD= VD10, VD14 AD MD0, MD8 OD= AC0, 1160

37、000,4. 實(shí)數(shù)比較,實(shí)數(shù)比較用于比較兩個雙字長實(shí)數(shù)值IN1和IN2的大小,實(shí)數(shù)比較是有符號的(負(fù)實(shí)數(shù)范圍為-1.175495E-38和-3.402823E+38,正實(shí)數(shù)范圍為+1.175495E-38和+3.402823E+38)。比較式可以是LDR、AR或OR后直接加比較運(yùn)算符構(gòu)成。 如:LDR=、AR、OR= 等。 實(shí)數(shù)IN1和IN2的尋址范圍:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD和常數(shù)。 指令格式例:LDR= VD10, VD18 AR MD0, MD12 OR= AC1, 1160.478,5.1.5 比較指令,5. 字符串比較,字符串比較用于比

38、較兩個字符串的ASCII碼字符IN1和IN2是否相等,比較式可以是LDS、AS或OS后直接加比較運(yùn)算符=、 構(gòu)成。,比較指令,5.1.5 比較指令,6. 應(yīng)用舉例,控制要求: 一自動倉庫存放某種貨物,最多6000箱,需對所存的貨物進(jìn)出計(jì)數(shù)。貨物多于1000箱,燈L1亮;貨物多于5000箱,燈L2亮。 其中,L1和L2分別受Q0.0和Q0.1控制,數(shù)值1000和5000分別存儲在VW20和VW30字存儲單元中。,5.1.5 比較指令,LD I0.0 /增計(jì)數(shù)出入端 LD I0.1 /減計(jì)數(shù)出入端 LD I0.2 /復(fù)位出入端 CTUD C30,+10000 /增減計(jì)數(shù),設(shè)定脈沖數(shù)為10000 L

39、DW= C30,VW20 /比較計(jì)數(shù)器,當(dāng)前值是否大于等 /于VW20中的值 Q0.0 /輸出觸點(diǎn) LDW= C30,VW30 /比較計(jì)數(shù)器,當(dāng)前值是否大于等 /于VW30中的值 Q0.1 /輸出觸點(diǎn),5.1.5 比較指令,5.2 程序控制指令,1. 有條件結(jié)束指令,END,有條件結(jié)束指令。指令根據(jù)前一個邏輯條件終止主用戶程序。條件結(jié)束指令用在無條件結(jié)束指令(MEND)之前,用戶程序必須以無條件結(jié)束指令結(jié)束主程序??梢栽谥鞒绦蛑惺褂糜袟l件結(jié)束指令,但不能在子例行程序或中斷例行程序中使用。STEP7-Micro/WIN32自動在主用戶程序中增加無條件結(jié)束指令(MEND)。兩條結(jié)束指令在梯形圖中以

40、線圈形式編程。,STOP,暫停指令。通過暫停指令可將S7-200 CPU從RUN模式轉(zhuǎn)換為STOP模式,中止程序執(zhí)行。如果在中斷例行程序中執(zhí)行STOP指令,中斷例行程序立即終止,并忽略全部待執(zhí)行的中斷,繼續(xù)掃描主程序的剩余部分,在當(dāng)前掃描結(jié)束時從RUN模式轉(zhuǎn)換至STOP模式。STOP指令在梯形圖中以線圈形式編程。指令不含操作數(shù)。指令的執(zhí)行不考慮對特殊標(biāo)志寄存器位和能流的影響。,2. 暫停指令,3. 監(jiān)視定時器復(fù)位指令,為了保證系統(tǒng)可靠運(yùn)行,PLC內(nèi)部設(shè)置了系統(tǒng)監(jiān)視定時器(WDT),用于監(jiān)視掃描周期是否超時。WDT定時器有一設(shè)定值(100300ms),系統(tǒng)正常工作時,所需掃描時間小于WDT的設(shè)定

41、值,WDT定時器及時復(fù)位。系統(tǒng)故障情況下,掃描時間大于WDT設(shè)定值,該定時器不能及時復(fù)位,則報警并停止CPU運(yùn)行,同時復(fù)位輸出。這種故障稱為WDT故障。 系統(tǒng)正常工作時,有時會因?yàn)橛脩舫绦蜻^長或使用中斷指令、循環(huán)指令使掃描時間過長而超過WDT定時器的設(shè)定值,為防止這種情況下WDT動作,可使用監(jiān)視定時器復(fù)位指令(WDR),使WDT定時器復(fù)位。 WDR,監(jiān)視定時器復(fù)位指令。指令重新觸發(fā)S7-200 CPU的系統(tǒng)監(jiān)視程序定時器(WDT),擴(kuò)展掃描允許使用的時間,而不會出現(xiàn)監(jiān)視程序錯誤。WDR指令重新觸發(fā)WDT定時器,可以增加一次掃描時間。,5.2 程序控制指令,程序?qū)嵗?LD SM5.0 /使能輸

42、入端 O SM4.3 /進(jìn)行或操作 O I0.0 / SM5.0、SM4.3、I0.0進(jìn)行或操作 STOP /使能有效就暫停 LD I0.1 /使能輸入端 END /使能有效就結(jié)束 LD M0.3 /使能輸入端 WDR /使能有效就將看門狗定時器復(fù)位,5.2 程序控制指令,4. 跳轉(zhuǎn)與標(biāo)號指令,跳轉(zhuǎn)操作可以使PLC編程的靈活性大大提高,使主機(jī)可根據(jù)不同條件的判斷,選擇不同的程序段執(zhí)行程序。 JMP,跳轉(zhuǎn)指令。使能輸入有效時,使程序跳轉(zhuǎn)到標(biāo)號(n)處執(zhí)行。執(zhí)行跳轉(zhuǎn)指令時,邏輯堆棧棧頂值總是1。 LBL,標(biāo)號指令。標(biāo)記指令跳轉(zhuǎn)的目的地的位置(n)。操作數(shù)n為0255。,5.2 程序控制指令,指令的

43、使用說明:,跳轉(zhuǎn)指令和標(biāo)號指令必須配合使用,而且只能使用在同一程序塊中,不能在不同的程序塊間互相跳轉(zhuǎn); 執(zhí)行跳轉(zhuǎn)后,被跳過程序段中的各元器件的狀態(tài)各有不同:Q、M、S、C等元器件的位保持跳轉(zhuǎn)前的狀態(tài);計(jì)數(shù)器C停止計(jì)數(shù),當(dāng)前值存儲器保持跳轉(zhuǎn)前的計(jì)數(shù)值;對定時器來說,因刷新方式不同而工作狀態(tài)不同。在跳轉(zhuǎn)期間,分辯率為1ms和10ms的定時器會一直保持跳轉(zhuǎn)前的工作狀態(tài),原來工作的繼續(xù)工作,到設(shè)定值后其位的狀態(tài)也會改變,輸出觸點(diǎn)動作,其當(dāng)前值存儲器一直累計(jì)到最大值32767才停止。對分辨率為100ms的定時器來說,跳轉(zhuǎn)期間停止工作,但不會復(fù)位,存儲器里的值為跳轉(zhuǎn)時的值,跳轉(zhuǎn)結(jié)束后,若輸入條件允許,可繼

44、續(xù)計(jì)時,但已失去了準(zhǔn)確計(jì)時的意義。所以在跳轉(zhuǎn)段里的定時器要慎用。 P50-例3-22,5.2 程序控制指令,5. 循環(huán)指令,循環(huán)指令的引入為解決重復(fù)執(zhí)行相同功能的程序段提供了極大方便,并且優(yōu)化了程序結(jié)構(gòu)。循環(huán)指令有兩條:FOR和NEXT。 FOR,循環(huán)開始指令。用來標(biāo)記循環(huán)體的開始。 NEXT,循環(huán)結(jié)束指令。用來標(biāo)記循環(huán)體的結(jié)束。無操作數(shù)。 FOR和NEXT之間的程序段稱為循環(huán)體,每執(zhí)行一次循環(huán)體,當(dāng)前計(jì)數(shù)值增1,并且將其結(jié)果同終值進(jìn)行比較,如果大于終值,則終止循環(huán)。 在使用時必須給FOR指令指定當(dāng)前循環(huán)計(jì)數(shù)(INDX)、初值(INIT)和終值(FINAL)。 指令格式:FOR INDX, I

45、NIT, FINAL NEXT,5.2 程序控制指令,循環(huán)指令使用說明:,FOR、NEXT指令必須成對使用; FOR和NEXT可以循環(huán)嵌套,嵌套最多為8層,但各個嵌套之間不可有交叉現(xiàn)象; 每次使能輸入(EN)重新有效時,指令將自動復(fù)位各參數(shù),初始值INIT被傳送到指針I(yè)NDX中; 初值大于終值時,循環(huán)體不被執(zhí)行。 P51 例323,5.2 程序控制指令,6. 子程序調(diào)用與返回指令 與子程序有關(guān)的操作有:建立子程序、子程序的調(diào)用和返回。,建立子程序是通過編程軟件來完成的??捎镁幊誊浖熬庉嫛辈藛沃械摹安迦搿边x項(xiàng),選擇“子程序”,以建立或插入一個新的子程序,同時,在指令樹窗口可以看到新建的子程序圖

46、標(biāo),默認(rèn)的程序名是SBR_N,編號N從0開始按遞增順序生成,也可以在圖標(biāo)上直接更改子程序的程序名,把它變?yōu)楦苊枋鲈撟映绦蚬δ艿拿?。在指令樹窗口雙擊子程序的圖標(biāo)就可以進(jìn)入子程序,并對它進(jìn)行編輯。,(1)建立子程序,5.2 程序控制指令,CALL,子程序調(diào)用指令。在使能輸入有效時,主程序把程序控制權(quán)交給子程序。子程序的調(diào)用可以帶參數(shù),也可以不帶參數(shù)。它在梯形圖中以指令盒的形式編程。 指令格式:CALL SBR_0,(2)子程序調(diào)用,子程序中可以有參變量,帶參數(shù)的子程序調(diào)用擴(kuò)大了子程序的使用范圍,增加了調(diào)用的靈活性。子程序的調(diào)用過程如果存在數(shù)據(jù)的傳遞,則在調(diào)用指令中應(yīng)包含相應(yīng)的參數(shù)。 子程序的參

47、數(shù)在子程序的局部變量表中加以定義。參數(shù)包含的信息有地址、變量名(符號)、變量類型和數(shù)據(jù)類型。子程序最多可以傳遞16個參數(shù)。,5.2 程序控制指令,輸入子程序參數(shù)IN。IN可以是直接尋址數(shù)據(jù)(如:VB10)、間接尋址數(shù)據(jù)(如:*AC1)、常數(shù)(如:161234)或地址(如:&VB100); 輸入/輸出子程序參數(shù)IN/OUT。調(diào)用子程序時,將指定參數(shù)位置的值傳到子程序,子程序返回時,從子程序得到的結(jié)果被返回到指定參數(shù)的地址。參數(shù)可采用直接尋址和間接尋址,但常數(shù)和地址不允許作為輸入/輸出參數(shù); 輸出子程序參數(shù)OUT。將從子程序來的結(jié)果返回到指定參數(shù)的位置。輸出參數(shù)可以采用直接尋址和間接尋址,但不可以

48、是常數(shù)或地址; 暫時變量TEMP。只能在子程序內(nèi)部暫時存儲數(shù)據(jù),不能用來傳遞參數(shù)。,局部變量表中的變量類型區(qū)定義的變量有:,5.2 程序控制指令,子程序結(jié)束要加上無條件返回指令RET。CRET指令只能用于子程序中; 如果在子程序的內(nèi)部又對另一個程序執(zhí)行調(diào)用指令,則這種調(diào)用稱為子程序的嵌套。子程序嵌套的深度最多為8級; 當(dāng)一個子程序被調(diào)用時,系統(tǒng)自動保存當(dāng)前的邏輯堆棧數(shù)據(jù),并把棧頂置1,堆棧中的其它位置設(shè)為0,子程序占有控制權(quán)。子程序執(zhí)行結(jié)束,通過返回指令自動恢復(fù)原來的邏輯堆棧值,調(diào)用程序又重新取得控制權(quán); 累加器可在調(diào)用程序和被調(diào)用子程序之間自由傳遞,所以累加器的值在子程序調(diào)用時既不保存也不恢

49、復(fù)。 在語句表中調(diào)用帶參數(shù)的子程序時,參數(shù)必須按一定的順序排列,輸入?yún)?shù)在最前面,其次是輸入/輸出參數(shù),最后是輸出參數(shù)。,子程序調(diào)用使用說明:,5.2 程序控制指令,5.2 程序控制指令,(3)子程序返回,CRET,子程序條件返回指令。在使能輸入有效時,結(jié)束子程序的執(zhí)行,返回主程序中(指向子程序調(diào)用的下一條指令)。梯形圖中以線圈的形式編程,指令不帶參數(shù); RET,子程序無條件返回指令。 指令格式: CRET (條件返回) RET (無條件返回),5.3 PLC的編程與應(yīng)用,5.3.1 梯形圖的編程規(guī)則,1. 梯形圖概述,梯形圖是使用的最多的圖形編程語言,被稱為PLC的第一編程語言。梯形圖與電器

50、控制系統(tǒng)的電路圖很相似,具有直觀易懂的優(yōu)點(diǎn),很容易被工廠電氣技術(shù)人員掌握,特別適用于開關(guān)量邏輯控制(數(shù)字量控制)。 梯形圖是用梯形圖的圖形符號來描述程序的一種程序設(shè)計(jì)語言。這種程序設(shè)計(jì)語言采用因果關(guān)系來描述事件發(fā)生的條件和結(jié)果,每個梯級是一個因果關(guān)系,梯級中描述事件發(fā)生的條件表示在左面,事件發(fā)生的結(jié)果表示在后面。,軟繼電器 PLC梯形圖中的某些編程元件沿用了繼電器這一名稱,如輸入繼電器,輸出繼電器,內(nèi)部輔助繼電器等,但是它們不是真實(shí)的物理繼電器,而是一些存儲單元(軟繼電器),每一個軟繼電器與PLC存儲器中映像寄存器的一個存儲單元相對應(yīng)。該存儲單元如果為“1”狀態(tài),則表示梯形圖中對應(yīng)軟繼電器的線

51、圈“通電”,其常開觸點(diǎn)接通,常閉觸點(diǎn)斷開,稱這種狀態(tài)是該軟繼電器的“1”或“ON”狀態(tài)。使用中也常將這些軟繼電器稱為編程元件。,梯形圖程序設(shè)計(jì)中的四個基本概念:,5.3.1 梯形圖的編程規(guī)則,母線 梯形圖左右兩側(cè)地垂直公共線稱為母線(右母線可不畫出)。在分析梯形圖地邏輯關(guān)系時,為了借用繼電器電路圖地分析方法,可以想象左右兩側(cè)母線之間有一個左正右負(fù)地直流電源電壓,母線之間有“能流” 從左向右流動。 能流 梯形圖中的能流不是實(shí)際意義的物理電流,而是“概念電流”;能流只能從左向右流動,這一方向與執(zhí)行用戶程序時的邏輯運(yùn)算的順序是一致的。利用能流這一概念,可以幫助我們更好地理解和分析梯形圖。,5.3.1 梯形圖的編程規(guī)則,梯

溫馨提示

  • 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

提交評論