s7-200PLC編程及應用第3章200_第1頁
s7-200PLC編程及應用第3章200_第2頁
s7-200PLC編程及應用第3章200_第3頁
s7-200PLC編程及應用第3章200_第4頁
s7-200PLC編程及應用第3章200_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第3章 S7-200 編程基礎 3.1 PLC的編程語言與程序結(jié)構(gòu)的編程語言與程序結(jié)構(gòu)3.1.1 PLC編程語言的國際標準編程語言的國際標準 IEC 61131-3標準的5種編程語言: 1. 順序功能圖(Sequential Function Chart),第5章將詳細介紹。 2. 梯形圖(Ladder Diagram,LAD) 梯形圖程序被劃分為若干個網(wǎng)絡,一個網(wǎng)絡只能有一塊獨立電路。觸點接通時有“能流”(Power Flow)流過線圈?!澳芰鳌敝荒軓淖笙蛴伊鲃?。梯形圖和語句表用得最多。 3. 指令表(Instruction List),西門子叫語句表(STL) 語句表程序由指令組成,適合程

2、序設計經(jīng)驗豐富的程序員使用。 4. 功能塊圖(Function Block Diagram,F(xiàn)BD) 是類似于數(shù)字邏輯電路的編程語言,國內(nèi)很少使用。 5. 結(jié)構(gòu)文本(Structured Text) 為IEC 61131-3標準創(chuàng)建的一種專用的高級編程語言。 6編程語言的相互轉(zhuǎn)換和選用 在編程軟件中,可以選用梯形圖、功能塊圖和語句表。 梯形圖中輸入信號(觸點)與輸出信號(線圈)之間的邏輯關(guān)系一目了然,易于理解。設計復雜的數(shù)字量控制程序時建議使用梯形圖語言。 語句表程序輸入方便快捷,還可以為每一條語句加上注釋,便于復雜程序的閱讀。 7. SIMATIC指令集與IEC 61131-3指令集 用“選

3、項”對話框切換,一般使用SIMATIC指令集。3.1.2 S7-200的程序結(jié)構(gòu)的程序結(jié)構(gòu) 1主程序OB1:每次掃描都要執(zhí)行主程序。每個項目都必須有且只能有一個主程序。主程序可以調(diào)用子程序。 2子程序:同一個子程序可以被多次調(diào)用,使用子程序可簡化程序代碼、減少掃描時間。 3中斷程序:在中斷事件發(fā)生時由PLC的操作系統(tǒng)調(diào)用中斷程序。3.2 數(shù)據(jù)類型與尋址方式數(shù)據(jù)類型與尋址方式3.2.1 數(shù)制數(shù)制 1二進制數(shù) (1)用1位二進制數(shù)表示數(shù)字量 二進制數(shù)的1位只能為0和1。用1位二進制數(shù)來表示開關(guān)量的兩種不同的狀態(tài),線圈通電、常開觸點接通、常閉觸點斷開為1狀態(tài)(ON),反之為0狀態(tài)(OFF)。二進制位

4、的數(shù)據(jù)類型為BOOL(布爾)型。 (2)多位二進制數(shù) 多位二進制數(shù)用來表示大于1的數(shù)字。從右往左的第n位(最低位為第0位)的權(quán)值為2n。2#0000 0100 1000 0110對應的十進制數(shù)為1158222212710 (3)有符號數(shù)的表示方法 用二進制補碼來表示有符號數(shù),最高位為符號位,最高位為0時為正數(shù),反之為負數(shù)。正數(shù)的補碼是它本身,最大的16位二進制正數(shù)為2#0111 1111 1111 1111(32767)。 將正數(shù)的補碼逐位取反(0變?yōu)?,1變?yōu)?)后加 1,得到絕對值與它相同的負數(shù)的補碼。例如將1158的補碼2#0000 0100 1000 0110逐位取反后加1,得到115

