三、第3章(1)PLC程序設計基礎_第1頁
三、第3章(1)PLC程序設計基礎_第2頁
三、第3章(1)PLC程序設計基礎_第3頁
三、第3章(1)PLC程序設計基礎_第4頁
三、第3章(1)PLC程序設計基礎_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第三章PLC程序設計基礎3.1

存儲器的數(shù)據類型與尋址方式3.2

可編程序控制器的編程語言和程序結構3.1

存儲器的數(shù)據類型與尋址方式

3.1.1數(shù)據在存儲器中存取的方式

1.用1位二進制數(shù)表示開關量。2.多位二進制數(shù)表示數(shù)字:2#1010=10。3.十六進制數(shù)表示多位二進制數(shù):用于簡化二進制數(shù)的表示方法,“逢16進1”

。二進制(2#)二進制是計算機技術中廣泛應用的一種數(shù)制,只有0和1。宜用二進制表示電子元件的狀態(tài),斷開-0,閉合-1。例:2#0=10#02#1=10#12#1001=10#9十六進制(16#)

數(shù)據:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F例:16#6=10#6=2#11016#A=10#10=2#101016#F=10#15=2#111116#10=10#1616#6AD=10#1709=2#0110

1010

1101

對于比較大的數(shù)字,用2#表示太長,所以采用16#注:16#與2#的關系:16#的每一位對應2#的4個位。4.位、字節(jié)、字、雙字的概念這些都表示內存空間的大小,PLC據此尋址。一個字節(jié)(Byte)的內存空間包含了8個2#位;一個字(Word)的內存空間含2個字節(jié),包含了16個2#位;一個雙字(Dword)的內存空間含2個字(4個字節(jié)),包含了32個2#位;例:2#111001如何存放呢?

如果占用一個字節(jié)的空間--00111001;

如果占用一個字的空間--0000000000111001;

如果在一個雙字的空間--00000000000000000000000000111001所以:一個字節(jié)存放的數(shù)值范圍:16#00—16#FF;即:10#0—10#255;一個字存放的數(shù)值范圍:16#0000—16#FFFF;

即:10#0—10#65535;一個雙字存放的數(shù)值范圍:16#00000000—16#FFFFFFFF;

即:10#0—10#4294967295;存儲器地址的表示方法I4.5:“字節(jié).位”尋址方式。字節(jié)、字與雙字存取方式以起始字節(jié)的地址作為字和雙字的地址。注意:起始字節(jié)為最高位的字節(jié)。例如:VW100:VB100為高8位,VB101為低8位字節(jié)地址。I、Q、V、M、S、SM、L均可按位、字節(jié)、字和雙字來存取。數(shù)整數(shù)浮點數(shù)(Real)(實數(shù))-帶小數(shù)點無符號整數(shù)-正數(shù)(格式:Byte/Word/Dword)有符號整數(shù)-有正有負(格式:INT/DINT)5、負數(shù)如何表達?

在計算機中,負數(shù)以其正值的補碼形式表達。原碼-一個整數(shù),按照絕對值轉換成的2#數(shù);反碼-將2#數(shù)按位取反,所得的新數(shù)為原2#數(shù)的反碼;補碼-反碼加1;例:-5,原碼--2#0000000000000101;

反碼--2#1111111111111010;

補碼--2#1111111111111011;故:-5在PLC內存里的表示方式為:2#1111111111111011;用二進制補碼表示有符號數(shù),最高位為符號位:0為正數(shù),1為負數(shù),最大的16位正數(shù)為16#7FFF(32767)(表3-2)6.BCD碼BCD碼是一種編碼方式,用4位二進制數(shù)對1位十進制數(shù)進行編碼,用2#數(shù)對10#數(shù)字進行編碼,改用16#數(shù)字表示。BCD碼用于輸入輸出設備。由于10#只有10個數(shù)字,因此16#中的A—F不會出現(xiàn)在BCD碼中。數(shù)據類型、格式匯總尋址格式數(shù)據長度(二進制位)數(shù)據類型取值范圍BOOL(位)1(位)布爾數(shù)(二進制位)真(1),假(0)BYTE(字節(jié))8無符號整數(shù)0-255,0-FF(Hex)INT(整數(shù))16有符號整數(shù)-32768-327678000-7FFF(Hex)WORD(字)無符號整數(shù)0-655350-FFFF(Hex)DINT(雙整數(shù))32有符號整數(shù)-2147483648-214748364780000000-7FFFFFFF(Hex)DWORD(雙字)無符號整數(shù)0-4294967295;0-FFFFFFFF(Hex)REAL(實數(shù))IEEE32位單精度浮點數(shù)-3.402823E+38--1.175495E-38(負數(shù));+1.175495E-38-+3.402823E+38(正數(shù))ASCLL1個漢字2個字符,1個字符占用1個字節(jié)(8位)的內存,查ASCLL碼表。字符列表ASCLL字符,漢字內碼(每個漢字2字節(jié))STRING(字符串)字符串1-254個ASCLL字符,漢字內碼(每個漢字2字節(jié))VMIQSSMLTCHCACAIAQ定時器計數(shù)器高速計數(shù)器累加器模擬量輸入緩存區(qū)模擬量輸出緩存區(qū)這些區(qū)域存放的是“軟功能器件”,不同器件有不同的數(shù)據存取規(guī)定。這些區(qū)域可按位、字節(jié)、字、雙字存取數(shù)據(尋址)。3.1.2CPU的存儲區(qū)數(shù)字量輸入的存儲區(qū)(也稱輸入繼電器)數(shù)字量輸出的存儲區(qū)(也稱輸出繼電器)位存儲區(qū)變量存儲區(qū)V特殊存儲區(qū)局部存儲器順序控制繼電器存儲器類型及其尋址方式:1.數(shù)字量輸入的存儲區(qū)(I)a)是PLC接收外部輸入的數(shù)字量信號的窗口。

b)外部輸入電路接通時對應的映像寄存器為ON(1狀態(tài)),反之為OFF(0狀態(tài))

