在S7-200中如何建立一個功能塊_第1頁
在S7-200中如何建立一個功能塊_第2頁
在S7-200中如何建立一個功能塊_第3頁
在S7-200中如何建立一個功能塊_第4頁
在S7-200中如何建立一個功能塊_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、在S7-200中如何建立一個功能塊一、基本數(shù)據(jù)類型Bool位1/0BYTE字節(jié)8WORD字16DWORD雙字32INT整數(shù)16DINT雙整數(shù)32最高位為符號位0-整數(shù);1-小數(shù),后面15個位表示數(shù)據(jù)大小Real實數(shù)32單精度浮點64雙精度浮點Char字符8如:單個字母String字符串如:單詞字符:8位,等于一個字節(jié)字符串:存儲=字符個數(shù)+1字節(jié) 如smart :5個字符+1個字節(jié)=6個字節(jié),這1個字節(jié)表示第一個地址,是存儲個數(shù)。比如把smart存儲到VB100中 第一個地址:是存儲個數(shù) VB100=5,因為有5個字符 第二個地址:VB101存儲s 第三個地址:VB102存儲m 第四個地址:V

2、B103存儲a 第五個地址:VB104存儲r 第六個地址:VB105存儲t二、功能塊指令的作用在編寫程序過程中有寫控制要求或是一些運算會重復執(zhí)行的,對于這些會重復執(zhí)行的程序,為了提高編程的效率,往往會把一些會重復執(zhí)行的功能編寫成一個功能塊。或者把一些應用到比較典型的做成一個指令。二、功能塊指令建立方法在S7-200系列PL的程序結(jié)構(gòu)中,分為主程序、子程序、中斷程序。子程序分為帶參數(shù)的子程序和不帶參數(shù)的子程序,功能即為一個帶參數(shù)的子程序。三、功能塊指令的建立需要建立一個帶參數(shù)的子程序,那么需要在子程序的變量表中(或接口區(qū))中定義好相應的變量,然后在子程序的編程中,使用在變量表中定義的變量去編寫程

3、序,子程序上面就有相應的接口區(qū)。數(shù)據(jù)類型:對應地址,選好數(shù)據(jù)類型系統(tǒng)自動分配地址:如果選BYTE系統(tǒng)自動尋址LBX;如果選WORD系統(tǒng)自動尋址LWX。所以地址的分配不用管系統(tǒng)自動分配,是由數(shù)據(jù)類型決定的。四、變量類型說明變量的類型在使用過程中是不一樣的,比如說子程序做好了以后有的位于子程序左側(cè),有的位于子程序右側(cè),有的在上面沒有管腳。這跟習慣有關(guān),左進右出。 變量類型(IN):輸入?yún)?shù)為可讀變量,將調(diào)用它的POU提供的數(shù)據(jù)值傳入子程序,可以使用常數(shù),直接尋址間接尋址的方傳入到子程序。在生成子程序塊是位于左側(cè)。這跟習慣有關(guān),左進右出可讀:以PLC為例,可讀的點是輸入點,因為是從外邊獲取的信息、數(shù)

4、據(jù)過來的,輸入點大部分是常開常閉。將調(diào)用它的POU提供的數(shù)據(jù)值傳入子程序:它指子程序;POU指主程序。也就是說主程序通過輸入的方式傳遞給子程序直接尋址:比如VW100間接尋址:&VB100 變量類型(IN_OUT):可讀可寫的變量,其初始值由調(diào)用它的POU傳送給子程序,并用同一參數(shù)將子程序的執(zhí)行結(jié)果返回給調(diào)用它的POU,因此常數(shù)和指針不能用于輸入。是以IN為主,所以位于程序塊左邊。以程序為例:A):上圖中,啟動I0.0、停止I0.1是可讀IN的變量 輸出Q0.0是可讀(自鎖)可寫(線圈)IN _ OUT變量 輸出1Q0.1在整個程序中只用了寫的功能OUT變量B):這是自加一指令,將VB

5、0讀出再寫入VB0也是IN_ OUT變量C):A值、B值是輸入,所以是IN; IN_OUT與TEMP區(qū)別: IN_OUT可讀可寫在外圍會有一個管腳,從外圍先把初始值寫進運算; TEMP是內(nèi)部運算以后存儲數(shù)據(jù)的結(jié)果的暫存,不會有輸出,調(diào)用完子程序數(shù)據(jù)就放棄了。所以C值是TEMP,是暫存一次A+B的一個中間結(jié)果而已,沒有任何需要從外圍給數(shù)據(jù)進去,或者說運算完結(jié)果給出去。D):如果把IN_OUT變量建成OUT變量會出現(xiàn)什么結(jié)果?會執(zhí)行程序出錯。舉例說明:a、 子程序:將輸出建成OUT變量b、主程序再調(diào)用一次主程序,因為帶參數(shù)的子程序就是可以重復調(diào)用。只是說外圍給不同的實參。b、說明:在主程序中,I0