5、8的補碼1111 1011 0111 1010。 2十六進制數(shù) 十六進制數(shù)用于簡化二進制數(shù)的表示方法,16個數(shù)為09和AF(1015),4位二進制數(shù)對應于1位十六進制數(shù),例如2#1010 1110 0111 0101可以轉(zhuǎn)換為16#AE75(或AE75H)。 十六進制數(shù)“逢16進1”,第n位的權(quán)值為16n。16#2F對應的十進制數(shù)為21611516047。 3BCD碼(Binary Coded Decimal)是各位按二進制編碼的十進制數(shù),“逢10進1”。用4位二進制數(shù)來表示1位十進制數(shù),每一位只能是2#00002#1001。 用16#表示BCD碼,4位BCD碼對應于16位二進制數(shù),允許范圍為

6、16#9999 16# 0000。 BCD碼用于PLC的輸入和輸出。 撥碼開關(guān)用來設置多位十進制參數(shù)值,PLC用輸入點讀取的多位撥碼開關(guān)的輸出值就是BCD碼,圖3-5的撥碼開關(guān)輸出的BCD碼為16#829。 電梯的樓層數(shù)轉(zhuǎn)換為BCD碼后,分別送給譯碼驅(qū)動芯片4547。3.2.2 數(shù)據(jù)類型數(shù)據(jù)類型 1位 二進制位(bit)的數(shù)據(jù)類型為BOOL(布爾)。 I3.2 中的I表示輸入,3是字節(jié)地址,2是字節(jié)中的位地址(0 7)。 2字節(jié) 一個字節(jié)(Byte)由8個位數(shù)據(jù)組成,IB3由I3.0I3.7這8位組成。 3字和雙字 相鄰的兩個字節(jié)組成一個字(Word),相鄰的兩個字或4個字節(jié)組成一個雙字(Do

7、uble Word)。以起始字節(jié)的地址作為字和雙字的地址。起始字節(jié)為最高位的字節(jié)。 字節(jié)、字和雙字都是無符號數(shù),它們的數(shù)值用16#表示。用VB100的地址編號作為VW100和VD100的地址編號。 組成字和雙字的編號最小的字節(jié)VB100為VW100和VD100的最高位字節(jié)。 I、Q、V、M、S、SM、L均可以按位、字節(jié)、字和雙字來存取。 416位整數(shù)INT和32位雙整數(shù)DINT都是有符號數(shù)。最高位為符號位。 532位浮點數(shù)(REAL,實數(shù))可以表示為1.m 2E,標準格式的浮點數(shù)的最高位為符號位,指數(shù)e = E +127為8位正整數(shù)。第022位是尾數(shù)的小數(shù)部分m,第2330位是指數(shù)部分e 。

8、在編程軟件中,用小數(shù)表示浮點數(shù)。浮點數(shù)的精度相當于7位十進制數(shù)。 6ASCII碼字符:美國信息交換標準代碼。用單引號表示,例如AB12 。 7字符串的數(shù)據(jù)類型為STRING,由若干個ASCII碼字符組成,第一個字節(jié)是字符串的長度(0254),后面的每個字符占一個字節(jié)。字符串用雙引號表示,例如”LINE2”。3.2.3 CPU的存儲區(qū)的存儲區(qū) 1過程映像輸入寄存器(I):外部輸入電路接通時對應的過程映像輸入寄存器為ON(1狀態(tài)),反之為OFF(0狀態(tài))。 2過程映像輸出寄存器(Q):梯形圖中Q0.0的線圈“通電”時,輸出模塊中對應的硬件繼電器的常開觸點閉合。 3變量存儲區(qū)(V):用來存放中間結(jié)果

9、和有關(guān)數(shù)據(jù)。 4位存儲區(qū)(M):類似于繼電器控制系統(tǒng)的中間繼電器,32個字節(jié)。 5定時器存儲區(qū)(T):定時器、計數(shù)器的當前值為16位有符號整數(shù),定時器位用來描述定時器的延時動作的觸點的狀態(tài)。 6計數(shù)器存儲區(qū)(C):計數(shù)器用來累計其計數(shù)脈沖上升沿的次數(shù)。計數(shù)器位用來描述計數(shù)器的觸點的狀態(tài)。 7高速計數(shù)器(HC):用來累計比CPU的掃描速率更快的事件。當前值為32位有符號整數(shù)。 8累加器(AC0AC3):32位,可以按字節(jié)、字和雙字來訪問累加器中的數(shù)據(jù)。按字節(jié)、字只能訪問累加器的低8位或低16位。 9特殊存儲器(SM) 特殊存儲器用于CPU與用戶程序之間交換信息。 SM0.0一直為ON; SM0.

