基于Siemens-S7-FIFO功能的得實(shí)現(xiàn)_第1頁(yè)
基于Siemens-S7-FIFO功能的得實(shí)現(xiàn)_第2頁(yè)
基于Siemens-S7-FIFO功能的得實(shí)現(xiàn)_第3頁(yè)
基于Siemens-S7-FIFO功能的得實(shí)現(xiàn)_第4頁(yè)
基于Siemens-S7-FIFO功能的得實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩6頁(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)介

基于Siemens S7-300/400 PLC的FIFO功能實(shí)現(xiàn) 摘要:本文詳細(xì)介紹了基于西門子S7-300/400 PLC中的FIFO功能,并利用西門子S7系列PLC編程軟件Simatic STEP7開(kāi)發(fā)實(shí)現(xiàn)多字節(jié)的FIFO功能。Abstract:This paper introduces FIFO function based Siemens S7-300/400 PLC,and achieves several byte FIFO function by making use of Siemens PLC Programming software Simatic STEP7 development.關(guān)鍵詞 西門子 S7-300/400 PLC ;FIFO ;Simatic STEP7Keywords:Siemens S7-300/400 PLC ;FIFO ;Simatic STEP7主要內(nèi)容:1、 前言,提出為什么要介紹Siemens PLC中的FIFO功能2、 首先介紹Siemens 公司提供的專用功能塊,F(xiàn)C84與FC85,并分別舉例3、 說(shuō)明在設(shè)備間數(shù)據(jù)通訊,多余1個(gè)字節(jié)的數(shù)據(jù)需要同時(shí)進(jìn)行FIFO Buffer,然后在下一工序中彈出來(lái)。介紹多字節(jié)FIFO功能的實(shí)現(xiàn)4、 Siemens PLC編程開(kāi)發(fā)軟件Simatic STEP7的介紹,編程開(kāi)發(fā)同時(shí)20字節(jié)FIFO的程序,相關(guān)數(shù)據(jù)塊結(jié)構(gòu)的說(shuō)明,在程序中的調(diào)用FIFO功能塊。此外可以通過(guò)Simatic Simulation 進(jìn)行模擬確認(rèn)。5、 總結(jié)。 一、前言FIFO功能即First Input First Output先進(jìn)先出,在很多情況下要用到此功能。以前此技術(shù)主要在計(jì)算機(jī)高級(jí)語(yǔ)言開(kāi)發(fā)和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)中應(yīng)用,但隨著PLC技術(shù)的日益突飛猛進(jìn),需要通過(guò)PLC進(jìn)行數(shù)據(jù)傳送、緩存存儲(chǔ)的事件越來(lái)越多,尤其是在數(shù)據(jù)緩存過(guò)程中,對(duì)FIFO功能使用場(chǎng)合越來(lái)越多。西門子S7-300/400 PLC是德國(guó)西門子公司的中型、大型PLC,也是當(dāng)今世界上工控行業(yè)的主流產(chǎn)品。在Siemens S7系列PLC開(kāi)發(fā)軟件Simatic STEP7工具中,Siemens公司提供了兩個(gè)專用功能FC84 ATT和FC85 FIFO,通過(guò)這兩個(gè)FC功能完成對(duì)FIFO功能數(shù)據(jù)的寫(xiě)入和導(dǎo)出,但是每次只能允許一字,也就兩字節(jié)長(zhǎng)的數(shù)據(jù)。為了實(shí)現(xiàn)每次多字節(jié)的FIFO功能,需要用戶自己開(kāi)發(fā)相應(yīng)的功能塊FB來(lái)實(shí)現(xiàn),在本文中就介紹了實(shí)現(xiàn)每次20字節(jié)FIFO功能FB200功能塊的代碼,以及實(shí)際應(yīng)用舉例。二、Siemens FC84 ATT和FC85 FIFO功能的介紹1、 FC84 ATT1.1、 FC 84 ATT功能和構(gòu)成介紹FC 84 ATT是實(shí)現(xiàn)增加數(shù)據(jù)到FIFO功能的數(shù)據(jù)存儲(chǔ)區(qū)中,通過(guò)每次執(zhí)行此指令實(shí)現(xiàn)把一字的數(shù)據(jù)增加到FIFO功能數(shù)據(jù)存儲(chǔ)區(qū)中,F(xiàn)IFO功能存儲(chǔ)區(qū)中以字為單位,具體組成如下:l 存儲(chǔ)區(qū)表中第一字為FIFO存儲(chǔ)區(qū)允許的最大數(shù)據(jù)存儲(chǔ)個(gè)數(shù),即最多可以存儲(chǔ)多少個(gè)字的數(shù)據(jù)。l 存儲(chǔ)區(qū)表中第二字為FIFO存儲(chǔ)區(qū)當(dāng)前已經(jīng)存儲(chǔ)數(shù)據(jù)的個(gè)數(shù),即已經(jīng)存儲(chǔ)了多少個(gè)字的數(shù)據(jù)。l 存儲(chǔ)區(qū)表中從第三字開(kāi)始為FIFO存儲(chǔ)區(qū)實(shí)際存儲(chǔ)的數(shù)據(jù)。1.2、 FC 84 ATT功能參數(shù)說(shuō)明通過(guò)Simatic STEP7進(jìn)行程序開(kāi)發(fā)時(shí),調(diào)用FC84 ATT功能,出現(xiàn)如下圖: 從圖21中可以看到,F(xiàn)C84 ATT共有四個(gè)參數(shù),分別為EN、DATA、TABLE和ENO,在四門子資料中對(duì)其描述如下表2-1:參數(shù)聲明數(shù)據(jù)類型內(nèi)存區(qū)域功能描述EN輸入布爾I、Q、M、D、L使能激活信號(hào)ENO輸出布爾I、Q、M、D、L使能輸出DATA輸入WordI、Q、M、D、L、P靜態(tài)存儲(chǔ)區(qū)域要增加到FIFO的數(shù)據(jù)TABLE輸入指針I(yè)、Q、M、D、FIFO區(qū)域指針 表2-1 1.3、舉例說(shuō)明如果信號(hào)M100.0的狀態(tài)為1(即被激活),F(xiàn)C84 ATT功能被執(zhí)行。在下面的例子中,增加的數(shù)據(jù)寫(xiě)到FIFO表中的第五行,F(xiàn)IFO的容量也就是FIFO表中第二行由4變?yōu)?。如果FC84 ATT被執(zhí)行而且沒(méi)有錯(cuò)誤發(fā)生,那么使能輸出ENO置為1,具體如下:2、FC85 FIFO2.1 、FC 85 FIFO功能和構(gòu)成介紹FC85 FIFO是完成把FIFO表中的數(shù)據(jù)按照先進(jìn)先出原則,依次讀出,以供使用,與FC84 ATT配合使用,完成FIFO的寫(xiě)進(jìn)與讀出功能。通過(guò)每次執(zhí)行此指令實(shí)現(xiàn)把一個(gè)字的數(shù)據(jù)從FIFO功能數(shù)據(jù)存儲(chǔ)區(qū)中讀出,F(xiàn)IFO功能存儲(chǔ)區(qū)中以字為單位,具體組成如下:l 存儲(chǔ)區(qū)表中第一字為FIFO存儲(chǔ)區(qū)允許的最大數(shù)據(jù)存儲(chǔ)個(gè)數(shù),即最多可以存儲(chǔ)多少個(gè)字的數(shù)據(jù)。l 存儲(chǔ)區(qū)表中第二字為FIFO存儲(chǔ)區(qū)當(dāng)前已經(jīng)存儲(chǔ)數(shù)據(jù)的個(gè)數(shù),即已經(jīng)存儲(chǔ)了多少個(gè)字的數(shù)據(jù)。l 存儲(chǔ)區(qū)表中從第三字開(kāi)始為FIFO存儲(chǔ)區(qū)實(shí)際存儲(chǔ)的數(shù)據(jù),也是FIFO指針?biāo)赶虻臄?shù)據(jù)。2.2、FC 85 FIFO功能參數(shù)說(shuō)明通過(guò)Simatic STEP7進(jìn)行程序開(kāi)發(fā)時(shí),調(diào)用FC85 FIFO功能,出現(xiàn)如下圖: 圖2-2從圖21中可以看到,F(xiàn)C85FIFO共有四個(gè)參數(shù),分別為EN、ENO、TABLE和RET_VAL,在西門子資料中對(duì)其描述如下表2-2:參數(shù)聲明數(shù)據(jù)類型內(nèi)存區(qū)域功能描述EN輸入布爾I、Q、M、D、L使能激活信號(hào)ENO輸出布爾I、Q、M、D、L使能輸出TABLE輸入指針I(yè)、Q、M、D、FIFO區(qū)域指針RET_VAL輸出字I、Q、M、D、L、P讀出的數(shù)據(jù) 表2-22.3、舉例說(shuō)明如果信號(hào)M100.0的狀態(tài)為1(即被激活),F(xiàn)C85 FIFO功能被執(zhí)行。在下面的例子中,從FIFO存儲(chǔ)區(qū)域中讀出的數(shù)據(jù)寫(xiě)到RET_VAL指定的地址中,F(xiàn)IFO的容量也就是FIFO表中第二行由5變?yōu)?。同時(shí)整個(gè)FIFO中存儲(chǔ)的數(shù)據(jù)依次向上移動(dòng)一行。如果FC85 FIFO被執(zhí)行而且沒(méi)有錯(cuò)誤發(fā)生,那么使能輸出ENO被置為1。三、多字節(jié)FIFO功能的實(shí)現(xiàn)1、 從前面FC84 ATT和FC85 FIFO的說(shuō)明中可以看出,雖然Siemens提供了針對(duì)S7系列PLC的FIFO功能模塊,但是其只能每次寫(xiě)入或讀出一個(gè)字節(jié)的數(shù)據(jù),而實(shí)際上在很多情況下,每次均是一組數(shù)據(jù)需要運(yùn)用FIFO功能來(lái)暫時(shí)存儲(chǔ)起來(lái),那么在這種情形下就不能采用Siemens提供的標(biāo)準(zhǔn)功能FC84和FC85了,需要自己開(kāi)發(fā)一可以實(shí)現(xiàn)多字節(jié)讀出寫(xiě)入功能的FIFO指令。2、 Siemens Simatic STEP7介紹Siemens Simatic S7 300/400系列PLC是Siemens公司主推的中、大型產(chǎn)品,也是當(dāng)今世界上的主流產(chǎn)品。針對(duì)這兩個(gè)系列PLC開(kāi)發(fā)軟件工件為Simatic STEP7,此軟件有多個(gè)版本,目前已經(jīng)發(fā)展到V5.4,采用次軟件可以實(shí)現(xiàn)開(kāi)發(fā)、監(jiān)控等功能。3、 多字節(jié)FIFO的實(shí)現(xiàn)打開(kāi)Simatic STEP7軟件,新建一FB塊,如FB200 DB200,然后進(jìn)入FB100進(jìn)行編程,本文中以20字節(jié)為例,介紹如何開(kāi)發(fā)實(shí)現(xiàn)FIFO功能具體見(jiàn)如下畫(huà)面: 圖3-1源代碼如下:FUNCTION_BLOCK FB 100TITLE =/此功能塊用了完成20字節(jié)的FIFO功能AUTHOR : HylotusVERSION : 0.1KNOW_HOW_PROTECTVAR_INPUT SOURCE_DB : BLOCK_DB ; INPUT : BOOL ; OUTPUT : BOOL ; SIZE : INT ;END_VARVAR_OUTPUT DONE_IN : BOOL ; DONE_OUT : BOOL ; ERROR : BOOL ; FULL : BOOL ; EMPTY : BOOL ;END_VARVAR_IN_OUT LOCATION : INT ;END_VARVAR IN_START : BOOL ; IN_ACTIVE : BOOL ; OUT_START : BOOL ; OUT_ACTIVE : BOOL ; COUNT : INT ; RET_VAL1 : INT ;END_VARBEGINNETWORKTITLE = A #INPUT; AN #IN_ACTIVE; = #IN_START; A #INPUT; = #IN_ACTIVE; A #OUTPUT; AN #OUT_ACTIVE; = #OUT_START; A #OUTPUT; = #OUT_ACTIVE; AN #INPUT; AN #OUTPUT; JC END1; NETWORKTITLE =OUTPUT FIFO/20字節(jié)的數(shù)據(jù)從FIFO存儲(chǔ)區(qū)域中讀出 AN #OUTPUT; O #DONE_OUT; JC IN_1; AN #OUT_START; JC OP_1; OPN #SOURCE_DB; L DW#16#0; T DBD 40; T DBD 44; T DBD 48; T DBD 52; T DBD 56; T DBD 60; T DBD 64; T DBD 68; T DBD 72; T DBD 76; L #LOCATION; L 0; =I ; S #EMPTY; JC EROR; OPN #SOURCE_DB; CALL BLKMOV ( SRCBLK := P#DBX 80.0 BYTE 40, RET_VAL := #RET_VAL1, DSTBLK := P#DBX 40.0 BYTE 40); L #RET_VAL1; L 0; I ; JC EROR; L 0; T #COUNT; OP_1: L #LOCATION; L 0; =I ; JC EROR; L #LOCATION; L #COUNT; =I ; JC OP_3; L #COUNT; L 2; +I ; ITD ; L P#40.0; *D ; LAR1 ; OPN #SOURCE_DB; L DBD AR1,P#40.0; T DBD AR1,P#0.0; L DBD AR1,P#44.0; T DBD AR1,P#4.0; L DBD AR1,P#48.0; T DBD AR1,P#8.0; L DBD AR1,P#52.0; T DBD AR1,P#12.0; L DBD AR1,P#56.0; T DBD AR1,P#16.0; L DBD AR1,P#60.0; T DBD AR1,P#20.0; L DBD AR1,P#64.0; T DBD AR1,P#24.0; L DBD AR1,P#68.0; T DBD AR1,P#28.0; L DBD AR1,P#72.0; T DBD AR1,P#32.0; L DBD AR1,P#76.0; T DBD AR1,P#36.0; L #COUNT; L 1; +I ; T #COUNT; L #SIZE; L -1; +I ; L #COUNT; =I ; S #FULL; JC EROR; L #LOCATION; L 2; +I ; ITD ; L P#40.0; *D ; LAR1 ; OPN #SOURCE_DB; L DBD 0; T DBD AR1,P#0.0; L DBD 4; T DBD AR1,P#4.0; L DBD 8; T DBD AR1,P#8.0; L DBD 12; T DBD AR1,P#12.0; L DBD 16; T DBD AR1,P#16.0; L DBD 20; T DBD AR1,P#20.0; L DBD 24; T DBD AR1,P#24.0; L DBD 28; T DBD AR1,P#28.0; L DBD 32; T DBD AR1,P#32.0; L DBD 36; T DBD AR1,P#36.0; L #LOCATION; L 1; +I ; T #LOCATION; SET ; S #DONE_IN; JU END2; NETWORKTITLE =EROR: SET ; = #ERROR; JU END2; END1: CLR ; = #DONE_IN; = #DONE_OUT; = #ERROR; = #EMPTY; = #FULL; END2: NOP 0; END_FUNCTION_BLOCK4、 在程序中的調(diào)用上面已經(jīng)完成了FB100 FIFO功能塊的編程開(kāi)發(fā),下面就是直接調(diào)用,設(shè)置相關(guān)參數(shù)就可以使用此功能了,舉例如下:新建FIFO數(shù)據(jù)源數(shù)據(jù)庫(kù)DB200,結(jié)構(gòu)為AddressNameTypeInitial valueComment0.0STRUCT+0.0IN_BufferSTRUCT+0.0Status_WordINT0+2.0Data1INT0+4.0Data2INT0+6.0Data3INT0+8.0Data4INT0+10.0Data5INT0+12.0Data6INT0+14.0Data7INT0+16.0Data8INT0+18.0Data9INT0=20.0END_STRUCT0+0.0Status_WordINT+2.0Data1INT+4.0Data2INT+6.0Data3INT+8.0Data4INT+10.0Data5INT+12.0Data6INT+14.0Data7INT+16.0Data8INT+18.0Data9INT=20.0END_STRUCT+40DataArray0.20*0.0STRUCT+0.0Status_WordI

溫馨提示

  • 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)論