c)輸入端可以是外部常開觸點或常閉觸點,也可以是多個觸點的串、并聯(lián)電路。

d)編程中,可以多次使用輸入位的常開觸點和常閉觸點。

e)地址標志:If)尋址方式:位(I),字節(jié)(IB),字(IW),雙字(ID)位尋址范圍:I0.0-I15.7

2.數(shù)字量輸出的存儲區(qū)(Q)a)在輸出刷新階段,CPU將數(shù)字量輸出存儲區(qū)的數(shù)據傳送給輸出模塊,驅動外部負載。b)如果Q0.0的線圈“通電”,繼電器輸出模塊中對應的硬件繼電器的常開觸點閉合,接在標號為Q0.0的端子的外部負載通電。c)編程中,可以多次使用輸出位的常開觸點和常閉觸點。d)地址標志:Qe)尋址方式:位(Q),字節(jié)(QB),字(QW),雙字(QD)位尋址范圍:Q0.0-Q15.73.變量存儲區(qū)V是全局存儲器,所有的程序都可以存取,(與L相對)。在程序執(zhí)行過程中用來存放中間結果,或者用來保存與工序或任務有關的其他數(shù)據。4.位存儲區(qū)(M)類似于繼電器控制系統(tǒng)中的中間繼電器,用來存放中間操作狀態(tài)或者其他控制信息。只有32個字節(jié)(M0—M31)。5.定時器存儲區(qū)(T)

相當于繼電器控制系統(tǒng)中的時間繼電器。時間基準分為1ms,10ms,100ms。

包括定時器的位(觸點的狀態(tài))和定時器當前值寄存器,都用定時器的地址來尋址。6.計數(shù)器存儲區(qū)(C)

分為加、減、加減計數(shù)器3種

用來累計其計數(shù)輸入脈沖電平由低到高的次數(shù)。7.高速計數(shù)器(HC)

