TCP協(xié)議的數(shù)據(jù)交換_第1頁
TCP協(xié)議的數(shù)據(jù)交換_第2頁
TCP協(xié)議的數(shù)據(jù)交換_第3頁
TCP協(xié)議的數(shù)據(jù)交換_第4頁
TCP協(xié)議的數(shù)據(jù)交換_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、如何編程通信塊FB63TSEND,FB64TRCV,FB65TCON和FB66TDISCON以實現(xiàn)用S7-300或S7-400CPU的PROFINET口進(jìn)行基于TCP協(xié)議的數(shù)據(jù)交換?描述:集成PROFINET口的CPU和WinACRTX,支持開放式IE通信。關(guān)于集成PROFINET口的CPU和WinACRTX所支持的通信服務(wù)總覽,請參見條目18909487。此總覽包含有關(guān)集成PROFINET口的CPU和WinACRTX所支持的開放式IE通信協(xié)議的信息。下列通信塊可以用于基于TCP協(xié)議的開放式通信:FB65TCON用于建立連接FB66TDISCON用于中止連接FB63TSEND用于發(fā)送數(shù)據(jù)FB6

2、4TRCV用于接收數(shù)據(jù)這些通信塊可以在StandardLibrary-CommunicationBlocks下找到。從標(biāo)準(zhǔn)庫中拷貝最新版本的上述通訊塊到用戶程序中,然后再編寫程序中調(diào)用它們。建立TCP連接的連接參數(shù)保存在一個數(shù)據(jù)結(jié)構(gòu)中。本例中,用到UDT65TCON_PAR這個數(shù)據(jù)結(jié)構(gòu),保存在DB1中并由用戶參數(shù)化。注意是OpenCommunicationWizard以簡化連接創(chuàng)建。在條目號98957840.中下載該TCP鏈接不在NetPro中組態(tài)。表01OUCW_2數(shù)據(jù)結(jié)構(gòu)保存的連接參數(shù)字節(jié)參數(shù)數(shù)據(jù)類型描述0to1block_lengthWORDOUCW2數(shù)據(jù)結(jié)構(gòu)長度2to3idBYTE連接

3、標(biāo)識值范圍:w#16#0001至w#16#0FFF必須在相關(guān)塊ID中指定該參數(shù)。4connection_typeBYTETCP協(xié)議版本:B#16#115active_estBOOLEAN建立連接標(biāo)識FALSE:被動建立連接TRUE:主動建立連接6local_device_idBYTE通過CPU315-2PN/DP集成PN接口通信:B#16#027local_tsap_id_lenBYTElocal_tsap_id長度connection_type=B#16#11時可行值:0或2(主動端:0或2,被動端:2)8rem_subnet_id_lenBYTE當(dāng)前不可用,參數(shù)值B#16#009rem_s

4、taddr_lenBYTE遠(yuǎn)程連接端點地址長度0:未指定,參數(shù)rem_staddr不相關(guān)4:rem_staddr中有效的IP地址10rem_tsap_id_lenBYTErem_tsap_idparameter參數(shù)connection_type=B#16#11時的可行值:0或211next_staddrBYTEnext_staddr長度12to27local_tsap_idARRAY1.16ofBYTE本地端口號:2000,例如local_tsap_id1=B#16#7(十六進(jìn)制端口號高字節(jié))local_tsap_id2=B#16#D0(十六進(jìn)制端口號低字節(jié))local_tsap_id3-16

5、=B#16#0028to33rem_subnet_idARRAY1.6ofBYTE當(dāng)前不可用,參數(shù)值B#16#0034to39rem_staddrARRAY1.6ofBYTE遠(yuǎn)程連接端點IP地址:192.168.0.30rem_staddr1=B#16#C0rem_staddr2=B#16#A8rem_staddr3=B#16#00rem_staddr4=B#16#1Eremstaddr5-6=B#00(保留)40to55rem_tsapidARRAY1.16ofBYTE遠(yuǎn)程連接端點端口號:2000,例如local_tsap_id1=B#16#7(十六進(jìn)制端口號咼字節(jié))local_tsap_i

