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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論