10、1僅在執(zhí)行用戶程序的第一個掃描周期為ON。 SM0.4和SM0.5分別提供周期為1分鐘和1秒的時鐘脈沖。 SM1.0、SM1.1和SM1.2分別為零標志、溢出標志和負數(shù)標志。 10局部存儲區(qū)域(L):各POU都有自己的64字節(jié)的局部存儲器,僅僅在它被創(chuàng)建的POU中有效。作為暫時存儲器,或給子程序傳遞參數(shù)。 變量存儲器(V)是全局存儲器,可以被所有的POU訪問。 11模擬量輸入(AI):AI模塊將模擬量轉(zhuǎn)換為一個字的數(shù)字量。AI地址應從偶數(shù)字節(jié)開始(例如AIW2),為只讀數(shù)據(jù)。 12模擬量輸出(AQ):AQ模塊將一個字的數(shù)字值按比例轉(zhuǎn)換為電流或電壓。AQ地址應從偶數(shù)字節(jié)開始(例如AQW2),用戶

11、不能讀取。 13順序控制繼電器(S):用于順序控制編程(見5.5節(jié)),32字節(jié)。 14常數(shù)的表示方法舉例 十進制整數(shù):20047;十六進制數(shù):16#3A8D;二進制數(shù):2#1001 1011;浮點數(shù):50.0;ASCII碼:AB12;字符串:”LINE2”。 I、Q、V、M、S、SM和L存儲器區(qū)均可以按位、字節(jié)、字和雙字來訪問。3.2.4 直接尋址與間接尋址直接尋址與間接尋址 直接尋址指定了存儲器的區(qū)域、長度和位置,例如VB200。 間接尋址給出一個被稱為地址指針的存儲單元的地址,32位地址指針里存放的是真正的操作數(shù)的地址。只能用V、L或累加器作指針。 間接尋址可用于訪問 I、Q、V、M、S、

12、AI、AQ、SM,以及T和C的當前值。不能訪問單個位(bit)地址、HC、L存儲區(qū)和累加器。 指令“MOVD &VB200, AC1”將VB200的地址&VB200傳送給AC1。 指令“MOVW *AC1, AC0”將指針AC1所指的VW200中的數(shù)據(jù)( *AC1)傳送給AC0。 用指針訪問相鄰的下一個字節(jié)時,指針值加1;訪問字時,指針值加2;訪問雙字時,指針值加4。 【例3-1】 用于非線性校正的表格存放在VW100開始的10個字中,表格的偏移量(表格中字的序號,第1個字的序號為0)在VD20中,在I0.0的上升沿,用間接尋址將表格中相對于偏移量的數(shù)據(jù)值傳送到VW24中去。用

13、AC1作地址指針。下面是語句表程序。LD I0.0EU/在I0.0的上升沿MOVD &VB100, AC1/表格的起始地址送AC1+D VD20, AC1+D VD20, AC1/起始地址加偏移量MOVW *AC1, VW24/讀取表格中的數(shù)據(jù) 一個字由兩個字節(jié)組成,地址相鄰的兩個字的地址增量為2(兩個字節(jié)),所以用了兩條雙整數(shù)加法指令。3.3 位邏輯指令位邏輯指令3.3.1 觸點指令與堆棧指令觸點指令與堆棧指令 1標準觸點指令 常開觸點對應的位地址為ON時,該觸點閉合。 常閉觸點對應的位地址為OFF時,該觸點閉合。 2輸出指令 輸出指令(=)對應于梯形圖中的線圈。梯形圖中兩個并聯(lián)的線