用來累計比CPU掃描速率更快的事件,計數(shù)過程與掃描周期無關。8.32位累加器(AC0~AC3)可以按字節(jié)、字和雙字來存取。按字節(jié)、字只能存取累加器的低8位或低16位。9.特殊存儲器(SM)

用于CPU與用戶之間交換信息。各特殊存儲器(SM)的標志位:

SM0.0一直為1狀態(tài);SM0.1僅在執(zhí)行用戶程序的第一個掃描周期為1狀態(tài)。

SM0.4和SM0.5分別提供周期為1分鐘和1秒的時鐘脈沖。

SM1.0、SM1.1和SM1.2分別為零標志、溢出標志和負數(shù)標志。10.局部存儲器L

作為暫時存儲器,或給子程序傳遞參數(shù)。共有64個字節(jié)。各POU都有自己的局部變量表,局部變量僅僅在被創(chuàng)建的POU中有效。11.模擬量輸入(AI)

將模擬量A/D轉換為一個字長(16位)的數(shù)字量,輸入地址:AIW2,AIW4等,從偶數(shù)字節(jié)地址開始,為只讀數(shù)據。12.模擬量輸出字(AQ)將一個字長的數(shù)字量D/A轉換為模擬量輸出,輸出地址:AQW2,AQW4等,從偶數(shù)字節(jié)地址開始,用戶只能寫出數(shù)據,不能讀取。13.順序控制繼電器(S):用于順序控制編程,與順序控制繼電器指令配合使用。14.常數(shù)的表示方法與范圍15.實數(shù)(浮點數(shù)):在編程軟件中,用小數(shù)表示浮點數(shù)。3.1.3直接尋址與間接尋址

直接尋址:指定了存儲器的區(qū)域、長度和位置,例如VB200。按位尋址的格式為:Ax.y按字節(jié)尋址的格式為:ABX按字尋址的格式為:AWX按雙字尋址的格式為:ADX存儲區(qū)內另有一些元件是具有一定功能的硬件,由于元件數(shù)量很少,所以不用指出元件所在存儲區(qū)域的字節(jié),而是直接指出它的編號。其尋址格式為:Ay間接尋址方式

間接尋址方式:數(shù)據存放在存儲器或寄存器中,在指令中只出現(xiàn)所需數(shù)據所在單元的內存地址的地址。存儲單元地址的地址又稱為地址指針。這種間接尋址方式與計算機的間接尋址方式相同。間接尋址在處理內存連續(xù)地址中的數(shù)據時非常方便,而且可以縮短程序所生成的代碼的長度,使編程更加靈活。用間接尋址方式存取數(shù)據需要作的工作有3種:建立指針、間接存取和修改指針。(1)建立指針

建立指針必須用雙字傳送指令(MOVD),將存儲器所要訪問的單元的地址裝入用來作為指針的存儲器單元或寄存器,裝入的是地址而不是數(shù)據本身,格式如下:例: MOVD &VB200,VD302 MOVD &MB10,AC2 MOVD &C2,LD14注意:建立指針用MOVD指令。指令中在操作數(shù)的前面加“*”表示該操作數(shù)為一個指針。3.2

可編程序控制器的編程語言和程序結構3.2.1可編程序控制器的編程語言PLC為用戶提供了完整的編程語言,以適應編制用戶程序的需要。PLC提供的編程語言通常有以下幾種:梯形圖、指令表、順序功能流程圖和功能塊圖。下面以S7-200系列PLC為例加以說明。PLC編程語言的國際標準

IEC61131-3標準的5種編程語言:(1)順序功能圖(SequentialFunctionChart);(SFC)(2)梯形圖(LadderDiagram);(LAD)(3)功能塊圖(FunctionBlockDiagram);(FBD)(4)指令表(InstructionList);(IL)(5)結構文本(StructuredText)。(ST)

1.梯形圖(LAD)

