西門子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 | 方正智芯?

www.founderchip.com圖標

在程序塊中新添加的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就先介紹到這裡,官網(founderchip.com)提供本文PDF版本下載。

【李工談工控】小程序提供文章搜索功能,歡迎掃描下面卡片體驗:


推薦閱讀:

TAG:可編程邏輯控制器PLC | 電氣工程及其自動化 | 電氣工程 |