西门子PLC以太网开放式用户通信连载(5)-TUSEND
前面的文章我们介绍了西门子开放式用户通信(Open User Communication)中用于建立连接的指令-TCON;用于TCP、ISO-ON-TCP协议的数据接收指令-TRCV;用于UDP协议的数据接收指令-TURCV;用于TCP、ISO-ON-TCP的数据发送指令-TSEND。今天这篇文章,我们来介绍下用于UDP协议的数据发送指令:TUSEND。
TUSEND指令基于UDP(RFC768)协议来发送数据,这是一种没有应答机制的通信协议。也就是说,发送方并不关心发送的数据是否已经被成功接收,接收方也不提供任何反馈。UDP协议的优势在于可以快速的发送大量的数据,但是由于没有应答机制,可能会出现数据丢失的现象。更多信息可以参考这篇文章:UDP协议通信需要建立连接吗?
下面我们来介绍TUSEND指令的使用方法。
首先在指令列表中找到TUSEND,如下图:
将TUSEND指令拖拽到程序块中,系统会自动提示为其添加背景数据块。可以选择独立背景数据块(Single Instance DB)或者多重背景数据块(Multi Instance DB),如下图:
本例程我们选择独立背景数据块,并使用默认的名称:TUSEND_DB。点击【OK】确认,TUSEND指令便被添加到程序块中,如下图:
各参数的含义如下:
-
REQ:请求发送数据,需要信号的上升沿(Rising Edge);
-
ID:使用TCON指令建立的通信ID号;
-
LEN:发送数据的长度,以字节为单位,范围为1~1472;
-
DATA:指向发送数据区域的指针。可以是数据输入/输出缓存区、位存储区或者数据块;
-
ADDR:指向TADDR_Param数据块的指针。数据类型为TADDR_Param的数据块,包含了通信伙伴的IP地址及端口号等信息;
-
DONE:数据是否已经发送完成,1=发送完成;
-
BUSY:是否正在发送数据,1=正在发送数据;
-
ERROR:发送过程是否有错误,0=没有错误,1=有错误;
-
STATUS:发送数据的状态字,如果ERROR为1,会将相应的错误代码写到STATUS中;
TADDR_Param参数保存了通信伙伴的IP地址和端口号。当连续对多个不同的通信伙伴(不同IP或端口)发送UDP数据时,仅需调整TADDR_Param参数,而不需要重新调用TCON指令和TDISCON指令来建立或断开连接。
这里,重点介绍下TADDR_Param参数。
新建一个DB块,名称为“DB_TADDR_Param_Send”,将其类型设置为“TADDR_Param”,如下图:
点击【OK】确认。打开新建的数据块可以看到其中包含了远程通信伙伴的IP地址(REM_IP_ADDR)和端口号(REM_PORT_NR),如下图:
通过对该DB块内容的修改,就可以更改TUSEND的通信伙伴的参数,达到向多个通信伙伴发送数据的目的。
完整的TUSEND指令如下图:
好了,关于基于UDP协议的数据发送指令TUSEND就先介绍到这里。
-
神器:5秒钟搞定赝电容k1拟合、绘图、计算电容贡献率 2020-06-25
-
化工设计之工程图纸(这篇文章给你讲全了) 2020-07-03
-
工具:赝电容k1Tool-v2.6解决拟合交叉问题 2020-06-25
-
断续焊焊接符号 2021-10-14
-
板式塔设计核心:负荷性能图(水力学图) 2020-07-03
-
应急管理部已明确:临时性登高作业属于特种作业!需要取证 2021-10-18
-
PDMS12.1sp4安装教程 2020-07-03
-
话说LED灯的利用系数 2020-07-04
-
一张图讲清楚断路器的工作原理 2020-07-10
-
引起管道振动的主要原因及消振措施 2020-12-06