6、.0 I0.1 I0.2 I0.3就叫做實參。按下啟動I0.0,則Q0.0=1,這時Q0.1也會=1,因為從PLC執(zhí)行的角度看,執(zhí)行第一個主程序調(diào)用子程序輸出=1,執(zhí)行第二個主程序調(diào)用子程序時(在第一個執(zhí)行主程序調(diào)用主程序時輸出變量=1),沒有更改輸出結(jié)果-在子程序中LD0.0 LD0.2構(gòu)成邏輯或運算,LD0.0與LD0.2或運算結(jié)果=1,再與停止LD0.1做與運算從而輸出結(jié)果=1。所以輸出結(jié)果Q0.1也等于1。因此,輸出變量應為IN_OUT變量正確程序子程序主程序輸出在左邊。IN_OUT是先讀取再輸出,輸出Q0.0讀的是Q0.0的值,輸出Q0.1讀的是Q0.1的值。 輸出參數(shù)變類型(OUT

7、):輸出參數(shù)為可寫的變量,用于將子程序的執(zhí)行結(jié)果返回給調(diào)用它的POU,輸出參數(shù),必須在每次調(diào)用結(jié)束前給其一個確定的值。 在生成子程序塊是位于右側(cè)。變量類型(TEMP):臨時變量時暫時保持在局部數(shù)據(jù)區(qū)的變量,只有在執(zhí)行某個POU時,它的臨時變量才被使用。臨時變量使用公共的存儲區(qū)。因此在每次調(diào)用時,首先應初始化臨時變量,然后再使用臨時變量TEMP沒有管腳。五、建立一個功能塊編寫一個功能塊程序,用于計算一個存儲器中為1的個數(shù)有多少個?(相當于三菱里SUM指令)分析:如何計算一個存儲器中為1的個數(shù)有多少個如果VB0=10101100如何計算,用移位指令,移一次位就會有一個數(shù)據(jù)移出來,判斷移出來這個位等

8、于0還是等于1,“1”滿足一次加一次,VB0移完以后會加4次。在西門子PLC中不僅有字節(jié)的表示還有字、雙字表示。字移16次,雙字-移32次,所以說要建立一個功能塊要滿足字節(jié)、字、雙字三種存儲器的用法。字節(jié)、字、雙字要移位的數(shù)據(jù)應該建一個IN變量,因為要把數(shù)據(jù)傳送過去就是IN變量,IN變量可以是常數(shù)、可以是直接尋址也可以說是間接尋址,不同的地址字節(jié)、字、雙字用間接尋址要好一點。 建立一個功能塊 開始計算的條件,滿足一次執(zhí)行一次是BOOL變量 參與計算的數(shù),建了一個指針,指針的存儲空間是32位所以是DWORD,換句話說外部輸入用&VB0或VBx 建一個數(shù)據(jù)的類型,要確定一下數(shù)據(jù)類型 會有一

9、個管腳來確認上面指針的類型BYTE=1表示字節(jié) WORD=2表示字 DWORD=3表示雙字。 結(jié)果,建了一個IN_OUT變量,由于后面要做一個運算INC累加為1的次數(shù) 臨時變量,先不建用的時候再建。子程序跳轉(zhuǎn)-等于1時跳到標簽1執(zhí)行跳轉(zhuǎn)-等于2時跳到標簽2執(zhí)行跳轉(zhuǎn)-等于3時跳到標簽3執(zhí)行都不等于時返回(跳轉(zhuǎn)到)標簽1啟動條件 把指針數(shù)據(jù)前面加一個*表示:如果把數(shù)據(jù)&VB0給入到LD1里去,在LD1前加一個*表示地址就是VB0.把VB0數(shù)據(jù)轉(zhuǎn)存到臨時變量LB10里去 對結(jié)果進行清零:下次給數(shù)再重新運算FOR循環(huán):循環(huán)的目的是移位,因為一個字節(jié)是8位,所以移位次數(shù)=8臨時變量#temp1:

10、LW8暫存當前執(zhí)行的次數(shù),從1開始到8,移8位。SHL _B移位指令左移,用右移也可以。對臨時變量#temp2:LB10移位,每次移1位。移出的位有一個移出標志SM1.1進行判斷,SM1.1是可讀的。也就是說當移出的位是1的情況下SM1.1=1;如果移出的位等于0 SM1.1=0INC_W;當SM1.1=1是記錄一次,結(jié)果放入LW6。所以LW6建的時候就是IN_OUT變量移完以后后面的程序不會執(zhí)行,因為后面的程序不是字節(jié)。-返回等于2時跳到標簽2執(zhí)行把*LD1挪出來,因為是字(16位)所以指令都是16位的指令把數(shù)據(jù)&VB0給入到LD1里去,在LD1前加一個*表示起始地址就是VB0,因為是16位指令,也就是VW0了臨時變量#tempLW11是一個字的存儲空間了,循環(huán)16次了把*LD1挪出來,因為是字(32位)所以指令都是32

溫馨提示

  • 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

提交評論