14、圈用兩條相鄰的輸出指令來表示。 圖3-13 觸點與輸出指令 圖3-14 上升沿檢測 【例3-2】 已知圖3-14中I0.1的波形,畫出M0.0的波形。 在I0.1上升沿之前,I0.1的常開觸點斷開,M0.0和M0.1均為OFF,其波形用低電平表示。 在I0.1的上升沿,I0.1和M0.1的觸點同時閉合,M0.0變?yōu)镺N。 從上升沿之后的第二個掃描周期開始,M0.1為ON,其常閉觸點斷開,使M0.0為OFF。M0.0只是在I0.1的上升沿ON一個掃描周期。 交換上下兩行電路,M0.0的線圈不會通電。 3邏輯堆棧的基本概念 S7-200有一個9位的堆棧,最上面的第一層稱為棧頂。堆棧中的數(shù)據(jù)一般按“

15、先進后出”的原則訪問。 執(zhí)行LD指令時,將指令指定的位地址中的二進制數(shù)裝載入棧頂。 執(zhí)行A(與)指令時,指令指定的位地址中的二進制數(shù)和棧頂中的二進制數(shù)作“與”運算,運算結(jié)果存入棧頂。棧頂之外其他各層的值不變。 執(zhí)行O(或)指令時,指令指定的位地址中的二進制數(shù)和棧頂中的二進制數(shù)作“或”運算,運算結(jié)果存入棧頂。 4或裝載指令OLD 圖3-15中前兩條指令執(zhí)行完后,“與”運算的結(jié)果S0 存放在堆棧的棧頂,第3、4條指令執(zhí)行完后,“與”運算的結(jié)果S1 壓入棧頂(見圖3-16),原來在棧頂?shù)腟0被推到堆棧的第2層,下面各層的數(shù)據(jù)依次下移一層。 OLD指令對堆棧第一、二層的二進制數(shù)作“或”運算,運算結(jié)果S

16、2 = S0 + S1存入堆棧的棧頂,第39層中的數(shù)據(jù)依次向上移動一層。 5與裝載指令ALD 圖3-15中OLD下面的兩條指令并聯(lián)運算的果 S3被壓入棧頂,堆棧中原來的數(shù)據(jù)依次向下一層推移。 ALD指令對堆棧第一、二層的數(shù)據(jù)作“與”運算,運算結(jié)果S4 = S2 S3存入堆棧的棧頂,第39層中的數(shù)據(jù)依次向上移動一層。 【例3-3】 已知圖3-17中的語句表程序,畫出對應的梯形圖。 首先將電路劃分為若干塊,各電路塊從含有LD的指令(例如LD、LDI和LDP等)開始,在下一條含有LD的指令(包括ALD和OLD)之前結(jié)束;然后分析各塊電路之間的串并聯(lián)關(guān)系。 OLD或ALD指令并、串聯(lián)的是它上面靠近它的

17、已經(jīng)連接好的電路。 6其他堆棧操作指令 邏輯進棧LPS指令復制棧頂?shù)闹挡⑵鋲喝攵褩5牡?層,堆棧中原來的數(shù)據(jù)依次向下一層推移。 邏輯讀棧LRD指令將堆棧第2層的數(shù)據(jù)復制到棧頂,原來的棧頂值被復制值替代。第2層第9層的數(shù)據(jù)不變。 邏輯出棧LPP指令將棧頂值彈出,堆棧各層的數(shù)據(jù)向上移動1層,第2層的數(shù)據(jù)成為新的棧頂值。 裝載堆棧指令LDS很少使用。 圖3-20中的第1條LPS指令將棧頂?shù)腁點邏輯運算結(jié)果保存到堆棧的第2層,第2條LPS指令將B點的邏輯運算結(jié)果保存到堆棧的第2層,A點的邏輯運算結(jié)果被“壓”到堆棧的第3層。第1條LPP指令將堆棧第2層B點的邏輯運算結(jié)果上移到棧頂,第3層中A點的邏輯運

