【问题标题】:Transfer Value via UDP between Simulink/Labview在 Simulink/Labview 之间通过 UDP 传输值
【发布时间】:2015-10-26 20:09:51
【问题描述】:
我正在开展一个项目,该项目需要在网络系统(当前运行 Matlab 2010b 和 Labview 7.0)上的 Matlab 的 Simulink 和 Labview 之间实时传递值。我一直在尝试在任一程序中使用 UDP 发送/接收函数来做到这一点,但是 Labview 似乎只处理带有 UDP/TCP-IP 的字符串。 Simulink 仅从 UDP 端口读取 int/double 值。
有没有办法让我在读入操作之后转换这些值,或者绕过类型限制?任何建议(或在两个程序之间传递值的替代方法)将不胜感激。不幸的是,由于硬件限制,我被这些程序版本卡住了。
谢谢!
【问题讨论】:
标签:
matlab
sockets
udp
simulink
labview
【解决方案1】:
LV 中的 TCP/UDP 函数使用字符串,因为它是一种表示字节数组的便捷方式,基本上就是 TCP 流。您可以获取数据并将其转换为可用。假设 Simulink 以相同的方式对值进行编码(整数的简单二进制,浮点数的 IEEE754 表示),那么您可以简单地使用类型转换或从字符串函数展平到/取消展平来转换数据。您可能需要更改字节顺序以考虑字节序。
您可以查看 LV 中的 TCP 示例和有关扁平化数据的文档,以进一步了解其工作原理。
另外,UDP 是有损的,主要适用于需要快速广播或获取数据的情况,例如流式传输视频时。如果数据很重要,则应使用 TCP。