西門子PLC乙太網開放式用戶通信連載(3)-TURCV
前面的文章我們介紹了西門子PLC開放式用戶通信(open user communication)中用於TCP協議的數據接收指令—TRCV,今天這篇文章,我們來介紹下用於UDP協議的數據接收指令—TURCV。
TURCV指令用來接收基於UDP協議的數據。在使用TURCV之前,也同樣需要調用TCON指令來建立「連接」。當然,對於UDP協議,這個「連接」並非通信夥伴之間的真實連接,而更多的是用戶程序對於通信參數的一種配置(比如,通信夥伴的IP和埠等,可以參考文章:UDP協議通信需要建立連接嗎?)。當數據接收成功後,在參數ADDR中可以看到通信夥伴(發送方)的IP地址、埠號等信息。
下面我們來介紹如何在博途(Portal)環境中使用TURCV指令。
首先在指令列表中找到TURCV指令,如下圖:
將其拖拽到程序塊中,系統會自動生成一個背景數據塊(Instance DB),如下圖:
這些步驟跟之前的TRCV指令是類似的,詳細信息可以參考:
怎樣使用開放式用戶通信指令-TRCV | 方正智芯在程序塊中新添加的TURCV指令如下圖:
TURCV各參數的含義如下:
- EN_R:使能接收。當EN_R的值為1時,TURCV可以接收數據;
- ID:調用TCON時分配的通信連接ID;
- LEN:接收數據的長度,範圍0~1472個位元組;
- DATA:用來指向接收緩存區的指針,可以是輸入/輸入緩存區、位存儲區或者數據塊;
- ADDR:指向TADDR_Param類型的數據塊的指針;
- NDR:接收到新數據(New Data Received)。1=接收到新數據,0=沒有接收到新數據;
- BUSY:接收是否完成。1=正在接收數據;
- ERROR:接收過程是否有錯誤。1=有錯誤發生;
- STATUS:接收數據的狀態;
- RCVD_LEN:接收數據的長度,以位元組為單位;
ADDR參數中存放的是遠程通信夥伴(發送方)的信息,其數據類型為TADDR_Param,總共佔用8個位元組:
- 位元組0~3(rem_ip_addr)表示遠程通信夥伴的IP地址(IPv4);
- 位元組4,5(rem_port_nr)表示遠程通信夥伴的埠號(Port number);
- 位元組6,7(reserved)為備用位元組;
需要為TURCV指令的ADDR參數分配一個數據類型為TADDR_Param的數據塊,方法如下:
點擊【添加塊】,在彈出的對話框中選擇【數據塊】,在類型中選擇【TADDR_Param】,給該數據塊起個名字,比如:DB_ADDR_Param,如下圖:
新創建的DB塊包含了前面介紹的【TADDR_Param】的參數:REM_IP_ADDR,REM_PORT_NR和RESERVED,如下圖:
完整的TURCV指令如下圖:
好了,關於開放式用戶通信UDP數據接收指令-TURCV就先介紹到這裡,官網(http://www.founderchip.com)提供本文PDF版本下載。
【李工談工控】小程序提供文章搜索功能,歡迎掃描下面卡片體驗:
推薦閱讀:
TAG:可編程邏輯控制器PLC | 電氣工程及其自動化 | 電氣工程 |