西門子PLC以太網(wǎng)開放式用戶通信連載(3)-TURCV
前面的文章我們介紹了西門子PLC開放式用戶通信(open user communication)中用于TCP協(xié)議的數(shù)據(jù)接收指令—TRCV,今天這篇文章,我們來介紹下用于UDP協(xié)議的數(shù)據(jù)接收指令—TURCV。

TURCV指令用來接收基于UDP協(xié)議的數(shù)據(jù)。在使用TURCV之前,也同樣需要調(diào)用TCON指令來建立“連接”。當(dāng)然,對于UDP協(xié)議,這個“連接”并非通信伙伴之間的真實連接,而更多的是用戶程序?qū)τ谕ㄐ艆?shù)的一種配置(比如,通信伙伴的IP和端口等,可以參考文章:UDP協(xié)議通信需要建立連接嗎?)。當(dāng)數(shù)據(jù)接收成功后,在參數(shù)ADDR中可以看到通信伙伴(發(fā)送方)的IP地址、端口號等信息。
下面我們來介紹如何在博途(Portal)環(huán)境中使用TURCV指令。
首先在指令列表中找到TURCV指令,如下圖:

將其拖拽到程序塊中,系統(tǒng)會自動生成一個背景數(shù)據(jù)塊(Instance DB),如下圖:

這些步驟跟之前的TRCV指令是類似的,詳細信息可以參考:西門子PLC以太網(wǎng)開放式用戶通信連載(2)-TRCV
在程序塊中新添加的TURCV指令如下圖:

TURCV各參數(shù)的含義如下:
-
EN_R:使能接收。當(dāng)EN_R的值為1時,TURCV可以接收數(shù)據(jù);
-
ID:調(diào)用TCON時分配的通信連接ID;
-
LEN:接收數(shù)據(jù)的長度,范圍0~1472個字節(jié);
-
DATA:用來指向接收緩存區(qū)的指針,可以是輸入/輸入緩存區(qū)、位存儲區(qū)或者數(shù)據(jù)塊;
-
ADDR:指向TADDR_Param類型的數(shù)據(jù)塊的指針;
-
NDR:接收到新數(shù)據(jù)(New Data Received)。1=接收到新數(shù)據(jù),0=沒有接收到新數(shù)據(jù);
-
BUSY:接收是否完成。1=正在接收數(shù)據(jù);
-
ERROR:接收過程是否有錯誤。1=有錯誤發(fā)生;
-
STATUS:接收數(shù)據(jù)的狀態(tài);
-
RCVD_LEN:接收數(shù)據(jù)的長度,以字節(jié)為單位;
ADDR參數(shù)中存放的是遠程通信伙伴(發(fā)送方)的信息,其數(shù)據(jù)類型為TADDR_Param,總共占用8個字節(jié):
-
字節(jié)0~3(rem_ip_addr)表示遠程通信伙伴的IP地址(IPv4);
-
字節(jié)4,5(rem_port_nr)表示遠程通信伙伴的端口號(Port number);
-
字節(jié)6,7(reserved)為備用字節(jié);
需要為TURCV指令的ADDR參數(shù)分配一個數(shù)據(jù)類型為TADDR_Param的數(shù)據(jù)塊,方法如下:
點擊【添加塊】,在彈出的對話框中選擇【數(shù)據(jù)塊】,在類型中選擇【TADDR_Param】,給該數(shù)據(jù)塊起個名字,比如:DB_ADDR_Param,如下圖:

新創(chuàng)建的DB塊包含了前面介紹的【TADDR_Param】的參數(shù):REM_IP_ADDR,REM_PORT_NR和RESERVED,如下圖:

完整的TURCV指令如下圖:

好了,關(guān)于開放式用戶通信UDP數(shù)據(jù)接收指令-TURCV就先介紹到這里
-
Origin(Pro):學(xué)習(xí)版的窗口限制【數(shù)據(jù)繪圖】 2020-08-07
-
如何卸載Aspen Plus并再重新安裝,這篇文章告訴你! 2020-05-29
-
CAD視口的邊框線看不到也選不中是怎么回事,怎么解決? 2020-06-04
-
教程 | Origin從DSC計算焓和比熱容 2020-08-31
-
Aspen Plus安裝過程中RMS License證書安裝失敗的解決方法,親測有效! 2021-10-15
-
CAD外部參照無法綁定怎么辦? 2020-06-03
-
CAD中如何將布局連帶視口中的內(nèi)容復(fù)制到另一張圖中? 2020-07-03