6、d2=B#16#D0(十六進(jìn)制端口號低字節(jié))local_tsap_id3-16=B#16#0056to61next_staddrARRAY1.6ofBYTEnext_staddrl-6=B#16#0062-63spareWORD保留,值W#16#0000.表01例程描述:S7程序中包含了對FB65TCON的調(diào)用和帶有建立TCP連接的連接參數(shù)數(shù)據(jù)結(jié)構(gòu)0UCW_2創(chuàng)建的DB1。也包含了來自于StandardLibrary-CommunicationBlocks下的FB63TSEND和FB64TRCV的調(diào)用。FB63TSEND用于發(fā)送數(shù)據(jù)到S7站或S5站,以及到PC站或到第三方系統(tǒng).FB64TRCV

7、用于接收來自其他S7站,S5站,PC站和第三方系統(tǒng)的數(shù)據(jù)。首先為S7-300站創(chuàng)建硬件組態(tài)。注意配置MB100作為時鐘存儲器。發(fā)送請求由該時鐘存儲器觸發(fā)。保存編譯S7-300站的硬件組態(tài),下載到CPU。STEP7程序由OB100,OB1,F(xiàn)B1,DB11,DB1,DB100,DB200,F(xiàn)B63,F(xiàn)B64,F(xiàn)B65和FB66。OB100:OB100是重啟OB塊,當(dāng)CPU重新啟動時(暖啟動)執(zhí)行一次.在OB100中,第一次通信由M0.3觸發(fā)。OB1:OB1循環(huán)調(diào)用。FB1在OB1中被調(diào)用(背景數(shù)據(jù)塊:DB11),M0.3作為INIT_COM參數(shù),M10.0作為ABORT參數(shù)。在0B1中調(diào)用FBI

