在Simulink/Labview之间通过UDP传输值

0 sockets matlab labview udp simulink

我正在开发一个项目,需要在Matlab的Simulink和Labview之间在网络系统(目前运行Matlab 2010b和Labview 7.0)上实时传递值.我一直在尝试使用任一程序中的UDP发送/接收功能来执行此操作,但Labview似乎只使用UDP/TCP-IP处理字符串.Simulink只从UDP端口读取int/double值.

有没有办法让我在读入操作后转换这些值,或以其他方式绕过类型限制?我们真的很感激任何建议(或在两个计划之间传递价值的替代方法).不幸的是,由于硬件限制,我坚持使用这些程序版本.

谢谢!

Yai*_*air 5

LV中的TCP/UDP函数使用字符串,因为它是表示字节数组的便捷方式,这是TCP流基本上是什么.您可以获取数据并对其进行转换以使其可用.假设Simulink以相同的方式对值进行编码(int的简单二进制,浮点数的IEEE754表示),那么您可以简单地使用类型转换或展平来/取消来自字符串函数来转换数据.您可能需要更改字节的顺序以考虑endianess.

您可以查看LV中的TCP示例和有关展平数据的文档,以了解有关其工作原理的更多信息.

作为一个侧面点,UDP是有损的,主要适用于需要快速广播或获取数据的情况,例如流视频时.如果数据很重要,则应使用TCP.