梯形圖(LAD)編程語言是從繼電器控制系統(tǒng)原理圖的基礎上演變而來的。PLC的梯形圖與繼電器控制系統(tǒng)的原理圖的基本思想是一致的,只是在使用符號和表達方式上有一定區(qū)別。圖3.1是一個典型的梯形圖。左右兩條垂直的線稱作母線。母線之間是觸點的邏輯連接和線圈的輸出。圖3.1典型的梯形圖結構:母線、觸點、線圈、盒;軟元件、能流繼電接觸器控制線路圖結構:電源線、觸點、線圈;實際的元件、有電流

梯形圖的一個關鍵概念是“能流”(PowerFlow),這僅是概念上的“能流”。把左邊的母線假想為電源“火線”,而把右邊的母線(虛線所示)假想為電源“零線”。如果有“能流”從左至右流向線圈,則線圈被激勵;如果沒有“能流”,則線圈未被激勵。

在梯形圖中,觸點代表邏輯“輸入”條件,如開關、按鈕、內部條件等;線圈通常代表邏輯“輸出”結果,為“輸出軟元件”。對S7-200系列PLC來說,還有一種輸出——“盒”(方塊圖),它代表附加的指令,如定時器、計數(shù)器和功能指令等。

圖3-2梯形圖與語句表 圖3-3功能塊圖“能流”(PowerFlow)只能從左向右流動。1個網絡(Network)中只能放1塊獨立電路。功能塊圖(FBD)類似于數(shù)字邏輯門電路。STEP7-Micro/WIN的IEC61131-3指令集只提供梯形圖、功能塊圖。地址前加“%”,其指令不區(qū)分數(shù)據類型。2.指令表(STL)

指令表(STL)編程語言類似于計算機中的助記符語言,它是可編程序控制器最基礎的編程語言。所謂指令表編程,是用一個或幾個容易記憶的字符來代表可編程序控制器的某種操作功能。一般來說,指令表編程適合于熟悉PLC和有經驗的程序員使用。圖2.2基本指令應用舉例(a)梯形圖;(b)指令表3.順序功能流程圖(SFC)

順序功能流程圖(SFC)編程是一種圖形化的編程方法,亦稱功能圖。使用它可以對具有并行、選擇等復雜結構的系統(tǒng)進行編程,許多PLC都提供了用于SFC編程的指令。

4.功能塊圖(FBD)

S7-200系列PLC專門提供了FBD編程語言,利用FBD可以查看到像普通邏輯門圖形的邏輯盒指令。它沒有梯形圖編程器中的觸點和線圈,但有與之等價的指令,這些指令是作為盒指令出現(xiàn)的。FBD編程語言有利于程序流的跟蹤,但在目前使用較少。圖2.3FBD簡單實例3.2.2可編程序控制器的程序結構

控制一個任務或過程,是通過在RUN方式下,使主機循環(huán)掃描并連續(xù)執(zhí)行用戶程序來實現(xiàn)的,用戶程序決定了一個控制系統(tǒng)的功能。廣義上的PLC程序由三部分構成:主程序、子程序、中斷程序。1.主程序:每次掃描都要執(zhí)行主程序。每個項目都必須有且只能有一個主程序(OB1)。2.子程序:簡化程序代碼、減少掃描時間、容易移植到別的項目(SBRN)??梢远啻握{用。圖2.4程序結構

用編程軟件在計算機上編程時,利用編程軟件的程序結構窗口雙擊主程序、子程序和中斷程序的圖標,即可進入各程序塊的編程窗口。編譯時編程軟件自動對各程序段進行連接。

S7-200PLC的主程序、子程序和中斷程序結束結束時,編程軟件會在程序編譯時自動加入相應的結束指令。主程序

存儲區(qū)子程序中斷子程序子程序子程序子程序子程序子程序:為了清晰地組織一個項目,可以根據功能進行結構化組織,即:一個項目分解為幾個子功能塊,每個子功能塊由一個或多個子程序組成。有利于分步調試,便于查找問題所在,且具有通用性。注意事項:1)可以在確定的時刻調用,可以嵌套調用,最多嵌套8個。2)S7-200CPU最多可調用64個

溫馨提示

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

評論

0/150

提交評論