8、結(jié)束后,復(fù)位M0.3。ConmientR031:rrMainProgramSweep(Cycle日Network2:j.七丄已:日Network1:Title:M10.0rrStar七jgMO.3nStartupriStartjprr圖.01FBIENINI?20MABORTENODB11FB1:在OB1中調(diào)用FB1。該FB1中調(diào)用以下功能塊FB65TCONFB63TSEND,FB64TRCVFB66TDISCON定義連接ID你可以隨意修改連接ID。修改FBInetwork2中的連接ID和你的組態(tài)保持致。連接ID保存在DB11的靜態(tài)變量中。本例中定義連接ID為2。MO.ln7RUEnMOVE#

9、ID-#IDENOUTW#l#2INENO圖.02連接建立通過FB65TCON的輸入?yún)?shù)REQ的上升沿觸發(fā)來建立連接。數(shù)據(jù)塊DB11的背景數(shù)據(jù)塊中集成了帶有連接參數(shù)的數(shù)據(jù)結(jié)構(gòu)OUCW_2。FB65TCON的輸入?yún)?shù)CONNECT需要指定一個含有連接參數(shù)的存儲區(qū)。在系統(tǒng)啟動時連接建立并保持,直到調(diào)用FB66TDISCON來斷開連接,或讓CPU進(jìn)入停止模式或關(guān)閉電源來斷開連接。#CQN_ERRC(R-#CONERROR#C0N_Bn5Y-#CONBUSY#CQN_5TATUS#CONFB65CoriiiEct,r7C0NENDONEfCCBfflfDNICATIOHSTARTBUSY#COMMUN

10、ICA7IONSTART-QREQERROR#ID#工1)IDP#DB1.DHKO.0STATUSDB1.OUCW2CONNECTENO一#CONDONE圖.03在FB63TSEND的輸入?yún)?shù)REQ上施加上升沿以觸發(fā)發(fā)送請求。發(fā)送任務(wù)的觸發(fā)是由時鐘標(biāo)志M100.6和變量SEND_BUSY來控制的。如果發(fā)送任務(wù)運行,C1.SEND_BUSY則被置位,無法再觸發(fā)新的發(fā)送請求??梢詾檩斎?yún)?shù)DATA指定包含要發(fā)送數(shù)據(jù)的存儲區(qū)。并在輸入?yún)?shù)LEN填寫要發(fā)送的字節(jié)數(shù)。本例中發(fā)送數(shù)據(jù)保存在DB100中,向通信伙伴發(fā)送100個字節(jié)。輸出參數(shù)DONE,ERROR和STATUS用于任務(wù)評價。#CDMMDNICA

11、TTO(N_STfiRT#COMMUNICA7IONSTART#SENDEQ#SENDREQ#ID#ID100P4DB100.DBXO.OvorLajfigePlatzhaltervariahleFEUDDATA.SENDDATAD33#SENEBUSY-#SENDBUSY#SEND_STATUS#SEKD_-STATUS#SEND_EREJOR#SEND_-ERRORtSENDJDON-#SENDDONE圖.04如果發(fā)送任務(wù)成功完成,SEND_BUSY被復(fù)位。這時新的發(fā)送任務(wù)才可以被觸發(fā)。如果發(fā)送任務(wù)執(zhí)行出錯,那么SEND_BUSY變量同樣被復(fù)位,F(xiàn)B63的輸出參數(shù)STATUS的值被保存用于

12、錯誤分析。圖.05MOVEENOUTINENOfSEND_EEBJO#SEND_ERROR#SENDSTATUS#SEND_STATUS#SENp_STATUS_SBVE#SEND_STATUS_-SAVE圖.06一旦TCP連接建立了,就能接收數(shù)據(jù)。用輸入?yún)?shù)DATA指定保存接收數(shù)據(jù)的存儲的地址和長度本例中接受100個字節(jié)并保存在DB200中。D34FB6ReceiveData4CCMMUNICATIO(N_STfiRT#COMMUNICATIONSTARTM0.1TRUE#ID#ID100P#DB200.DBXO.OvorlaufigePlatzhalt已rvariabLeEHEHIDLEN

13、DATA.RECVDATADATANDRBUSYERRORSTATUSRCVD_LENENORCVNER#RCV_JJDR#RCVBDSY#RCVBUSY#RCV_ERRORfRCVSTAin#RCV_STATUS#RCVRLEN#RCV_JtLEN圖.07輸出參數(shù)NDR用于表示已接收到新數(shù)據(jù)。輸出參數(shù)RCVD_LEN表明接收數(shù)據(jù)的長度,如果數(shù)據(jù)接收成功,保存參數(shù)RCVD_LEN。圖.08如果數(shù)據(jù)未被成功接收,那么輸出參數(shù)STATUS可以保存下來并用于評估狀態(tài)。#RCVEERC(R#RCV_ERROR#BCVSTATU#RCV_STATUSfRCVSTATUs_savE#RCV_STATUS_

14、SAVE圖.09可以通過FB66TDISCON有目的地結(jié)束TCP連接。在FB66TDISCON的輸入?yún)?shù)REQ上施加上升沿以請求結(jié)束TCP連接。DBCCFB66Di5connectnTDISCONrrDONEENBUSYREGERRORIDSTATUSENOabortreq#C0MMUNI2ATIONSTART圖.10注意:示例程序中TCP協(xié)議用來數(shù)據(jù)傳輸,需在數(shù)據(jù)結(jié)構(gòu)OUCW_2中設(shè)定參數(shù)connection_type為B#16#11。S7-300CPUsV2.3支持TCP(兼容模式)。如在S7-300CPUV2.3中運行示例程序,需在數(shù)據(jù)結(jié)構(gòu)OUCW_2中設(shè)定參數(shù)connection_type為B#16#01。STEP7項目下載示例的STEP7項目包含了調(diào)用FBI和FB65TCON、FB66TDISCON、FB63TSEND和FB64TRECV以及狀態(tài)評估。該程序由STEP7V5.5創(chuàng)建。卯pSample_ope

溫馨提示

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

評論

0/150

提交評論