国产aaaa级全身裸体精油片_337p人体粉嫩久久久红粉影视_一区中文字幕在线观看_国产亚洲精品一区二区_欧美裸体男粗大1609_午夜亚洲激情电影av_黄色小说入口_日本精品久久久久中文字幕_少妇思春三a级_亚洲视频自拍偷拍

首頁 > 技術(shù)發(fā)展 > 西門子PLC以太網(wǎng)開放式用戶通信連載(5)-TUSEND

西門子PLC以太網(wǎng)開放式用戶通信連載(5)-TUSEND

時(shí)間:2020-06-28 來源:方正智芯 瀏覽:

前面的文章我們介紹了西門子開放式用戶通信(Open User Communication)中用于建立連接的指令-TCON;用于TCP、ISO-ON-TCP協(xié)議的數(shù)據(jù)接收指令-TRCV;用于UDP協(xié)議的數(shù)據(jù)接收指令-TURCV;用于TCP、ISO-ON-TCP的數(shù)據(jù)發(fā)送指令-TSEND。今天這篇文章,我們來介紹下用于UDP協(xié)議的數(shù)據(jù)發(fā)送指令:TUSEND。

TUSEND指令基于UDP(RFC768)協(xié)議來發(fā)送數(shù)據(jù),這是一種沒有應(yīng)答機(jī)制的通信協(xié)議。也就是說,發(fā)送方并不關(guān)心發(fā)送的數(shù)據(jù)是否已經(jīng)被成功接收,接收方也不提供任何反饋。UDP協(xié)議的優(yōu)勢(shì)在于可以快速的發(fā)送大量的數(shù)據(jù),但是由于沒有應(yīng)答機(jī)制,可能會(huì)出現(xiàn)數(shù)據(jù)丟失的現(xiàn)象。更多信息可以參考這篇文章:UDP協(xié)議通信需要建立連接嗎?

下面我們來介紹TUSEND指令的使用方法。

首先在指令列表中找到TUSEND,如下圖:

將TUSEND指令拖拽到程序塊中,系統(tǒng)會(huì)自動(dòng)提示為其添加背景數(shù)據(jù)塊??梢赃x擇獨(dú)立背景數(shù)據(jù)塊(Single Instance DB)或者多重背景數(shù)據(jù)塊(Multi Instance DB),如下圖:

本例程我們選擇獨(dú)立背景數(shù)據(jù)塊,并使用默認(rèn)的名稱:TUSEND_DB。點(diǎn)擊【OK】確認(rèn),TUSEND指令便被添加到程序塊中,如下圖:

各參數(shù)的含義如下:

  • REQ:請(qǐng)求發(fā)送數(shù)據(jù),需要信號(hào)的上升沿(Rising Edge);

  • ID:使用TCON指令建立的通信ID號(hào);

  • LEN:發(fā)送數(shù)據(jù)的長(zhǎng)度,以字節(jié)為單位,范圍為1~1472;

  • DATA:指向發(fā)送數(shù)據(jù)區(qū)域的指針??梢允菙?shù)據(jù)輸入/輸出緩存區(qū)、位存儲(chǔ)區(qū)或者數(shù)據(jù)塊;

  • ADDR:指向TADDR_Param數(shù)據(jù)塊的指針。數(shù)據(jù)類型為TADDR_Param的數(shù)據(jù)塊,包含了通信伙伴的IP地址及端口號(hào)等信息;

  • DONE:數(shù)據(jù)是否已經(jīng)發(fā)送完成,1=發(fā)送完成;

  • BUSY:是否正在發(fā)送數(shù)據(jù),1=正在發(fā)送數(shù)據(jù);

  • ERROR:發(fā)送過程是否有錯(cuò)誤,0=沒有錯(cuò)誤,1=有錯(cuò)誤;

  • STATUS:發(fā)送數(shù)據(jù)的狀態(tài)字,如果ERROR為1,會(huì)將相應(yīng)的錯(cuò)誤代碼寫到STATUS中;

TADDR_Param參數(shù)保存了通信伙伴的IP地址和端口號(hào)。當(dāng)連續(xù)對(duì)多個(gè)不同的通信伙伴(不同IP或端口)發(fā)送UDP數(shù)據(jù)時(shí),僅需調(diào)整TADDR_Param參數(shù),而不需要重新調(diào)用TCON指令和TDISCON指令來建立或斷開連接。

這里,重點(diǎn)介紹下TADDR_Param參數(shù)。

新建一個(gè)DB塊,名稱為“DB_TADDR_Param_Send”,將其類型設(shè)置為“TADDR_Param”,如下圖:

點(diǎn)擊【OK】確認(rèn)。打開新建的數(shù)據(jù)塊可以看到其中包含了遠(yuǎn)程通信伙伴的IP地址(REM_IP_ADDR)和端口號(hào)(REM_PORT_NR),如下圖:

通過對(duì)該DB塊內(nèi)容的修改,就可以更改TUSEND的通信伙伴的參數(shù),達(dá)到向多個(gè)通信伙伴發(fā)送數(shù)據(jù)的目的。

完整的TUSEND指令如下圖:

好了,關(guān)于基于UDP協(xié)議的數(shù)據(jù)發(fā)送指令TUSEND就先介紹到這里。

版權(quán):如無特殊注明,文章轉(zhuǎn)載自網(wǎng)絡(luò),侵權(quán)請(qǐng)聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習(xí)使用,務(wù)必24小時(shí)內(nèi)刪除。
相關(guān)推薦