主要内容

UDP接收

通过UDP网络从指定的远程机器接收数据

图书馆

仪器控制工具箱

  • UDP接收块

描述

UDP接收块使用UDP协议配置并打开到指定远端地址的接口。配置和初始化只在模型执行开始时发生一次。在模型运行时,块以阻塞或非阻塞模式获取数据。

请注意

仪表控制工具箱™和Simulink都需要许可证万博1manbetx®软件使用此块。

该块没有输入端口。根据您对阻塞或非阻塞模式的选择,它有一个或两个输出端口。如果选择阻塞模式,则块将有一个与它接收的数据相对应的输出端口。

如果不选择阻塞模式,则该块将有两个输出端口数据港口和状态端口。

FIFO (First In First Out)缓冲区接收数据。在每一个时间步,数据端口从缓冲区输出请求的值。在非阻塞模式下,状态Port指示块是否接收了新数据。

其他支持功能万博1manbetx

  • 此块支持使用万博1manbetx万博1manbetx仿真软件加速器™模式,而不是快速加速器或代码生成。

  • 该模块支持使用模型引万博1manbetx用,因此您的模型可以包含其他Simulink模型作为模块化组件。万博1manbetx

有关这些特性的更多信息,请参见万博1manbetx文档。

参数

请注意

您可以在UDP接收块参数对话框的文本编辑字段中输入MATLAB变量,但以下字段除外:本地地址远程地址ASCII格式字符串,《终结者》

本地地址

指定本机的IP地址、名称或Web服务器地址。这与UDP接口相同本地主机财产。该字段默认为空。

本地端口

在本地机器上指定要绑定的端口。默认值为-1,自动绑定到可用的端口。

启用本地端口共享

启用共享端口功能。UDP端口可以被其他应用程序共享,以允许多个应用程序监听该端口上的UDP数据报。可以将UDP对象绑定到特定的LocalPort在另一个应用程序中,将UDP套接字绑定到相同的本地端口号,这样两者都可以接收UDP广播数据。启用此选项允许其他UDP套接字绑定到UDP对象LocalPort.默认是关闭的。

远程地址

指定需要从中接收数据的机器的IP地址、名称或Web服务器地址。该字段设置为本地主机默认情况下。

远程端口

指定需要连接到的主机上的远程端口。端口默认值为9090.有效的端口值为165535

验证地址和端口的连通性

按此按钮可:

  • 检查指定的远端地址是否正确。

  • 与指定的远程地址和端口建立连接。

输出最新数据

启用从UDP receive块接收最新的数据。通常采用FIFO方式接收数据。使能后,接收最新的可用报文,而不采用先进先出的方式。注意,当数据类型为ASCII时,此选项是禁用的。默认情况下,该选项是关闭的。

数据大小

指定输出数据大小,或在每个模拟时间步骤中应该读取的值的数量。此参数指定为非负整数的行向量,其中每个元素表示对应维度的长度。例如,如果指定数据大小为(mn)和的行数n表示列数。数据大小不包括终止符值。默认值为[1],表示单个标量值。

源数据类型

指定要从块接收的输入数据类型。您可以从以下值中选择:

  • int8

  • uint8(默认)

  • int16

  • uint16

  • int32

  • uint32

  • 美国信息交换标准代码

ASCII格式字符串

此选项仅在选择ASCII作为数据类型时可用。它定义数据的格式字符串。有关格式的列表,请参见fscanf函数。

《终结者》

此选项仅在选择ASCII作为数据类型时可用。它可用于为数据读取设置终止符。有关设置属性的更多信息,请参见《终结者》

字节顺序

当使用超过8位的二进制或binblock格式时,可以为数据指定仪器的字节顺序。你的选择是BigEndianLittleEndian

启用阻塞模式

指定是否要在接收数据时阻塞模拟。默认选择此选项。如果不希望读取操作阻塞模拟,则清除此复选框。

如果启用阻塞模式,则模型将在等待所请求的数据可用时阻塞模拟。如果不启用阻塞模式,则模拟将持续运行。该块有两个输出端口,状态而且数据.的数据端口包含在每个时间步上请求的数据集。的状态端口包含0或1,这取决于它是否在给定的时间步骤上接收到新数据。下面的图表显示了使用阻塞模式和非阻塞模式接收数据之间的区别。

在本例中,您在时间点(t=0)开始模拟,并指定要接收的数据量为4(在数据大小“UDP接收块参数”对话框中的字段。模拟启动后,在FIFO缓冲区中异步获取数据。

阻塞模式

阻塞模式模拟是这样发生的:

  • 在时间步骤1:Simulink软件请求数万博1manbetx据,缓冲区有四个可用值,块在不中断模拟的情况下完成请求。该块将缓冲区值重置为0。

  • 在时间步骤2:Simulink软件再次请万博1manbetx求数据,缓冲区只有三个值,因此它阻塞模拟,直到它接收到第四个值。当块接收到第四个值时,它完成请求并恢复模拟。该块将缓冲区值重置为0。

  • 在时间步骤3:当Simulink软件请求数据时,块万博1manbetx有5个值,它返回它收到的前4个值,并将缓冲区重置为1。

方法中指定的时间内未收到所请求的数据超时字段(“UDP接收块参数”对话框中的参数)表示出现Simulink软件错误,停止仿真。万博1manbetx

请注意

在阻塞模式下,如果您的计算机上有多个UDP模型,请确保接收块正在接收数据。如果不是,那么您的模型可能会出错。您可以通过将块更改为非阻塞模式或重置块的优先级来避免这种情况。

非阻塞模式

在这里,模拟不会被阻塞,而是持续运行。

  • 在时间步骤1:Simulink软件请求数万博1manbetx据,缓冲区有四个可用值,块完成请求并更改状态端口值1,表示有新的数据可用。的数据此时的端口包含新接收的值。该块将缓冲区值重置为0。

  • 在时间步骤2:Simulink软件再次请万博1manbetx求数据,缓冲区只有三个值,并且由于数据大小指定为4,块无法返回数据。因此,块设置状态端口值0,表示没有新的数据。的数据端口包含先前接收的值,缓冲区为3(自完成最后一个请求以来它接收的值的数量)。

  • 在时间步骤3:当Simulink软件在这里请求数据万博1manbetx时,缓冲区现在有5个值,它按收到的顺序返回前四个值,并更改状态端口值1

超时

指定模型在每个模拟时间步骤中等待数据的时间量。默认值为(秒)。如果未启用阻塞模式,此字段不可用。

块样品时间

指定模拟过程中块的采样时间。默认值为0.01(秒)。

版本历史

介绍了R2007b