18、算結(jié)果上移到堆棧的第2層。最后一條LPP指令將堆棧第二層的A點的邏輯運算結(jié)果上移到棧頂。 7立即觸點 立即觸點指令只能用于輸入位I,立即讀入物理輸入點的值,但是并不更新該物理輸入點對應的過程映像輸入寄存器。3.3.2 輸出類指令與其他指令輸出類指令與其他指令 1立即輸出 圖3-18中的立即輸出將棧頂值立即寫入指定的物理輸出點和對應的過程映像輸出寄存器。該指令只能用于輸出位Q。 2置位與復位 置位與復位指令分別將指定的位地址開始的N個連續(xù)的位地址置位(變?yōu)镺N)和復位(變?yōu)镺FF),N = 1255。兩條指令有記憶和保持功能。 可用復位指令清除定時器/計數(shù)器的當前值,同時將它們的位復位為OFF。

19、 3立即置位與立即復位 這兩條指令分別將指定的位地址開始的N個連續(xù)的物理輸出點立即置位或復位,N = 1255。它們只能用于輸出位Q,新值被同時寫入對應的物理輸出點和過程映像輸出寄存器。 4RS、SR雙穩(wěn)態(tài)觸發(fā)器指令 SR是置位優(yōu)先雙穩(wěn)態(tài)觸發(fā)器,RS是復位優(yōu)先雙穩(wěn)態(tài)觸發(fā)器。它們用置位輸入和復位輸入來控制方框上面的位地址,可選的OUT連接反映了方框上面位地址的信號狀態(tài)。 置位信號S1和復位信號R同時為ON時,M0.5被置位為ON。 置位信號S和復位信號R1同時為ON時,M0.6被復位為OFF。 5其他位邏輯指令 正向轉(zhuǎn)換觸點(P)檢測到一次正跳變或負向轉(zhuǎn)換觸點(N)檢測到一次負跳變時,觸點接通一

20、個掃描周期。 取反(NOT)觸點將存放在堆棧頂部的它左邊電路的邏輯運算結(jié)果取反。取反觸點左、右兩邊能流的狀態(tài)相反。 空操作指令(NOP N)不影響程序的執(zhí)行。 6程序的優(yōu)化設計 在設計并聯(lián)電路時,應將單個觸點的支路放在下面;設計串聯(lián)電路時,應將單個觸點放在右邊。在有線圈的并聯(lián)電路中,應將單個線圈放在上面。3.4 3.4 定時器與計數(shù)器指令定時器與計數(shù)器指令3.4.1 3.4.1 定時器指令定時器指令 1定時器的分辨率 2接通延時定時器和有記憶接通延時定時器 定時器和計數(shù)器的當前值的數(shù)據(jù)類型均為整數(shù)(INT),允許的最大值為32767。接通延時定時器TON和保持型接通延時定時器TONR的使能(I

21、N)輸入電路接通后開始定時,當前值不斷增大。當前值大于等于PT端指定的預設值時,定時器位變?yōu)镺N。達到預設值后,當前值仍繼續(xù)增加,直到最大值32767。定時器的預設時間等于預設值PT與分辨率的乘積。 接通延時定時器的使能輸入電路斷開時,定時器被復位,其當前值被清零,定時器位變?yōu)镺FF。還可以用復位(R)指令復位定時器和計數(shù)器。 有記憶接通延時定時器TONR的使能(IN)輸入電路斷開時,當前值保持不變。使能輸入電路再次接通時,繼續(xù)定時。累計的時間間隔等于預設值時,定時器位變?yōu)镺N。只能用復位指令來復位TONR。 圖3-28是用接通延時定時器編程實現(xiàn)的脈沖定時器程序,在I0.3的上升沿,Q0.2輸出一個寬度為3s的脈沖,I0.3的脈沖寬度可以大于3s,也可以小于3s。 3斷開延時定時器 使能輸入電路接通時,定時器位立即變?yōu)镺N,當前值被清零。 使能輸入電路斷開時,開始定時,當前值等于預設值時,輸出位變?yōu)镺FF,當前值保持不變,直到使能輸入電路接通。 斷開延時定時器用于設備停機后的延時,例如變頻電機的冷卻風扇的延時。 4分辨率對定時器的影響 執(zhí)行1ms分辨率的定時器指令時開始計時,其定時器位和當前值每1ms更新一次。掃描周期大于1ms時,在一個掃描周期內(nèi)

溫馨提示

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

最新文檔

評論

0/150

提交評論