西門子PLC以太網(wǎng)開放式用戶通信連載(2)-TRCV
上一篇文章我們介紹了西門子基于以太網(wǎng)的開放式用戶通信中用來(lái)建立連接的指令:TCON。今天這篇文章,我們來(lái)介紹用于TCP協(xié)議的數(shù)據(jù)接收指令:TRCV。

TRCV指令用來(lái)完成對(duì)TCP、ISO-ON-TCP協(xié)議的數(shù)據(jù)接收(不支持UDP協(xié)議),當(dāng)接收到有效數(shù)據(jù)時(shí),NDR參數(shù)會(huì)被置1,RCVD_LEN的值表示實(shí)際接收到的數(shù)據(jù)的長(zhǎng)度(字節(jié)為單位)。
下面我們?cè)诓┩荆≒ortal)平臺(tái)下來(lái)看看TRCV指令的具體用法:
首先在指令列表框中找到TRCV指令,如下圖:

將其拖拽到程序塊中,系統(tǒng)會(huì)自動(dòng)添加該指令的背景數(shù)據(jù)塊(與之前的TCON指令類似),如下圖:

我們選擇使用默認(rèn)的名稱:TRCV_DB,獨(dú)立背景數(shù)據(jù)塊(Single instance DB)。點(diǎn)擊【OK】確認(rèn),系統(tǒng)會(huì)在【系統(tǒng)塊(system block)】-【程序資源(Program resources)】中添加該數(shù)據(jù)塊。
程序塊中新建的TRCV指令如下圖:

下面來(lái)介紹下該指令各參數(shù)的含義:
-
EN_R:接收使能,該參數(shù)為1時(shí)才能接收數(shù)據(jù);
-
ID:連接ID,之前調(diào)用TCON指令所成功建立連接的ID;
-
LEN:接收緩存區(qū)的長(zhǎng)度,以字節(jié)為單位;
-
ADHOC:是否開啟ad-hoc模式,默認(rèn)(FLASE)不開啟;
-
DATA:指向接收數(shù)據(jù)的指針;
-
NDR:New Data Received,1=接收到新數(shù)據(jù),0=沒有接收到新數(shù)據(jù);
-
BUSY:1=正在接收數(shù)據(jù),0=未開始接收數(shù)據(jù)或已經(jīng)接收完成;
-
ERROR:接收過程中是否有錯(cuò)誤發(fā)生。0=沒有錯(cuò)誤,1=有錯(cuò)誤;
-
STATUS:接收過程的狀態(tài)值;
-
RCVD_LEN:實(shí)際接收的數(shù)據(jù)長(zhǎng)度,字節(jié)為單位;
關(guān)于ad-hoc模式的數(shù)據(jù)接收:
-
ad-hoc模式可以用來(lái)接收長(zhǎng)度不確定的數(shù)據(jù)。在TCP協(xié)議下,可以開啟ad-hoc模式,其方法是將LEN參數(shù)設(shè)置為0并且將ADHOC參數(shù)設(shè)置為TRUE;對(duì)于標(biāo)準(zhǔn)訪問的數(shù)據(jù)塊,ad-hoc支持所有的數(shù)據(jù)類型;對(duì)于經(jīng)過訪問優(yōu)化的數(shù)據(jù)塊,ad-hoc模式支持以數(shù)組(ARRAY)、字節(jié)(BYTE)或者其它8位(bits)的數(shù)據(jù)方式進(jìn)行訪問。
-
當(dāng)接收數(shù)據(jù)的長(zhǎng)度已確定時(shí),將LEN參數(shù)設(shè)置為要接收的數(shù)據(jù)的長(zhǎng)度(比如:100字節(jié)),將ADHOC參數(shù)設(shè)置為“False”。這種情況下,只有當(dāng)接收到的數(shù)據(jù)長(zhǎng)度等于LEN設(shè)置的長(zhǎng)度時(shí),數(shù)據(jù)才會(huì)有效。當(dāng)數(shù)據(jù)接收完成并且有效時(shí),NDR(New Data Received)會(huì)被置1。
數(shù)據(jù)接收過程中,如果發(fā)生錯(cuò)誤,ERROR會(huì)被置1;相關(guān)的狀態(tài)會(huì)被記錄在狀態(tài)值STATUS參數(shù)中。關(guān)于STATUS的詳細(xì)描述,請(qǐng)看下面這張表格:

設(shè)置好參數(shù)的TRCV指令如下圖:

好了,關(guān)于西門子基于以太網(wǎng)的開放式用戶通信用于TCP(ISO-ON-TCP)協(xié)議的數(shù)據(jù)接收指令—TRCV就先介紹到這里
-
Origin(Pro):學(xué)習(xí)版的窗口限制【數(shù)據(jù)繪圖】 2020-08-07
-
如何卸載Aspen Plus并再重新安裝,這篇文章告訴你! 2020-05-29
-
CAD視口的邊框線看不到也選不中是怎么回事,怎么解決? 2020-06-04
-
教程 | Origin從DSC計(jì)算焓和比熱容 2020-08-31
-
CAD外部參照無(wú)法綁定怎么辦? 2020-06-03
-
CAD中如何將布局連帶視口中的內(nèi)容復(fù)制到另一張圖中? 2020-07-03
